{"version":3,"sources":["../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/tslib/tslib.es6.js","../../src/constants.ts","../../src/assert.ts","../../src/crypt.ts","../../src/deepCopy.ts","../../src/deferred.ts","../../src/emulator.ts","../../src/environment.ts","../../src/errors.ts","../../src/json.ts","../../src/jwt.ts","../../src/obj.ts","../../src/query.ts","../../src/sha1.ts","../../src/subscribe.ts","../../src/validation.ts","../../src/utf8.ts","../../src/exponential_backoff.ts","../../src/formatters.ts","../../src/compat.ts","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/react-native-web/dist/exports/Clipboard/index.js","../node_modules/react-native-web/dist/exports/Alert/index.js","../node_modules/react-native-web/dist/exports/DeviceInfo/index.js","../node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","../node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","../node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","../node_modules/react-native-web/dist/exports/Vibration/index.js","../node_modules/react-native-web/dist/exports/Button/index.js","../node_modules/react-native-web/dist/exports/CheckBox/index.js","../node_modules/react-native-web/dist/exports/Picker/index.js","../node_modules/react-native-web/dist/exports/Picker/PickerItem.js","../node_modules/react-native-web/dist/exports/ProgressBar/index.js","../node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","../node_modules/react-native-web/dist/exports/VirtualizedList/index.js","../node_modules/react-native-web/dist/exports/YellowBox/index.js","../node_modules/react-native-web/dist/exports/LogBox/index.js","../node_modules/react-native-web/dist/exports/InputAccessoryView/index.js","../node_modules/react-native-web/dist/exports/ToastAndroid/index.js","../node_modules/react-native-web/dist/exports/PermissionsAndroid/index.js","../node_modules/react-native-web/dist/exports/Settings/index.js","../node_modules/react-native-web/dist/exports/Systrace/index.js","../node_modules/react-native-web/dist/exports/TVEventHandler/index.js","../node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/fbjs/lib/invariant.js","../packages/@react-aria/utils/src/useLayoutEffect.ts","../packages/@react-aria/utils/src/useEffectEvent.ts","../packages/@react-aria/utils/src/useValueEffect.ts","../packages/@react-aria/utils/src/useId.ts","../packages/@react-aria/utils/src/chain.ts","../packages/@react-aria/utils/src/domHelpers.ts","../packages/@react-aria/utils/src/mergeProps.ts","../packages/@react-aria/utils/src/filterDOMProps.ts","../packages/@react-aria/utils/src/focusWithoutScrolling.ts","../packages/@react-aria/utils/src/platform.ts","../packages/@react-aria/utils/src/openLink.tsx","../packages/@react-aria/utils/src/runAfterTransition.ts","../packages/@react-aria/utils/src/useGlobalListeners.ts","../packages/@react-aria/utils/src/useLabels.ts","../packages/@react-aria/utils/src/useObjectRef.ts","../packages/@react-aria/utils/src/useSyncRef.ts","../packages/@react-aria/utils/src/useViewportSize.ts","../packages/@react-aria/utils/src/useDescription.ts","../packages/@react-aria/utils/src/useEvent.ts","../packages/@react-aria/utils/src/isVirtualEvent.ts","../packages/@react-aria/utils/src/useFormReset.ts","../node_modules/date-fns/esm/toDate/index.js","../useHasResponsiveProps.ts","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../../node_modules/.pnpm/fflate@0.8.1/node_modules/fflate/esm/browser.js","../../../../node_modules/.pnpm/valibot@0.13.1/node_modules/valibot/dist/index.js","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/@dotlottie/dotlottie-js/src/common/dotlottie-state-machine-common.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/node_modules/.pnpm/@rgba-image+copy@0.1.3/node_modules/@rgba-image/copy/src/index.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/node_modules/.pnpm/@rgba-image+create-image@0.1.1/node_modules/@rgba-image/create-image/src/index.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/node_modules/.pnpm/@rgba-image+lanczos@0.1.1/node_modules/@rgba-image/lanczos/src/filters.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/node_modules/.pnpm/@rgba-image+lanczos@0.1.1/node_modules/@rgba-image/lanczos/src/convolve.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/node_modules/.pnpm/@rgba-image+lanczos@0.1.1/node_modules/@rgba-image/lanczos/src/index.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/@dotlottie/dotlottie-js/src/common/manifest.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/@dotlottie/dotlottie-js/src/common/dotlottie-state.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/@dotlottie/dotlottie-js/src/common/utils.ts","../../../../node_modules/.pnpm/@dotlottie+dotlottie-js@0.7.0/node_modules/@dotlottie/dotlottie-js/src/common/lottie-audio-common.ts","../node_modules/react-native-web/dist/exports/View/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/index.js","../node_modules/moment/moment.js","../../src/logger.ts","../../src/firebaseApp.ts","../../src/firebaseNamespace.ts","../../src/firebaseNamespaceCore.ts","../../src/platformLoggerService.ts","../../index.ts","../../src/registerCoreComponents.ts","../node_modules/prop-types/index.js","../utils.ts","../index.ts","../index.tsx","../node_modules/redux-action/build/index.js","../../../../src/common/debug-build.ts","../node_modules/fbjs/lib/ExecutionEnvironment.js","../State.ts","../node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","../../worldwide.ts","../../debug-build.ts","../../logger.ts","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","../../../../src/browser/types.ts","../../version.ts","../../hub.ts","../../../../src/utils/spanUtils.ts","../../is.ts","../node_modules/react-native-web/dist/exports/Platform/index.js","../../../../src/instrument/_handlers.ts","../../object.ts","../node_modules/webpack/buildin/global.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","../../misc.ts","../node_modules/react-native-web/dist/exports/createElement/index.js","../../src/component.ts","../../src/provider.ts","../../src/component_container.ts","../node_modules/lodash.get/index.js","../node_modules/react-native-web/dist/modules/forwardedProps/index.js","../node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","../node_modules/lodash.isnil/index.js","../styled.tsx","../node_modules/react-dom/index.js","../node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","../node_modules/react-native-web/dist/modules/setValueForStyles/index.js","../node_modules/react-native-web/dist/exports/UIManager/index.js","../node_modules/@firebase/firestore/dist/esm5/prebuilt-2d830653-6eee25bb.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","../../index.tsx","../node_modules/nanoid/non-secure/index.js","../../semanticAttributes.ts","../useBreakpointResolvedProps.ts","../propsFlattener.tsx","../usePropsResolution.tsx","../useResponsiveSSRProps.ts","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../FocusScope.web.tsx","../../../../src/TransitionConfigs/TransitionSpecs.tsx","../../CommonActions.tsx","../../BaseRouter.tsx","../../StackRouter.tsx","../../createNavigationContainerRef.tsx","../../EnsureSingleNavigator.tsx","../../findFocusedRoute.tsx","../../NavigationBuilderContext.tsx","../../NavigationContainerRefContext.tsx","../../NavigationContext.tsx","../../NavigationRouteContext.tsx","../../NavigationStateContext.tsx","../../UnhandledActionContext.tsx","../../useChildListeners.tsx","../../useEventEmitter.tsx","../../useKeyedChildListeners.tsx","../../useOptionsGetters.tsx","../../useScheduleUpdate.tsx","../../useSyncState.tsx","../../BaseNavigationContainer.tsx","../../Group.tsx","../../Screen.tsx","../../createNavigatorFactory.tsx","../../CurrentRenderContext.tsx","../../getActionFromState.tsx","../../useRouteCache.tsx","../../fromEntries.tsx","../../validatePathConfig.tsx","../../getPathFromState.tsx","../../getStateFromPath.tsx","../../NavigationHelpersContext.tsx","../../PreventRemoveContext.tsx","../../PreventRemoveProvider.tsx","../../useNavigation.tsx","../../isArrayEqual.tsx","../../useComponent.tsx","../../StaticContainer.tsx","../../SceneView.tsx","../../useDescriptors.tsx","../../useNavigationCache.tsx","../../useOnPreventRemove.tsx","../../useOnAction.tsx","../../useNavigationBuilder.tsx","../../useRegisterNavigator.tsx","../../isRecordEqual.tsx","../../useFocusEvents.tsx","../../useOnRouteFocus.tsx","../../useNavigationHelpers.tsx","../../useFocusedListenersChildrenAdapter.tsx","../../useOnGetState.tsx","../../useCurrentRender.tsx","../../useNavigationContainerRef.tsx","../node_modules/react-native-web/dist/modules/useMergeRefs/index.js","../NativeBaseContext.ts","../node_modules/@firebase/webchannel-wrapper/dist/index.esm.js","../node_modules/react-native-paper/node_modules/color/index.js","../node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js","../node_modules/@swc/helpers/esm/_class_private_field_init.js","../node_modules/@swc/helpers/esm/_check_private_redeclaration.js","../node_modules/@swc/helpers/esm/_class_private_field_set.js","../node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js","../packages/@react-aria/interactions/src/textSelection.ts","../packages/@react-aria/interactions/src/context.ts","../packages/@react-aria/interactions/src/usePress.ts","../node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js","../node_modules/@swc/helpers/esm/_class_private_field_get.js","../packages/@react-aria/interactions/src/utils.ts","../packages/@react-aria/interactions/src/useFocus.ts","../packages/@react-aria/interactions/src/useFocusVisible.ts","../packages/@react-aria/interactions/src/useFocusWithin.ts","../packages/@react-aria/interactions/src/useHover.ts","../packages/@react-aria/interactions/src/createEventHandler.ts","../packages/@react-aria/interactions/src/useKeyboard.ts","../Pressable.tsx","../node_modules/geolib/es/constants.js","../../getAlphanumFromUnicodeRange.ts","../../../../src/utils/codepointLength.ts","../../constants.ts","../../makeCSEngine.ts","../../../../src/utils/codeunitLength.ts","../../../../src/utils/reverseString.ts","../../makeCSRenderer.ts","../../CounterStyle.ts","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../useTheme.ts","../ariaToAccessibilityMap.ts","../nbSvg.web.tsx","../../../../src/utils/conditional.tsx","../../../../src/TransitionConfigs/CardStyleInterpolators.tsx","../../../../src/TransitionConfigs/HeaderStyleInterpolators.tsx","../node_modules/react-native-web/dist/exports/StyleSheet/constants.js","../node_modules/react-native-web/dist/exports/findNodeHandle/index.js","../node_modules/react-native-web/dist/exports/Dimensions/index.js","../useHover.web.ts","../accordion.ts","../alert.ts","../aspect-ratio.ts","../avatar.ts","../avatar-badge.ts","../avatar-group.ts","../badge.ts","../breadcrumb.ts","../button.ts","../card.ts","../center.ts","../checkbox.ts","../checkbox-group.ts","../box.ts","../flatList.ts","../keyboardAvoidingView.ts","../scrollView.ts","../sectionList.ts","../statusBar.ts","../circular-progress.ts","../code.ts","../container.ts","../hstack.ts","../vstack.ts","../divider.ts","../circle.ts","../simple-grid.ts","../heading.ts","../icon.ts","../icon-button.ts","../image.ts","../input.ts","../tooltip.ts","../kbd.ts","../link.ts","../menu.ts","../modal.ts","../alert-dialog.ts","../popover.ts","../number-input.ts","../pin-input.ts","../pressable.ts","../progress.ts","../radio.ts","../radio-group.ts","../stat.ts","../switch.ts","../tabs.ts","../tag.ts","../text.ts","../app-bar.ts","../textarea.ts","../textField.ts","../toast.ts","../transitions.ts","../typeahead.ts","../stack.ts","../square.ts","../view.ts","../zstack.ts","../slider.ts","../inputrightaddon.ts","../actionsheet.ts","../fab.ts","../flex.ts","../form-control.ts","../inputleftaddon.ts","../list.ts","../select.ts","../skeleton.ts","../spinner.ts","../wrap.ts","../node_modules/axios/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","../createIcon.tsx","../node_modules/axios/lib/utils.js","../../session.ts","../node_modules/react-native-web/dist/exports/I18nManager/index.js","../ResponsiveQueryProvider.tsx","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../string.ts","../node_modules/react-native-web/dist/modules/TextInputState/index.js","../../../../src/utils/prepareEvent.ts","../../exports.ts","../mergeRefs.ts","../node_modules/geolib/es/getLatitude.js","../node_modules/geolib/es/getLongitude.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../colors.ts","../../integration.ts","../node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","../node_modules/react-native-web/dist/exports/Easing/index.js","../../../index.bundle.ts","../../src/services/api_service.ts","../../src/utils/errors.ts","../../src/utils/console_logger.ts","../../src/services/settings_service.ts","../../src/utils/string_merger.ts","../../src/services/iid_service.ts","../../src/utils/attributes_utils.ts","../../src/services/remote_config_service.ts","../../src/services/initialization_service.ts","../../src/services/transport_service.ts","../../src/services/perf_logger.ts","../../src/utils/metric_utils.ts","../../src/resources/trace.ts","../../src/resources/network_request.ts","../../src/services/oob_resources_service.ts","../../src/controllers/perf.ts","../../src/client/caching_client.ts","../../src/client/rest_client.ts","../../src/language.ts","../../src/client/remote_config_fetch_client.ts","../../src/value.ts","../../src/remote_config.ts","../../src/storage/storage.ts","../../src/storage/storage_cache.ts","../../src/client/retrying_client.ts","../../app/index.ts","../../src/index.ts","../node_modules/domhandler/lib/index.js","../node_modules/ramda/src/internal/_curry1.js","../SharedPropsProvider.tsx","../node_modules/react-native-web/dist/modules/ScrollResponder/index.js","../node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","../node_modules/react-native-web/dist/exports/ScrollView/index.js","../../../../../../src/browser/web-vitals/lib/onHidden.ts","../node_modules/react-native-web/dist/exports/StyleSheet/css.js","../node_modules/react-native-web/dist/modules/UnimplementedView/index.js","../node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","../node_modules/react-native-web/dist/exports/InteractionManager/index.js","../node_modules/react-native-web/dist/modules/AssetRegistry/index.js","../node_modules/react-native-web/dist/modules/ImageLoader/index.js","../node_modules/react-native-web/dist/exports/Image/index.js","../node_modules/react-device-detect/dist/lib.js","../node_modules/lodash.merge/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../createHandler.ts","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/geolib/es/toRad.js","../packages/@react-stately/utils/src/useControlledState.ts","../node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","../node_modules/stable-hash/dist/index.mjs","../Context.ts","../../tracing.ts","../node_modules/date-fns/esm/constants/index.js","../../../../../../src/browser/web-vitals/lib/bindReporter.ts","../../../../../../src/browser/web-vitals/lib/generateUniqueID.ts","../../../../../../src/browser/web-vitals/lib/getNavigationEntry.ts","../../../../../../src/browser/web-vitals/lib/getActivationStart.ts","../../../../../../src/browser/web-vitals/lib/initMetric.ts","../../../../../../src/browser/web-vitals/lib/observe.ts","../../../../../src/browser/web-vitals/getCLS.ts","../../../../../src/browser/web-vitals/getFID.ts","../../../../../../src/browser/web-vitals/lib/polyfills/interactionCountPolyfill.ts","../../../../../src/browser/web-vitals/getINP.ts","../../../../../src/browser/web-vitals/getLCP.ts","../../../../src/browser/instrument.ts","../borders.ts","../breakpoints.ts","../radius.ts","../shadows.ts","../space.ts","../typography.ts","../sizes.ts","../opacity.ts","../node_modules/react-native-web/dist/vendor/react-native/emitter/EventEmitter.js","../node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","../../time.ts","../LongCSSPropertyValidator.ts","../node_modules/ramda/src/internal/_curry2.js","../../../../../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/normalize-css-color/index.js","../node_modules/react-native-web/dist/modules/pick/index.js","../node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","../node_modules/react-native-web/dist/exports/Text/index.js","../node_modules/lodash.isempty/index.js","../node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","../node_modules/react-native-web/dist/modules/usePressEvents/index.js","../../eventProcessors.ts","../../../../src/TransitionConfigs/TransitionPresets.tsx","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/redux/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","../node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","../node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","../node_modules/idb/build/idb.js","../node_modules/tinycolor2/cjs/tinycolor.js","../useToken.ts","../../normalize.ts","../node_modules/@mapbox/point-geometry/index.js","../../src/utils/assign.js","../../src/browser.js","../../src/utils/utils-consts.js","../../src/utils/prefixed.js","../../src/touchactionjs/get-touchaction-props.js","../../src/touchactionjs/touchaction-Consts.js","../../src/inputjs/input-consts.js","../../src/utils/each.js","../../src/utils/bool-or-fn.js","../../src/utils/in-str.js","../../src/touchactionjs/touchaction-constructor.js","../../src/touchactionjs/clean-touch-actions.js","../../src/utils/has-parent.js","../../src/inputjs/get-center.js","../../src/inputjs/simple-clone-input-data.js","../../src/inputjs/get-distance.js","../../src/inputjs/get-angle.js","../../src/inputjs/get-direction.js","../../src/inputjs/get-velocity.js","../../src/inputjs/compute-input-data.js","../../src/inputjs/compute-delta-xy.js","../../src/inputjs/get-scale.js","../../src/inputjs/get-rotation.js","../../src/inputjs/compute-interval-input-data.js","../../src/inputjs/input-handler.js","../../src/utils/split-str.js","../../src/utils/add-event-listeners.js","../../src/utils/remove-event-listeners.js","../../src/utils/get-window-for-element.js","../../src/inputjs/input-constructor.js","../../src/utils/in-array.js","../../src/input/pointerevent.js","../../src/utils/to-array.js","../../src/utils/unique-array.js","../../src/input/touch.js","../../src/input/mouse.js","../../src/input/touchmouse.js","../../src/utils/invoke-array-arg.js","../../src/recognizerjs/recognizer-consts.js","../../src/utils/unique-id.js","../../src/recognizerjs/get-recognizer-by-name-if-manager.js","../../src/recognizerjs/state-str.js","../../src/recognizerjs/recognizer-constructor.js","../../src/recognizers/tap.js","../../src/recognizers/attribute.js","../../src/recognizerjs/direction-str.js","../../src/recognizers/pan.js","../../src/recognizers/swipe.js","../../src/recognizers/pinch.js","../../src/recognizers/rotate.js","../../src/recognizers/press.js","../../src/defaults.js","../../src/manager.js","../../src/inputjs/create-input-instance.js","../../src/input/singletouch.js","../../src/utils/deprecate.js","../../src/utils/extend.js","../../src/utils/merge.js","../../src/utils/inherit.js","../../src/utils/bind-fn.js","../../src/hammer.js","../../src/index.js","../constants.ts","../Errors.ts","../NodeManager.ts","../GestureHandler.ts","../DraggingGestureHandler.ts","../FlingGestureHandler.ts","../DiscreteGestureHandler.ts","../PressGestureHandler.ts","../LongPressGestureHandler.ts","../NativeViewGestureHandler.ts","../PanGestureHandler.ts","../IndiscreteGestureHandler.ts","../PinchGestureHandler.ts","../RotationGestureHandler.ts","../TapGestureHandler.ts","../RNGestureHandlerModule.web.ts","../node_modules/webpack/buildin/module.js","../node_modules/geolib/es/getDistance.js","../HTMLContentModel.ts","../packages/@react-aria/focus/src/focusSafely.ts","../packages/@react-aria/focus/src/isElementVisible.ts","../packages/@react-aria/focus/src/FocusScope.tsx","../packages/@react-aria/focus/src/useFocusRing.ts","../packages/@react-aria/focus/src/useFocusable.tsx","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","../node_modules/date-fns/esm/addMonths/index.js","../convertStringNumberToNumber.ts","../getRNKeyAndStyleValue.ts","../styled-system.ts","../getStyledFromProps.ts","../../../../src/utils/getRootSpan.ts","../../../../src/tracing/dynamicSamplingContext.ts","../node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","../node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","../node_modules/lodash.omit/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../AsyncStorage.ts","../../scope.ts","../node_modules/react-native-web/dist/exports/Linking/index.js","../node_modules/lodash.mergewith/index.js","../node_modules/process/browser.js","../node_modules/geolib/es/toDeg.js","../node_modules/domelementtype/lib/esm/index.js","../ShortMergeRequest.ts","../RenderersPropsProvider.tsx","../node_modules/get-intrinsic/index.js","../MarkedListItem.tsx","../MarkerBox.tsx","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../../../../src/browser/web-vitals/lib/getVisibilityWatcher.ts","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","../node_modules/react-native-web/dist/modules/useElementLayout/index.js","../node_modules/react-native-web/dist/exports/Appearance/index.js","../node_modules/query-string/index.js","../../getNamedContext.tsx","../../../../src/utils/ModalPresentationContext.tsx","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/isWindow.js","../node_modules/dom-helpers/esm/isDocument.js","../node_modules/dom-helpers/esm/getScrollAccessor.js","../node_modules/dom-helpers/esm/scrollLeft.js","../node_modules/dom-helpers/esm/scrollTop.js","../node_modules/dom-helpers/esm/offset.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/dom-helpers/esm/offsetParent.js","../node_modules/dom-helpers/esm/position.js","../../../../../../src/web/overlays/src/calculatePosition.ts","../../../../../../src/web/overlays/src/useCloseOnScroll.ts","../../../../../../src/web/overlays/src/useOverlayPosition.ts","../../Portal.tsx","../node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js","../node_modules/react-native-web/dist/modules/flattenArray/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","../node_modules/react-native-web/dist/vendor/hash/index.js","../node_modules/react-native-web/dist/modules/prefixStyles/static.js","../node_modules/react-native-web/dist/modules/prefixStyles/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compile.js","../node_modules/react-native-web/dist/exports/StyleSheet/initialRules.js","../node_modules/react-native-web/dist/exports/StyleSheet/modality.js","../node_modules/react-native-web/dist/exports/StyleSheet/createStyleResolver.js","../node_modules/react-native-web/dist/exports/StyleSheet/styleResolver.js","../node_modules/react-native-web/dist/exports/StyleSheet/createCSSStyleSheet.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","../node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","../node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","../node_modules/react-native-web/dist/modules/isSelectionValid/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","../node_modules/react-native-web/dist/modules/useResponderEvents/index.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","../useContrastText.ts","../../../../src/utils/applyScopeDataToEvent.ts","../node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","../node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","../node_modules/react-native-web/dist/exports/AppState/index.js","../../syncpromise.ts","../node_modules/react-geocode/lib/index.js","../../node.ts","../dom-utils.ts","../useProfiler.ts","../node_modules/ramda/src/internal/_has.js","../useSymbolicMarkerRendererStyles.ts","../node_modules/es-errors/type.js","../MarkedList.tsx","../node_modules/hyphenate-style-name/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","../node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","../node_modules/react-native-web/dist/exports/FlatList/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../../../../src/tracing/span.ts","../../../../src/utils/hasTracingEnabled.ts","../node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js","../node_modules/react-native-web/dist/modules/useStable/index.js","../node_modules/react-native-web/dist/exports/BackHandler/index.js","../node_modules/react-native-web/dist/exports/Keyboard/index.js","../../makeAlphanumMaxlenComputer.ts","../hooks.tsx","../useNativeBase.tsx","../wrapStringChild.tsx","../ExitAnimationContext.ts","../../../../src/utils/memoize.tsx","../node_modules/color/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../Transition.tsx","../PresenceTransition.tsx","../node_modules/warn-once/index.js","../node_modules/webpack/buildin/harmony-module.js","../../src/util/constants.ts","../../src/util/errors.ts","../../src/api/common.ts","../../src/api/create-installation-request.ts","../../src/util/sleep.ts","../../src/helpers/generate-fid.ts","../../src/helpers/buffer-to-base64-url-safe.ts","../../src/util/get-key.ts","../../src/helpers/fid-changed.ts","../../src/helpers/idb-manager.ts","../../src/helpers/get-installation-entry.ts","../../src/api/generate-auth-token-request.ts","../../src/helpers/refresh-auth-token.ts","../../src/functions/get-token.ts","../../src/api/delete-installation-request.ts","../../src/functions/on-id-change.ts","../../src/helpers/extract-app-config.ts","../../src/functions/get-id.ts","../../src/functions/delete-installation.ts","../node_modules/geolib/es/getCoordinateKey.js","../node_modules/geolib/es/isDecimal.js","../node_modules/geolib/es/isSexagesimal.js","../node_modules/geolib/es/sexagesimalToDecimal.js","../TRenderEngineProvider.tsx","../TNodeCtor.ts","../ShortCSSPropertyValidator.ts","../node_modules/ramda/src/internal/_curry3.js","../node_modules/ramda/src/pick.js","../DocumentMetadataProvider.ts","../getNativePropsForTNode.ts","../../../../src/tracing/spanstatus.ts","../node_modules/react-native-web/dist/exports/processColor/index.js","../node_modules/react-native-web/dist/exports/render/index.js","../node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","../node_modules/react-native-web/dist/exports/RefreshControl/index.js","../node_modules/react-native-web/dist/exports/PixelRatio/index.js","../node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","../useMarkedList.ts","../../../../src/utils/CardAnimationContext.tsx","../../SafeAreaProviderCompat.tsx","../../../../src/views/GestureHandler.tsx","../../../../src/Header/HeaderBackContext.tsx","../../../../../src/views/Header/HeaderContainer.tsx","../../Background.tsx","../../../../src/utils/findLastIndex.tsx","../../../../src/utils/getInvertedMultiplier.tsx","../../../../src/utils/getDistanceForDirection.tsx","../../../../src/views/Screens.tsx","../../../../src/views/ModalStatusBarManager.tsx","../../../../../src/views/Stack/CardSheet.tsx","../../../../../src/views/Stack/Card.tsx","../../../../src/Header/HeaderHeightContext.tsx","../../../../../src/views/Stack/CardContainer.tsx","../../../../src/utils/useKeyboardManager.tsx","../../../../../src/views/Stack/CardStack.tsx","../../../../../src/views/Stack/StackView.tsx","../../MaskedView.tsx","../../PlatformPressable.tsx","../../../../src/Header/HeaderBackButton.tsx","../../../../src/Header/HeaderTitle.tsx","../../../../src/Header/HeaderBackground.tsx","../../../../src/Header/Header.tsx","../../../../../src/views/Header/HeaderSegment.tsx","../../../../../src/views/Header/Header.tsx","../../../../src/utils/debounce.tsx","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","../node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","../node_modules/react-native-web/dist/exports/SectionList/index.js","../../../../src/instrument/globalError.ts","../../../../src/instrument/globalUnhandledRejection.ts","../../../../src/tracing/errors.ts","../../../../src/metrics/metric-summary.ts","../../../../src/tracing/transaction.ts","../../../../src/tracing/utils.ts","../node_modules/react-native-web/dist/modules/createDOMProps/index.js","../node_modules/inline-style-prefixer/lib/createPrefixer.js","../node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","../node_modules/inline-style-prefixer/lib/plugins/crossFade.js","../node_modules/inline-style-prefixer/lib/plugins/cursor.js","../node_modules/inline-style-prefixer/lib/plugins/filter.js","../node_modules/inline-style-prefixer/lib/plugins/imageSet.js","../node_modules/inline-style-prefixer/lib/plugins/logical.js","../node_modules/inline-style-prefixer/lib/plugins/position.js","../node_modules/inline-style-prefixer/lib/plugins/sizing.js","../node_modules/inline-style-prefixer/lib/plugins/transition.js","../node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","../node_modules/react-native-web/dist/exports/NativeModules/index.js","../node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","../node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/index.js","../node_modules/react-native-web/dist/modules/mergeRefs/index.js","../node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","../node_modules/clsx/dist/clsx.mjs","../useResolvedFontFamily.ts","../node_modules/use-latest-callback/lib/src/index.js","../node_modules/lodash.uniqueid/index.js","../node_modules/react-native-web-linear-gradient/dist/index.js","../packages/@react-stately/toggle/src/useToggleState.ts","../node_modules/@stripe/stripe-js/dist/stripe.esm.js","../../../../src/theming/ThemeContext.tsx","../../../../src/theming/DefaultTheme.tsx","../node_modules/invariant/browser.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel2.js","../node_modules/redux-persist/es/persistCombineReducers.js","../node_modules/redux-persist/es/persistStore.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../Slide.tsx","../Fade.tsx","../Modal.tsx","../ModalContent.tsx","../ModalBody.tsx","../ModalCloseButton.tsx","../ModalFooter.tsx","../ModalHeader.tsx","../node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","../node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","../node_modules/react-native-web/dist/exports/Touchable/Position.js","../node_modules/react-native-web/dist/exports/Touchable/index.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EmitterSubscription.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscription.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscriptionVendor.js","../node_modules/react-native-web/dist/vendor/react-native/emitter/_EventEmitter.js","../resolveStackStyleInput.ts","../Input.tsx","../../../../src/LottieView/index.web.tsx","../../../../src/LottieView/utils.ts","../node_modules/react-native-web/dist/modules/isWebColor/index.js","../node_modules/react-native-web/dist/modules/normalizeColor/index.js","../getSpacedChildren.tsx","../Stack.tsx","../../../../src/utils/handleCallbackErrors.ts","../../../../src/tracing/trace.ts","../../stacktrace.ts","../questionIconPath.tsx","../SVGIcon.tsx","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/geolib/es/index.js","../../dsn.ts","../hash.ts","../staticData.ts","../prefixStyles.ts","../unitlessNumbers.ts","../normalizeColor.ts","../normalizeValueWithProperty.ts","../createReactDOMStyle.ts","../hyphenateStyleName.ts","../atomic.ts","../preprocess.ts","../useResponsiveQuery.web.tsx","../common.ts","../useStableMemo.ts","../useStyledSystemPropsResolver.ts","../getStyledSystemPropsAndRestProps.ts","../node_modules/timers-browserify/main.js","../node_modules/redux-action/build/util.js","../node_modules/geolib/es/toDecimal.js","../node_modules/geolib/es/getCoordinateKeys.js","../node_modules/css-in-js-utils/lib/isPrefixedValue.js","../HTMLElementModel.ts","../TBlockCtor.ts","../TStyles.ts","../helpers.ts","../LongSizeCSSPropertyValidator.ts","../expandCSSToRN.ts","../node_modules/ramda/src/internal/_isPlaceholder.js","../node_modules/domutils/lib/index.js","../defaultListStyleSpecs.ts","../TChildrenRendererContext.ts","../TChildrenRenderer.tsx","../TNodeRenderer.tsx","../RenderRegistryProvider.tsx","../useNormalizedUrl.ts","../IMGRenderer.tsx","../IMGElement.tsx","../defaultInitialImageDimensions.ts","../ttreeEventsContext.ts","../RenderTTree.tsx","../node_modules/stringify-entities/lib/constant/from-char-code.js","../node_modules/@babel/runtime/helpers/typeof.js","../../../../node_modules/.pnpm/@preact+signals-core@1.4.0/node_modules/@preact/signals-core/src/index.ts","../../src/store.ts","../node_modules/function-bind/index.js","../node_modules/es-define-property/index.js","../node_modules/react-native-email/node_modules/qs/lib/formats.js","../InputAddons.tsx","../../url.ts","../node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","../node_modules/fbjs/lib/warning.js","../node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","../node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","../node_modules/react-native-web/dist/exports/SafeAreaView/index.js","../node_modules/react-native-web/dist/exports/StatusBar/index.js","../node_modules/react-native-web/dist/exports/Switch/index.js","../node_modules/react-native-web/dist/exports/useColorScheme/index.js","../../../../src/presets/decimal.ts","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addQuarters/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","../node_modules/react-native-web/dist/vendor/react-native/Utilities/setAndForwardRef.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedMock.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/Animated.js","../node_modules/react-native-web/dist/exports/Animated/index.js","../node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","../node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","../node_modules/react-native-web/dist/exports/Modal/ModalContent.js","../node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","../node_modules/react-native-web/dist/exports/Modal/index.js","../node_modules/react-native-web/dist/modules/createEventHandle/index.js","../node_modules/react-native-web/dist/modules/modality/index.js","../node_modules/react-native-web/dist/modules/useEvent/index.js","../node_modules/react-native-web/dist/modules/useHover/index.js","../node_modules/react-native-web/dist/exports/Pressable/index.js","../../baggage.ts","../../../../src/tracing/sampling.ts","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","../node_modules/redux-persist/es/integration/react.js","../VStack.tsx","../node_modules/react-native-onesignal/dist/index.js","../node_modules/react-is/index.js","../node_modules/buffer/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/@firebase/auth/dist/auth.esm.js","../../../index.ts","../../config.ts","../../src/api/error.ts","../../src/context.ts","../../src/serializer.ts","../../src/api/service.ts","../../src/config.ts","../../src/interfaces/internal-message-payload.ts","../../src/helpers/array-base64-translator.ts","../../src/helpers/migrate-old-database.ts","../../src/core/api.ts","../../src/core/token-management.ts","../../src/helpers/is-console-message.ts","../../src/helpers/sleep.ts","../../src/controllers/sw-controller.ts","../../src/helpers/externalizePayload.ts","../../src/controllers/window-controller.ts","../../src/implementation/constants.ts","../../src/implementation/error.ts","../../src/implementation/string.ts","../../src/platform/browser/base64.ts","../../src/implementation/taskenums.ts","../../src/implementation/connection.ts","../../src/platform/browser/connection.ts","../../src/implementation/connectionPool.ts","../../src/implementation/location.ts","../../src/implementation/failrequest.ts","../../src/implementation/type.ts","../../src/implementation/url.ts","../../src/implementation/request.ts","../../src/implementation/backoff.ts","../../src/implementation/fs.ts","../../src/implementation/blob.ts","../../src/implementation/json.ts","../../src/implementation/path.ts","../../src/implementation/metadata.ts","../../src/implementation/list.ts","../../src/implementation/requestinfo.ts","../../src/implementation/requests.ts","../../src/implementation/observer.ts","../../src/implementation/async.ts","../../src/task.ts","../../src/reference.ts","../../src/service.ts","../../exp/api.ts","../../compat/tasksnapshot.ts","../../compat/task.ts","../../compat/list.ts","../../compat/reference.ts","../../compat/service.ts","../../src/helpers.ts","../../src/get-config.ts","../../src/initialize-ids.ts","../../src/factory.ts","../../src/functions.ts","../../src/state.ts","../../src/proactive-refresh.ts","../../src/util.ts","../../src/client.ts","../../src/indexeddb.ts","../../src/storage.ts","../../src/debug.ts","../../src/internal-api.ts","../../src/recaptcha.ts","../../src/providers.ts","../../src/api.ts","../node_modules/geolib/es/isValidCoordinate.js","../node_modules/geolib/es/isValidLatitude.js","../node_modules/geolib/es/isValidLongitude.js","../node_modules/geolib/es/orderByDistance.js","../node_modules/geolib/es/robustAcos.js","../node_modules/geolib/es/getBounds.js","../node_modules/geolib/es/getRhumbLineBearing.js","../node_modules/geolib/es/getDistanceFromLine.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","../node_modules/react-native-web/dist/exports/Share/index.js","../node_modules/react-native-web/dist/exports/ImageBackground/index.js","../node_modules/react-native-web/dist/exports/TextInput/index.js","../node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","../node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","../node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","../node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","../debugMessages.ts","../buildTREFromConfig.ts","../node_modules/domhandler/lib/node.js","../node_modules/css-to-react-native/index.js","../CSSParseRun.ts","../CSSProcessedProps.ts","../emptyProps.ts","../mergeProps.ts","../GenericPropertyValidator.ts","../normalizeFontName.ts","../LongNonPercentSizeCSSPropertyValidator.ts","../LongEnumerationCSSPropertyValidator.ts","../LongForgivingCSSPropertyValidator.ts","../ShortCSSToReactNativeValidator.ts","../default.ts","../node_modules/ramda/src/compose.js","../node_modules/ramda/src/pipe.js","../node_modules/ramda/src/internal/_arity.js","../node_modules/ramda/src/internal/_isArray.js","../node_modules/ramda/src/internal/_isString.js","../node_modules/ramda/src/internal/_checkForMethod.js","../TPhrasingCtor.ts","../TTextCtor.ts","../node_modules/ramda/src/omit.js","../node_modules/htmlparser2/lib/Parser.js","../node_modules/htmlparser2/lib/Tokenizer.js","../node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js","../node_modules/htmlparser2/lib/FeedHandler.js","../node_modules/domutils/lib/stringify.js","../node_modules/entities/lib/decode.js","../node_modules/entities/lib/encode.js","../node_modules/domutils/lib/querying.js","../node_modules/domutils/lib/legacy.js","../defaultHTMLElementModels.ts","../defaultSystemFonts.ts","../RenderHTMLConfigProvider.tsx","../defaultSharedProps.ts","../TNodeChildrenRenderer.tsx","../renderChildren.tsx","../ARenderer.tsx","../node_modules/urijs/src/punycode.js","../node_modules/urijs/src/IPv6.js","../node_modules/urijs/src/SecondLevelDomains.js","../useIMGElementState.ts","../useIMGNormalizedSource.ts","../useImageConcreteDimensions.ts","../getIMGState.ts","../useImageSpecifiedDimensions.ts","../IMGElementContentSuccess.tsx","../IMGElementContainer.tsx","../GenericPressable.tsx","../IMGElementContentLoading.tsx","../IMGElementContentError.tsx","../IMGElementContentAlt.tsx","../useContentWidth.ts","../contentWidthContext.ts","../OLRenderer.tsx","../OLElement.tsx","../ListElement.tsx","../ListStyleSpecsProvider.tsx","../ULRenderer.tsx","../ULElement.tsx","../collapseTopMarginForChild.ts","../sourceLoaderContext.tsx","../RenderHTMLSource.tsx","../node_modules/stringify-entities/lib/core.js","../node_modules/stringify-entities/lib/util/format-smart.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/color-string/index.js","../node_modules/color-name/index.js","../node_modules/color-convert/conversions.js","../node_modules/@callstack/react-theme-provider/node_modules/deepmerge/dist/umd.js","../../../../src/navigators/createStackNavigator.tsx","../node_modules/color/node_modules/color-convert/conversions.js","../node_modules/es-errors/syntax.js","../node_modules/gopd/index.js","../node_modules/react-native-email/node_modules/qs/lib/utils.js","../node_modules/react-native-onesignal/dist/events/NotificationWillDisplayEvent.js","../node_modules/react-native-onesignal/dist/OSNotification.js","../node_modules/react-native-onesignal/dist/events/events.js","../node_modules/css-in-js-utils/es/assignStyle.js","../node_modules/css-in-js-utils/es/camelCaseProperty.js","../node_modules/css-in-js-utils/es/hyphenateProperty.js","../node_modules/css-in-js-utils/es/cssifyDeclaration.js","../node_modules/css-in-js-utils/es/cssifyObject.js","../node_modules/css-in-js-utils/es/isPrefixedProperty.js","../node_modules/css-in-js-utils/es/isPrefixedValue.js","../node_modules/css-in-js-utils/es/isUnitlessProperty.js","../node_modules/css-in-js-utils/es/unprefixProperty.js","../node_modules/css-in-js-utils/es/normalizeProperty.js","../node_modules/css-in-js-utils/es/resolveArrayValue.js","../node_modules/css-in-js-utils/es/unprefixValue.js","../node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","../node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","../node_modules/react-native-web/dist/exports/AppRegistry/index.js","../node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","../node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","../node_modules/react-native-web/dist/exports/PanResponder/index.js","../getAttachedChildren.ts","../InputGroup.tsx","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/merge-options/index.js","../node_modules/react-localization/lib/LocalizedStrings.js","../../../../src/tracing/idletransaction.ts","../../browser.ts","../../memo.ts","../../env.ts","../../supports.ts","../../error.ts","../../envelope.ts","../../api.ts","../node_modules/inline-style-prefixer/lib/plugins/flex.js","../node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js","../node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js","../node_modules/inline-style-prefixer/lib/plugins/gradient.js","../node_modules/inline-style-prefixer/lib/plugins/grid.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedTurboModule.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedModule.js","../node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","../node_modules/create-react-class/index.js","../node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","../node_modules/redux-thunk/es/index.js","../createContext.tsx","../node_modules/lodash.omitby/index.js","../node_modules/lodash.pick/index.js","../node_modules/lodash.clonedeep/index.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/escape-string-regexp/index.js","../HStack.tsx","../node_modules/react-phone-input-2/lib/lib.js","../node_modules/eventemitter3/index.js","../node_modules/react-google-autocomplete/lib/usePlacesAutocompleteService.js","../../../../src/Header/HeaderShownContext.tsx","../../../../src/Header/getDefaultHeaderHeight.tsx","../node_modules/qrcode.react/lib/esm/index.js","../node_modules/fbjs/lib/areEqual.js","../node_modules/react-otp-input/lib/index.js","../packages/@react-aria/label/src/useLabel.ts","../node_modules/react-native-phone-call/index.js","../node_modules/react-native-email/index.js","../node_modules/react-native-email/node_modules/qs/lib/index.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-fast-compare/index.js","../node_modules/warning/warning.js","../node_modules/react-smartbanner/dist/main.js","../../useBackButton.tsx","../../useDocumentTitle.tsx","../node_modules/fast-deep-equal/index.js","../../useThenable.tsx","../../LinkingContext.tsx","../../../../src/theming/ThemeProvider.tsx","../node_modules/react-native-lottie-splash-screen/index.js","../../../../../src/browser/metrics/utils.ts","../../../../../src/browser/metrics/index.ts","../../../../src/tracing/measurement.ts","../../../../src/instrument/fetch.ts","../../../../src/instrument/xhr.ts","../../../../src/common/fetch.ts","../../../../src/browser/request.ts","../../../../src/vendor/supportsHistory.ts","../../../../src/instrument/history.ts","../../../../src/browser/browsertracing.ts","../../../../src/browser/router.ts","../../../../src/buildPolyfills/_optionalChain.ts","../../../../../../src/node/integrations/utils/node-utils.ts","../../../../../src/node/integrations/apollo.ts","../../requestdata.ts","../../../../../src/node/integrations/express.ts","../../../../../src/node/integrations/graphql.ts","../../../../../src/node/integrations/mongo.ts","../../../../../src/node/integrations/mysql.ts","../../../../../src/node/integrations/postgres.ts","../../../../../src/node/integrations/prisma.ts","../../../../src/index.ts","../../../../src/browser/backgroundtab.ts","../GestureHandlerRootView.tsx","../gestureHandlerRootHOC.tsx","../PlatformConstants.web.ts","../gestureHandlers.ts","../createNativeWrapper.tsx","../GestureButtons.tsx","../GestureHandlerButton.web.tsx","../TouchableNativeFeedback.tsx","../GenericTouchable.tsx","../TouchableWithoutFeedback.tsx","../TouchableOpacity.tsx","../TouchableHighlight.tsx","../GestureComponents.web.tsx","../Swipeable.tsx","../DrawerLayout.tsx","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../../src/timer.js","../../src/domHelpers.js","../../src/createGridComponent.js","../../src/createListComponent.js","../../src/FixedSizeList.js","../../createMemoryHistory.tsx","../../ServerContext.tsx","../../useLinking.tsx","../../node_modules/tslib/tslib.es6.js","../../node_modules/fast-deep-equal/index.js","webpack:///../../src/index.ts?0e3e","../../src/google_map_map.js","../../src/marker_dispatcher.js","../../src/utils/omit.js","../../src/utils/shallowEqual.js","../../src/google_map_markers.js","../../src/google_map_markers_prerender.js","../../src/loaders/google_map_loader.js","../../src/lib/geo/wrap.js","../../src/lib/geo/lat_lng.js","../../src/lib/geo/transform.js","../../src/lib/geo/index.js","../../src/utils/raf.js","../../src/utils/log2.js","../../src/utils/pick.js","../../src/utils/isEmpty.js","../../src/utils/isNumber.js","../../src/utils/detect.js","../../src/utils/isPlainObject.js","../../src/utils/passiveEvents.js","../../src/utils/detectElementResize.js","../../src/google_map.js","../../src/google_heatmap.js","../../src/utils/isArraysEqualEps.js","../../NativeSafeAreaProvider.web.tsx","../../SafeAreaContext.tsx","../node_modules/webpack/buildin/amd-options.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/setimmediate/setImmediate.js","../node_modules/merge-options/node_modules/is-plain-obj/index.js","../node_modules/redux-action/build/create-sync-action.js","../node_modules/redux-action/build/create-reducer.js","../node_modules/clone/clone.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/redux-action/build/create-action.js","../node_modules/uuid/v1.js","../node_modules/uuid/lib/rng-browser.js","../node_modules/uuid/lib/bytesToUuid.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/@firebase/database/dist/index.esm.js","../node_modules/geolib/es/computeDestinationPoint.js","../node_modules/geolib/es/convertArea.js","../node_modules/geolib/es/convertDistance.js","../node_modules/geolib/es/convertSpeed.js","../node_modules/geolib/es/decimalToSexagesimal.js","../node_modules/geolib/es/findNearest.js","../node_modules/geolib/es/getAreaOfPolygon.js","../node_modules/geolib/es/getBoundsOfDistance.js","../node_modules/geolib/es/getCenter.js","../node_modules/geolib/es/getCenterOfBounds.js","../node_modules/geolib/es/getCompassDirection.js","../node_modules/geolib/es/getGreatCircleBearing.js","../node_modules/geolib/es/getPathLength.js","../node_modules/geolib/es/getPreciseDistance.js","../node_modules/geolib/es/getRoughCompassDirection.js","../node_modules/geolib/es/getSpeed.js","../node_modules/geolib/es/isPointInLine.js","../node_modules/geolib/es/isPointInPolygon.js","../node_modules/geolib/es/isPointNearLine.js","../node_modules/geolib/es/isPointWithinRadius.js","../node_modules/geolib/es/wktToPolygon.js","../node_modules/localized-strings/lib/LocalizedStrings.js","../node_modules/localized-strings/lib/utils.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","../node_modules/inline-style-prefixer/lib/utils/prefixValue.js","../node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","../node_modules/inline-style-prefixer/lib/utils/isObject.js","../node_modules/css-in-js-utils/lib/hyphenateProperty.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/create-react-class/factory.js","../node_modules/object-assign/index.js","../../src/named-references.ts","../../src/numeric-unicode-map.ts","../../src/surrogate-pairs.ts","../RenderHTML.tsx","../RenderHTMLDebug.tsx","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../useTRenderEngine.ts","../TRenderEngine.ts","../collapse.ts","../hoist.ts","../CSSProcessor.ts","../CSSInlineParseRun.ts","../node_modules/css-to-react-native/node_modules/postcss-value-parser/lib/index.js","../node_modules/css-to-react-native/node_modules/postcss-value-parser/lib/parse.js","../node_modules/css-to-react-native/node_modules/postcss-value-parser/lib/walk.js","../node_modules/css-to-react-native/node_modules/postcss-value-parser/lib/stringify.js","../node_modules/css-to-react-native/node_modules/postcss-value-parser/lib/unit.js","../node_modules/camelize/index.js","../node_modules/css-color-keywords/index.js","../CSSNativeParseRun.ts","../CSSPropertiesValidationRegistry.ts","../makepropertiesValidators.ts","../LongFontFamilyPropertyValidator.ts","../LongFloatNumberCSSPropertyValidator.ts","../LongBorderWidthCSSPropertyValidator.ts","../LongFontSizeCSSValidator.ts","../LongAspectRatioPropertyValidator.ts","../LongEnumerationListCSSPropertyValidator.ts","../LongBorderStyleCSSPropertyValidator.ts","../LongColorCSSPropertyValidator.ts","../ShortFontCSSValidator.ts","../ShortFlexCSSPropertyValidator.ts","../LongCSSToReactNativeValidator.ts","../ShortCardinalCSSPropertyValidator.ts","../ShortDualNativePropertyValidator.ts","../node_modules/ramda/src/isNil.js","../node_modules/ramda/src/not.js","../node_modules/ramda/src/internal/_pipe.js","../node_modules/ramda/src/reduce.js","../node_modules/ramda/src/internal/_reduce.js","../node_modules/ramda/src/internal/_isArrayLike.js","../node_modules/ramda/src/internal/_xwrap.js","../node_modules/ramda/src/bind.js","../node_modules/ramda/src/tail.js","../node_modules/ramda/src/slice.js","../node_modules/ramda/src/reverse.js","../markersPrototype.ts","../tnodeSnapshot.ts","../text-transforms.ts","../translate.ts","../TDocumentImpl.ts","../TEmptyCtor.ts","../parseDocument.ts","../node_modules/htmlparser2/lib/index.js","../node_modules/htmlparser2/node_modules/entities/lib/decode.js","../node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js","../node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js","../node_modules/dom-serializer/lib/index.js","../node_modules/entities/lib/index.js","../node_modules/entities/lib/decode_codepoint.js","../node_modules/dom-serializer/lib/foreignNames.js","../node_modules/domutils/lib/traversal.js","../node_modules/domutils/lib/manipulation.js","../node_modules/domutils/lib/helpers.js","../node_modules/domutils/lib/feeds.js","../DomHandler.ts","../TStylesMerger.ts","../defaults.ts","../HTMLModelRegistry.ts","../node_modules/ramda/src/identity.js","../node_modules/ramda/src/internal/_identity.js","../node_modules/ramda/src/mergeDeepRight.js","../node_modules/ramda/src/mergeDeepWithKey.js","../node_modules/ramda/src/internal/_isObject.js","../node_modules/ramda/src/mergeWithKey.js","../defaultRendererProps.ts","../../../../src/presets/decimalLeadingZero.ts","../../../../src/presets/lowerRoman.ts","../../../../src/presets/lowerAlpha.ts","../../../../src/presets/lowerGreek.ts","../../../../src/presets/upperAlpha.ts","../../../../src/presets/upperRoman.ts","../DisclosureClosedSymbolRenderer.tsx","../DisclosureOpenSymbolRenderer.tsx","../CircleSymbolRenderer.tsx","../DiscSymbolRenderer.tsx","../SquareSymbolRenderer.tsx","../selectSharedProps.ts","../node_modules/ramda/src/pickBy.js","../node_modules/ramda/src/mergeRight.js","../node_modules/ramda/src/internal/_objectAssign.js","../useAssembledCommonProps.ts","../mergeCollapsedMargins.ts","../RenderRegistry.ts","../lookupRecord.ts","../BRRenderer.tsx","../WBRRenderer.tsx","../internalRenderers.ts","../normalizeResourceLocator.ts","../node_modules/urijs/src/URI.js","../extractImageStyleProps.ts","../getDimensionsWithAspectRatio.ts","../renderTextualContent.tsx","../renderBlockContent.tsx","../renderEmptyContent.ts","../getCollapsedMarginTop.ts","../node_modules/ramda/src/equals.js","../node_modules/ramda/src/internal/_equals.js","../node_modules/ramda/src/internal/_arrayFromIterator.js","../node_modules/ramda/src/internal/_includesWith.js","../node_modules/ramda/src/internal/_functionName.js","../node_modules/ramda/src/internal/_objectIs.js","../node_modules/ramda/src/keys.js","../node_modules/ramda/src/internal/_isArguments.js","../node_modules/ramda/src/type.js","../isUriSource.ts","../SourceLoaderUri.tsx","../useTTree.ts","../TDocumentRenderer.tsx","../SourceLoaderInline.tsx","../SourceLoaderDom.tsx","../isDomSource.ts","../useInternalRenderer.ts","../splitBoxModelStyle.ts","../domNodeToHTMLString.ts","../node_modules/stringify-entities/index.js","../node_modules/stringify-entities/lib/index.js","../node_modules/stringify-entities/lib/encode.js","../node_modules/xtend/immutable.js","../node_modules/stringify-entities/lib/util/to-hexadecimal.js","../node_modules/stringify-entities/lib/util/to-decimal.js","../node_modules/stringify-entities/lib/util/to-named.js","../node_modules/stringify-entities/lib/constant/characters.js","../node_modules/stringify-entities/lib/constant/has-own-property.js","../node_modules/stringify-entities/lib/escape.js","../useIMGElementStateWithCache.ts","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../ReactNativeSVG.web.ts","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../SvgTouchableMixin.ts","../resolve.ts","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/strict-uri-encode/index.js","../node_modules/decode-uri-component/index.js","../node_modules/split-on-first/index.js","../node_modules/filter-obj/index.js","../node_modules/use-latest-callback/lib/src/useIsomorphicLayoutEffect.js","../node_modules/@lottiefiles/react-lottie-player/dist/lottie-react.esm.js","../node_modules/lodash.debounce/index.js","../node_modules/react-google-autocomplete/lib/utils.js","../node_modules/react-google-autocomplete/lib/constants.js","../node_modules/simple-swizzle/index.js","../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/color-convert/index.js","../node_modules/color-convert/node_modules/color-name/index.js","../node_modules/color-convert/route.js","../../src/createTheming.js","../../src/createThemeProvider.js","../../src/createWithTheme.js","../node_modules/@react-navigation/elements/lib/module/assets/back-icon.png","../node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.png","../node_modules/color/node_modules/color-convert/index.js","../node_modules/color/node_modules/color-convert/route.js","../node_modules/react-native-email/node_modules/qs/lib/stringify.js","../node_modules/side-channel/index.js","../node_modules/es-errors/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/uri.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-proto/index.js","../node_modules/function-bind/implementation.js","../node_modules/hasown/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/set-function-length/index.js","../node_modules/define-data-property/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/object-inspect/index.js","../node_modules/react-native-email/node_modules/qs/lib/parse.js","../node_modules/classnames/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subQuarters/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/date-fns/esm/set/index.js","../node_modules/react-native-onesignal/dist/events/EventManager.js","../node_modules/react-native-onesignal/dist/models/Subscription.js","../node_modules/react-native-onesignal/dist/helpers.js","../node_modules/ramda/es/F.js","../node_modules/ramda/es/T.js","../node_modules/ramda/es/__.js","../node_modules/ramda/es/internal/_isPlaceholder.js","../node_modules/ramda/es/internal/_curry1.js","../node_modules/ramda/es/internal/_curry2.js","../node_modules/ramda/es/add.js","../node_modules/ramda/es/internal/_concat.js","../node_modules/ramda/es/internal/_arity.js","../node_modules/ramda/es/internal/_curryN.js","../node_modules/ramda/es/curryN.js","../node_modules/ramda/es/addIndex.js","../node_modules/ramda/es/internal/_curry3.js","../node_modules/ramda/es/adjust.js","../node_modules/ramda/es/internal/_isArray.js","../node_modules/ramda/es/internal/_isTransformer.js","../node_modules/ramda/es/internal/_dispatchable.js","../node_modules/ramda/es/internal/_reduced.js","../node_modules/ramda/es/internal/_xfBase.js","../node_modules/ramda/es/internal/_xall.js","../node_modules/ramda/es/all.js","../node_modules/ramda/es/max.js","../node_modules/ramda/es/internal/_map.js","../node_modules/ramda/es/internal/_isString.js","../node_modules/ramda/es/internal/_isArrayLike.js","../node_modules/ramda/es/internal/_xwrap.js","../node_modules/ramda/es/bind.js","../node_modules/ramda/es/internal/_reduce.js","../node_modules/ramda/es/internal/_xmap.js","../node_modules/ramda/es/internal/_has.js","../node_modules/ramda/es/internal/_isArguments.js","../node_modules/ramda/es/keys.js","../node_modules/ramda/es/map.js","../node_modules/ramda/es/internal/_isInteger.js","../node_modules/ramda/es/nth.js","../node_modules/ramda/es/paths.js","../node_modules/ramda/es/path.js","../node_modules/ramda/es/prop.js","../node_modules/ramda/es/pluck.js","../node_modules/ramda/es/reduce.js","../node_modules/ramda/es/allPass.js","../node_modules/ramda/es/always.js","../node_modules/ramda/es/and.js","../node_modules/ramda/es/internal/_xany.js","../node_modules/ramda/es/any.js","../node_modules/ramda/es/anyPass.js","../node_modules/ramda/es/ap.js","../node_modules/ramda/es/internal/_aperture.js","../node_modules/ramda/es/internal/_xaperture.js","../node_modules/ramda/es/aperture.js","../node_modules/ramda/es/append.js","../node_modules/ramda/es/apply.js","../node_modules/ramda/es/values.js","../node_modules/ramda/es/applySpec.js","../node_modules/ramda/es/applyTo.js","../node_modules/ramda/es/ascend.js","../node_modules/ramda/es/assoc.js","../node_modules/ramda/es/isNil.js","../node_modules/ramda/es/assocPath.js","../node_modules/ramda/es/nAry.js","../node_modules/ramda/es/binary.js","../node_modules/ramda/es/internal/_isFunction.js","../node_modules/ramda/es/liftN.js","../node_modules/ramda/es/lift.js","../node_modules/ramda/es/both.js","../node_modules/ramda/es/curry.js","../node_modules/ramda/es/call.js","../node_modules/ramda/es/internal/_makeFlat.js","../node_modules/ramda/es/internal/_flatCat.js","../node_modules/ramda/es/internal/_forceReduced.js","../node_modules/ramda/es/chain.js","../node_modules/ramda/es/internal/_xchain.js","../node_modules/ramda/es/clamp.js","../node_modules/ramda/es/internal/_cloneRegExp.js","../node_modules/ramda/es/type.js","../node_modules/ramda/es/internal/_clone.js","../node_modules/ramda/es/clone.js","../node_modules/ramda/es/comparator.js","../node_modules/ramda/es/not.js","../node_modules/ramda/es/complement.js","../node_modules/ramda/es/internal/_pipe.js","../node_modules/ramda/es/internal/_checkForMethod.js","../node_modules/ramda/es/slice.js","../node_modules/ramda/es/tail.js","../node_modules/ramda/es/pipe.js","../node_modules/ramda/es/reverse.js","../node_modules/ramda/es/compose.js","../node_modules/ramda/es/composeK.js","../node_modules/ramda/es/internal/_pipeP.js","../node_modules/ramda/es/pipeP.js","../node_modules/ramda/es/composeP.js","../node_modules/ramda/es/head.js","../node_modules/ramda/es/internal/_identity.js","../node_modules/ramda/es/identity.js","../node_modules/ramda/es/pipeWith.js","../node_modules/ramda/es/composeWith.js","../node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/ramda/es/internal/_includesWith.js","../node_modules/ramda/es/internal/_objectIs.js","../node_modules/ramda/es/internal/_equals.js","../node_modules/ramda/es/internal/_functionName.js","../node_modules/ramda/es/equals.js","../node_modules/ramda/es/internal/_indexOf.js","../node_modules/ramda/es/internal/_includes.js","../node_modules/ramda/es/internal/_quote.js","../node_modules/ramda/es/internal/_toISOString.js","../node_modules/ramda/es/internal/_complement.js","../node_modules/ramda/es/internal/_filter.js","../node_modules/ramda/es/internal/_isObject.js","../node_modules/ramda/es/internal/_xfilter.js","../node_modules/ramda/es/filter.js","../node_modules/ramda/es/reject.js","../node_modules/ramda/es/internal/_toString.js","../node_modules/ramda/es/toString.js","../node_modules/ramda/es/concat.js","../node_modules/ramda/es/cond.js","../node_modules/ramda/es/constructN.js","../node_modules/ramda/es/construct.js","../node_modules/ramda/es/contains.js","../node_modules/ramda/es/converge.js","../node_modules/ramda/es/internal/_xreduceBy.js","../node_modules/ramda/es/reduceBy.js","../node_modules/ramda/es/countBy.js","../node_modules/ramda/es/dec.js","../node_modules/ramda/es/defaultTo.js","../node_modules/ramda/es/descend.js","../node_modules/ramda/es/internal/_Set.js","../node_modules/ramda/es/difference.js","../node_modules/ramda/es/differenceWith.js","../node_modules/ramda/es/dissoc.js","../node_modules/ramda/es/remove.js","../node_modules/ramda/es/update.js","../node_modules/ramda/es/dissocPath.js","../node_modules/ramda/es/divide.js","../node_modules/ramda/es/internal/_xdrop.js","../node_modules/ramda/es/drop.js","../node_modules/ramda/es/internal/_xtake.js","../node_modules/ramda/es/take.js","../node_modules/ramda/es/internal/_dropLast.js","../node_modules/ramda/es/internal/_xdropLast.js","../node_modules/ramda/es/dropLast.js","../node_modules/ramda/es/internal/_dropLastWhile.js","../node_modules/ramda/es/internal/_xdropLastWhile.js","../node_modules/ramda/es/dropLastWhile.js","../node_modules/ramda/es/internal/_xdropRepeatsWith.js","../node_modules/ramda/es/last.js","../node_modules/ramda/es/dropRepeatsWith.js","../node_modules/ramda/es/dropRepeats.js","../node_modules/ramda/es/internal/_xdropWhile.js","../node_modules/ramda/es/dropWhile.js","../node_modules/ramda/es/or.js","../node_modules/ramda/es/either.js","../node_modules/ramda/es/empty.js","../node_modules/ramda/es/takeLast.js","../node_modules/ramda/es/endsWith.js","../node_modules/ramda/es/eqBy.js","../node_modules/ramda/es/eqProps.js","../node_modules/ramda/es/evolve.js","../node_modules/ramda/es/internal/_xfind.js","../node_modules/ramda/es/find.js","../node_modules/ramda/es/internal/_xfindIndex.js","../node_modules/ramda/es/findIndex.js","../node_modules/ramda/es/internal/_xfindLast.js","../node_modules/ramda/es/findLast.js","../node_modules/ramda/es/internal/_xfindLastIndex.js","../node_modules/ramda/es/findLastIndex.js","../node_modules/ramda/es/flatten.js","../node_modules/ramda/es/flip.js","../node_modules/ramda/es/forEach.js","../node_modules/ramda/es/forEachObjIndexed.js","../node_modules/ramda/es/fromPairs.js","../node_modules/ramda/es/groupBy.js","../node_modules/ramda/es/groupWith.js","../node_modules/ramda/es/gt.js","../node_modules/ramda/es/gte.js","../node_modules/ramda/es/hasPath.js","../node_modules/ramda/es/has.js","../node_modules/ramda/es/hasIn.js","../node_modules/ramda/es/identical.js","../node_modules/ramda/es/ifElse.js","../node_modules/ramda/es/inc.js","../node_modules/ramda/es/includes.js","../node_modules/ramda/es/indexBy.js","../node_modules/ramda/es/indexOf.js","../node_modules/ramda/es/init.js","../node_modules/ramda/es/innerJoin.js","../node_modules/ramda/es/insert.js","../node_modules/ramda/es/insertAll.js","../node_modules/ramda/es/uniqBy.js","../node_modules/ramda/es/uniq.js","../node_modules/ramda/es/intersection.js","../node_modules/ramda/es/intersperse.js","../node_modules/ramda/es/internal/_objectAssign.js","../node_modules/ramda/es/objOf.js","../node_modules/ramda/es/internal/_stepCat.js","../node_modules/ramda/es/into.js","../node_modules/ramda/es/invert.js","../node_modules/ramda/es/invertObj.js","../node_modules/ramda/es/invoker.js","../node_modules/ramda/es/is.js","../node_modules/ramda/es/isEmpty.js","../node_modules/ramda/es/join.js","../node_modules/ramda/es/juxt.js","../node_modules/ramda/es/keysIn.js","../node_modules/ramda/es/lastIndexOf.js","../node_modules/ramda/es/internal/_isNumber.js","../node_modules/ramda/es/length.js","../node_modules/ramda/es/lens.js","../node_modules/ramda/es/lensIndex.js","../node_modules/ramda/es/lensPath.js","../node_modules/ramda/es/lensProp.js","../node_modules/ramda/es/lt.js","../node_modules/ramda/es/lte.js","../node_modules/ramda/es/mapAccum.js","../node_modules/ramda/es/mapAccumRight.js","../node_modules/ramda/es/mapObjIndexed.js","../node_modules/ramda/es/match.js","../node_modules/ramda/es/mathMod.js","../node_modules/ramda/es/maxBy.js","../node_modules/ramda/es/sum.js","../node_modules/ramda/es/mean.js","../node_modules/ramda/es/median.js","../node_modules/ramda/es/memoizeWith.js","../node_modules/ramda/es/merge.js","../node_modules/ramda/es/mergeAll.js","../node_modules/ramda/es/mergeWithKey.js","../node_modules/ramda/es/mergeDeepWithKey.js","../node_modules/ramda/es/mergeDeepLeft.js","../node_modules/ramda/es/mergeDeepRight.js","../node_modules/ramda/es/mergeDeepWith.js","../node_modules/ramda/es/mergeLeft.js","../node_modules/ramda/es/mergeRight.js","../node_modules/ramda/es/mergeWith.js","../node_modules/ramda/es/min.js","../node_modules/ramda/es/minBy.js","../node_modules/ramda/es/modulo.js","../node_modules/ramda/es/move.js","../node_modules/ramda/es/multiply.js","../node_modules/ramda/es/negate.js","../node_modules/ramda/es/none.js","../node_modules/ramda/es/nthArg.js","../node_modules/ramda/es/o.js","../node_modules/ramda/es/internal/_of.js","../node_modules/ramda/es/of.js","../node_modules/ramda/es/omit.js","../node_modules/ramda/es/once.js","../node_modules/ramda/es/internal/_assertPromise.js","../node_modules/ramda/es/otherwise.js","../node_modules/ramda/es/over.js","../node_modules/ramda/es/pair.js","../node_modules/ramda/es/internal/_createPartialApplicator.js","../node_modules/ramda/es/partial.js","../node_modules/ramda/es/partialRight.js","../node_modules/ramda/es/partition.js","../node_modules/ramda/es/pathEq.js","../node_modules/ramda/es/pathOr.js","../node_modules/ramda/es/pathSatisfies.js","../node_modules/ramda/es/pick.js","../node_modules/ramda/es/pickAll.js","../node_modules/ramda/es/pickBy.js","../node_modules/ramda/es/pipeK.js","../node_modules/ramda/es/prepend.js","../node_modules/ramda/es/product.js","../node_modules/ramda/es/useWith.js","../node_modules/ramda/es/project.js","../node_modules/ramda/es/propEq.js","../node_modules/ramda/es/propIs.js","../node_modules/ramda/es/propOr.js","../node_modules/ramda/es/propSatisfies.js","../node_modules/ramda/es/props.js","../node_modules/ramda/es/range.js","../node_modules/ramda/es/reduceRight.js","../node_modules/ramda/es/reduceWhile.js","../node_modules/ramda/es/reduced.js","../node_modules/ramda/es/times.js","../node_modules/ramda/es/repeat.js","../node_modules/ramda/es/replace.js","../node_modules/ramda/es/scan.js","../node_modules/ramda/es/sequence.js","../node_modules/ramda/es/set.js","../node_modules/ramda/es/sort.js","../node_modules/ramda/es/sortBy.js","../node_modules/ramda/es/sortWith.js","../node_modules/ramda/es/split.js","../node_modules/ramda/es/splitAt.js","../node_modules/ramda/es/splitEvery.js","../node_modules/ramda/es/splitWhen.js","../node_modules/ramda/es/startsWith.js","../node_modules/ramda/es/subtract.js","../node_modules/ramda/es/symmetricDifference.js","../node_modules/ramda/es/symmetricDifferenceWith.js","../node_modules/ramda/es/takeLastWhile.js","../node_modules/ramda/es/internal/_xtakeWhile.js","../node_modules/ramda/es/takeWhile.js","../node_modules/ramda/es/internal/_xtap.js","../node_modules/ramda/es/tap.js","../node_modules/ramda/es/test.js","../node_modules/ramda/es/internal/_isRegExp.js","../node_modules/ramda/es/andThen.js","../node_modules/ramda/es/toLower.js","../node_modules/ramda/es/toPairs.js","../node_modules/ramda/es/toPairsIn.js","../node_modules/ramda/es/toUpper.js","../node_modules/ramda/es/transduce.js","../node_modules/ramda/es/transpose.js","../node_modules/ramda/es/traverse.js","../node_modules/ramda/es/trim.js","../node_modules/ramda/es/tryCatch.js","../node_modules/ramda/es/unapply.js","../node_modules/ramda/es/unary.js","../node_modules/ramda/es/uncurryN.js","../node_modules/ramda/es/unfold.js","../node_modules/ramda/es/union.js","../node_modules/ramda/es/uniqWith.js","../node_modules/ramda/es/unionWith.js","../node_modules/ramda/es/unless.js","../node_modules/ramda/es/unnest.js","../node_modules/ramda/es/until.js","../node_modules/ramda/es/valuesIn.js","../node_modules/ramda/es/view.js","../node_modules/ramda/es/when.js","../node_modules/ramda/es/where.js","../node_modules/ramda/es/whereEq.js","../node_modules/ramda/es/without.js","../node_modules/ramda/es/xor.js","../node_modules/ramda/es/xprod.js","../node_modules/ramda/es/zip.js","../node_modules/ramda/es/zipObj.js","../node_modules/ramda/es/zipWith.js","../node_modules/ramda/es/thunkify.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../TransitionProgressContext.tsx","../useTransitionProgress.tsx","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../../../../src/tracing/hubextensions.ts","../Overlay.tsx","../useKeyboardDismissable.ts","../useKeyboardBottomInset.ts","../combineContextAndProps.ts","../accessibilityUtils.ts","../useFormControl.tsx","../../extensions.ts","../../../../src/instrument/dom.ts","../../ratelimit.ts","../View.tsx","../ScrollView.tsx","../FlatList.tsx","../useControllableProp.ts","../Close.tsx","../Info.tsx","../Toast.tsx","../../SafeAreaView.web.tsx","../StatusBar.tsx","../../../../src/Header/getHeaderTitle.tsx","../../../../src/theming/useTheme.tsx","../../InitialWindow.ts","../Center.tsx","../KeyboardAvoidingView.tsx","../../NavigationContainer.tsx","../extendTheme.tsx","../../../../src/integrations/inboundfilters.ts","../../../../src/integrations/functiontostring.ts","../../sdk.ts","../../../../src/utils/sdkMetadata.ts","../../../../src/debug-build.ts","../../../../src/eventbuilder.ts","../../../../src/helpers.ts","../../../../src/client.ts","../../../../src/userfeedback.ts","../../clientreport.ts","../../../../src/instrument/console.ts","../../severity.ts","../../../../../src/integrations/breadcrumbs.ts","../../../../../src/integrations/dedupe.ts","../../../../../src/integrations/globalhandlers.ts","../../../../../src/integrations/httpcontext.ts","../../aggregate-errors.ts","../../../../../src/integrations/linkederrors.ts","../../../../../src/integrations/trycatch.ts","../../../../src/stack-parsers.ts","../../promisebuffer.ts","../../../../src/transports/base.ts","../../../../../src/transports/utils.ts","../../../../../src/transports/fetch.ts","../../../../../src/transports/xhr.ts","../../../../src/sdk.ts","../colors.tsx","../fonts.tsx","../DefaultTheme.tsx","../theming.tsx","../TouchableRipple.tsx","../MaterialCommunityIcon.tsx","../settings.tsx","../Icon.tsx","../CrossFadeIcon.tsx","../IconButton.tsx","../TextInputIcon.tsx","../enums.tsx","../TextInputAffix.tsx","../constants.tsx","../TextInputAdornment.tsx","../AnimatedText.tsx","../InputLabel.tsx","../LabelBackground.tsx","../helpers.tsx","../TextInputOutlined.tsx","../TextInputFlat.tsx","../TextInput.tsx","../packages/@react-aria/visually-hidden/src/VisuallyHidden.tsx","../packages/@react-aria/checkbox/src/useCheckbox.ts","../packages/@react-aria/toggle/src/useToggle.ts","../packages/@react-aria/checkbox/src/utils.ts","../packages/@react-aria/checkbox/src/useCheckboxGroupItem.ts","../../useCheckboxGroup.web.ts","../packages/@react-aria/checkbox/src/useCheckboxGroup.ts","../CheckboxGroup.tsx","../packages/@react-stately/checkbox/src/useCheckboxGroupState.ts","../Check.tsx","../SizedIcon.tsx","../Checkbox.web.tsx","../Popper.tsx","../PopoverContext.ts","../Popover.tsx","../PopoverContent.tsx","../PopoverBody.tsx","../PopoverCloseButton.tsx","../PopoverFooter.tsx","../PopoverHeader.tsx","../PopoverArrow.tsx","../ActionSheetContext.ts","../Actionsheet.tsx","../ActionsheetItem.tsx","../ActionsheetContent.tsx","../Chevron.tsx","../Select.tsx","../SelectItem.tsx","../../../../src/utils/isSentryRequestUrl.ts","../../isBrowser.ts","../node_modules/@sentry/react/node_modules/@sentry/replay/esm/index.js","../../../../src/buildPolyfills/_nullishCoalesce.ts","../../../../src/metrics/envelope.ts","../../../../src/metrics/utils.ts","../../baseclient.ts","../component.tsx","../usePropsWithComponentTheme.ts","../Skeleton.tsx","../canUseDom.ts","../SkeletonText.tsx","../Button.tsx","../ButtonGroup.tsx","../useProps.tsx","../filterShadowProps.ts","../SimpleGrid.tsx","../useLink.ts","../HybridProvider.tsx","../NativeBaseProvider.tsx"],"names":["module","exports","require","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","_","kind","descriptor","name","done","context","access","addInitializer","push","result","get","set","init","unshift","__runInitializers","thisArg","value","useValue","__propKey","x","concat","__setFunctionName","prefix","description","configurable","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","then","__generator","body","y","g","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","__createBinding","o","m","k","k2","undefined","__esModule","writable","enumerable","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","a","j","jl","__spreadArray","to","from","pack","l","slice","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__importDefault","default","__classPrivateFieldGet","receiver","state","has","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","env","async","dispose","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","message","Error","__disposeResources","fail","hasError","rec","assert","assertion","assertionError","CONSTANTS","SDK_VERSION","stringToByteArray","str","out","charCodeAt","base64","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","ENCODED_VALS_WEBSAFE","HAS_NATIVE_SUPPORT","atob","encodeByteArray","input","webSafe","isArray","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","join","encodeString","btoa","decodeString","bytes","pos","c1","fromCharCode","c2","u","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","charAt","byte4","base64Encode","utf8Bytes","base64urlEncodeWithoutPadding","replace","base64Decode","console","deepCopy","deepExtend","source","Date","getTime","prop","promise","wrapCallback","callback","catch","createMockUserToken","token","projectId","uid","project","iat","sub","user_id","payload","iss","aud","exp","auth_time","firebase","sign_in_provider","identities","JSON","stringify","alg","type","getUA","navigator","isMobileCordova","window","test","isNode","toString","global","process","isBrowser","self","isBrowserExtension","runtime","chrome","browser","id","isReactNative","isElectron","isIE","ua","isUWP","isNodeSdk","NODE_CLIENT","NODE_ADMIN","isSafari","userAgent","includes","isIndexedDBAvailable","indexedDB","validateIndexedDBOpenable","open","onsuccess","close","deleteDatabase","onupgradeneeded","onerror","areCookiesEnabled","cookieEnabled","getGlobal","jsonEval","parse","data","decode","header","claims","signature","parts","split","isValidTimestamp","now","Math","floor","validSince","validUntil","issuedAtTime","isValidFormat","isAdmin","contains","obj","safeGet","isEmpty","map","fn","contextObj","res","deepEqual","aKeys","keys","bKeys","aProp","bProp","isObject","thing","querystring","querystringParams","params","forEach","arrayVal","encodeURIComponent","entries","querystringDecode","decodeURIComponent","extractQuerystring","url","queryStart","fragmentStart","substring","chain_","buf_","W_","pad_","inbuf_","total_","blockSize","reset","compress_","buf","offset","W","update","lengthMinusBlock","inbuf","digest","totalBits","createSubscribe","executor","onNoObservers","proxy","ObserverProxy","subscribe","bind","observers","unsubscribes","observerCount","task","finalized","forEachObserver","observer","complete","nextOrObserver","methods","method","implementsAnyMethods","noop","unsub","unsubscribeOne","finalError","sendOne","err","onError","args","validateArgCount","fnName","minCount","maxCount","argCount","argError","errorPrefix","argName","validateNamespace","namespace","optional","validateCallback","argumentName","validateContextObject","high","stringLength","DEFAULT_INTERVAL_MILLIS","DEFAULT_BACKOFF_FACTOR","MAX_VALUE_MILLIS","RANDOM_FACTOR","calculateBackoffMillis","backoffCount","intervalMillis","backoffFactor","currBaseValue","pow","randomWait","round","random","min","ordinal","Number","isFinite","abs","cent","dec","indicator","getModularInstance","service","_delegate","ReactReduxContext","React","createContext","batch","getBatch","nullListeners","notify","createSubscription","store","parentSub","unsubscribe","listeners","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","first","last","clear","listener","isSubscribed","prev","createListenerCollection","notifyNestedSubs","Boolean","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","document","createElement","useLayoutEffect","useEffect","Provider","_ref","children","contextValue","useMemo","previousState","getState","Context","useReduxContext","useContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","dispatch","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","useReducer","latestSubscriptionCallbackError","useRef","latestSelector","latestStoreState","latestSelectedState","storeState","current","newSelectedState","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","clipboardAvailable","Alert","alert","Clipboard","isAvailable","queryCommandSupported","getString","setString","text","success","node","textContent","style","opacity","position","whiteSpace","userSelect","appendChild","selection","getSelection","removeAllRanges","range","createRange","selectNodeContents","addRange","execCommand","removeChild","DeviceInfo","Dimensions","windowPhysicalPixels","_Dimensions$get","width","height","fontScale","scale","screenPhysicalPixels","_Dimensions$get2","locale","canUseDOM","languages","language","totalMemory","deviceMemory","configureNext","config","onAnimationDidEnd","Platform","isTesting","UIManager","configureNextLayoutAnimation","duration","property","delete","Presets","easeInEaseOut","linear","spring","springDamping","LayoutAnimation","Types","freeze","easeIn","easeOut","keyboard","Properties","scaleX","scaleY","scaleXY","checkConfig","NativeEventEmitter","_vibrate","pattern","vibrate","Vibration","cancel","Button","props","forwardedRef","accessibilityLabel","color","disabled","onPress","testID","title","TouchableOpacity","accessibilityRole","focusable","ref","styles","button","backgroundColor","buttonDisabled","Text","textDisabled","displayName","StyleSheet","borderRadius","fontWeight","padding","textAlign","textTransform","ownKeys","object","enumerableOnly","symbols","filter","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_extends","CheckBox","onChange","onValueChange","other","excluded","sourceKeys","_objectWithoutPropertiesLoose","fakeControl","View","fakeControlChecked","borderColor","fakeControlDisabled","fakeControlCheckedAndDisabled","nativeControl","checked","event","nativeEvent","cursorInherit","accessibilityDisabled","root","cursorDefault","cursor","alignItems","borderStyle","borderWidth","justifyContent","backgroundImage","backgroundRepeat","absoluteFillObject","margin","Picker","enabled","selectedValue","itemStyle","mode","prompt","hostRef","supportedProps","_e$target","selectedIndex","initial","platformMethodsRef","usePlatformMethods","setRef","useMergeRefs","Item","fontFamily","fontSize","ProgressBar","_props$color","_props$indeterminate","indeterminate","_props$progress","progress","_props$trackColor","trackColor","percentageProgress","progressRef","setNativeProps","accessibilityValue","max","track","animation","forcedColorAdjust","overflow","zIndex","animationDuration","animationKeyframes","transform","translateX","animationTimingFunction","animationIterationCount","createExtraStyles","activeOpacity","underlayColor","child","underlay","hasPressHandler","onPressIn","onPressOut","onLongPress","TouchableHighlight","delayPressIn","delayPressOut","delayLongPress","onHideUnderlay","onShowUnderlay","rejectResponderTermination","testOnly_pressed","rest","_useState","useState","extraStyles","setExtraStyles","showUnderlay","useCallback","hideUnderlay","pressConfig","cancelable","delayPressStart","delayPressEnd","onPressStart","onPressEnd","pressEventHandlers","usePressEvents","only","actionable","compose","touchAction","MemoedTouchableHighlight","VirtualizedList","YellowBox","UnimplementedView","ignoreWarnings","LogBox","ignoreLogs","ignoreAllLogs","uninstall","install","promiseMock","PERMISSIONS","RESULTS","checkPermission","check","requestPermission","request","requestMultiple","RCTDeviceEventEmitter","requiredArgs","required","validateFormat","format","condition","_len","_key","argIndex","framesToPop","defaultValue","setValue","effect","nextRef","newValue","queue","Map","defaultId","nextId","updateValue","val","newId","idA","idB","setIdA","setIdB","depArray","resolvedId","setResolvedId","updateId","getElementById","callbacks","el","ownerDocument","defaultView","Set","opts","labelable","isLink","propNames","filteredProps","element","focus","preventScroll","scrollableElements","parent","parentNode","rootScrollingElement","scrollingElement","documentElement","HTMLElement","offsetHeight","scrollHeight","offsetWidth","scrollWidth","scrollTop","scrollLeft","re","brands","some","brand","platform","maxTouchPoints","modifiers","setOpening","metaKey","ctrlKey","altKey","shiftKey","startsWith","KeyboardEvent","keyIdentifier","MouseEvent","bubbles","isOpening","dispatchEvent","isTransitionEvent","onTransitionEnd","properties","propertyName","size","removeEventListener","cb","addEventListener","transitions","once","add","requestAnimationFrame","readyState","globalListeners","addGlobalListener","eventTarget","options","removeGlobalListener","removeAllGlobalListeners","defaultLabel","labelledBy","ids","trim","objRef","visualViewport","setId","display","refCount","remove","handler","handleEvent","isDisabled","mozInputSource","isTrusted","pointerType","buttons","detail","pressure","initialValue","onReset","resetValue","handleReset","form","toDate","argument","argStr","_typeof","warn","NaN","useHasResponsiveProps","_assertThisInitialized","ReferenceError","ch2","Uint8Array","Uint16Array","i32","Int32Array","fleb","fdeb","clim","freb","start","_a","fl","revfl","_b","fd","revfd","rev","mb","u16","cd","le","co","rvb","sv","r_1","flt","fdt","flrm","hMap","fdrm","bits16","shft","slc","u8","subarray","ec","ind","msg","nt","code","captureStackTrace","inflt","dat","st","dict","sl","dl","noBuf","resize","noSt","cbuf","bl","nbuf","final","bt","lm","dm","lbt","dbt","tbts","bits","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","dt","lt","lms","dms","lpos","dsym","dend","end","et","mrg","fnStr","ks","lastIndexOf","st_1","spInd","ch","cbfs","fns","wcln","td_1","wk","transfer","w","Worker","URL","createObjectURL","Blob","onmessage","ed","$e$","postMessage","td","inflateSync","pbf","gopt","dictionary","wrkr","b2","b8","b4","inflate","TextDecoder","tds","dutf8","eb","zh","z","fnl","strFromU8","es","bs","z64e","sc","su","off","mt","queueMicrotask","setTimeout","unzip","term","files","cbd","tAll","lft","ze","fltr","_loop_3","no","slzh","cbl","c_1","infl","cbify","ev","arg1","issue","path","flatErrors","ValiError","symbol","getIssue","info","reason","origin","executePipe","pipe","action","pipeInfo","getPipeInfo","parseInfo","issues","arg2","abortEarly","any","getIssues","item","pathItem","boolean","literal","literal2","arg3","cachedEntries","object2","value2","schema","getDefaultArgs","error2","tuple","arg4","getTupleArgs","items","union","union2","_parse","merge","schemas","schemas2","minValue","requirement","sx","sy","sw","dx","destData","dest","sourceY","destY","sourceX","channels","fill","allZero","xPi","toFixedPoint","fixedFracBits","destSize","use2","scaleInverted","filters","packedFilter","packedFilterPtr","destPixel","sourcePixel","sourceLast","srcSize","sourceFirst","floatFilter","filterElementSize","index","pixel","floatValue","filterValue","index2","total","filterTotal","filterValue2","fxpFilter","leftNotEmpty","rightNotEmpty","filterSize","filterShift","srcOffset","destX","filterPtr","srcPtr","destOffset","sh","convolve_1","yRatio","filters_1","tmp","filtersX","dy","dw","croppedDest","copy_1","lanczos22","string","BLOCKED_KEYS","abortPipeEarly","valueResult","inputValue","inputKey","keyResult","safeParse","StateTransitionOnMouseEnterSchema","TransitionableSchema","StateTransitionOnMouseLeaveSchema","StateTransitionOnCompleteSchema","array","StateTransitionOnAfterSchema","StateTransitionOnClickSchema","DotLottieStatePlaybackSettingsSchema","DotLottieStateSchema","DotLottieStateMachineSchema","DotLottieStateMachineDescriptorSchema","MIME_TYPES","MIME_CODES","withoutMeta","bufData","mimeType","dataArr","__publicField","getMimeTypeFromBase64","isImageAsset","asset","isAudioAsset","dotLottie","ManifestSchema","maxValue","validateDotLottie","validationResult","audioMap","animationData","audioId","unzipDotLottie","file","unzippedSingleAudio","audioPath","dataUrlFromU8","animationId","inlineImageAssets","imagesMap","imageId","unzippedImages","images","imagePath","unzippedImage","imageDataURL","getAnimation","unzippedAnimation","getTheme","unzippedStates","statePath","themeId","getStateMachine","unzipDotLottieFile","unzippedStateMachine","document2","canvas","forwardPropsList","forwardedProps","href","lang","onScroll","onWheel","pointerEvents","hrefAttrs","onLayout","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","hasTextAncestor","TextAncestorContext","useElementLayout","useResponderEvents","component","inline","pick","pickProps","classList","download","rel","css","view","border","boxSizing","flexBasis","flexDirection","flexShrink","minHeight","minWidth","toInteger","dirtyNumber","number","isNaN","ceil","left","right","top","bottom","absoluteFill","ReactNativePropRegistry","register","style1","style2","flatten","flattenStyle","hairlineWidth","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isNumber","isDate","arr","arrLen","extend","valueOf","createUTC","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","flags","parsedParts","isNowValid","_d","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","len","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","argLen","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","func","localeData","removeFormattingTokens","match","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","h","hh","dd","ww","M","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","D","dates","date","days","day","weekdays","weekday","E","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","hours","hour","ms","milliseconds","millisecond","minutes","minute","months","month","Q","quarters","quarter","seconds","second","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","week","isoweeks","isoweek","years","year","normalizeUnits","units","toLowerCase","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","getPrioritizedUnits","unitsObj","unit","priority","sort","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","parseInt","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","isUTC","getUTCMilliseconds","getMilliseconds","getUTCSeconds","getSeconds","getUTCMinutes","getMinutes","getUTCHours","getHours","getUTCDate","getDate","getUTCDay","getDay","getUTCMonth","getMonth","getUTCFullYear","getFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","stringGet","stringSet","prioritized","prioritizedLen","daysInMonth","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","setUTCMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","createDate","createUTCDate","UTC","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","values","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","temp","weekdayOverflow","curWeek","createLocal","ISO_8601","RFC_2822","skipped","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","preparse","configFromInput","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","inspect","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","appName","logger","firebase_","isDeleted_","name_","automaticDataCollectionEnabled_","automaticDataCollectionEnabled","options_","container","_addComponent","INTERNAL","components","checkDestroyed_","removeApp","all","getProviders","provider","_getService","instanceIdentifier","getProvider","isInitialized","getComponent","instantiationMode","initialize","getImmediate","identifier","_removeServiceInstance","clearInstance","addComponent","debug","_addOrOverwriteComponent","addOrOverwriteComponent","ERROR_FACTORY","FirebaseAppImpl","log","createFirebaseNamespace","firebaseAppImpl","apps","initializeApp","rawConfig","DEFAULT_ENTRY_NAME","app","registerVersion","libraryKeyOrName","variant","library","PLATFORM_LOG_STRING","libraryMismatch","versionMismatch","warning","registerComponent","setLogLevel","onLog","logCallback","useAsService","componentName","serviceNamespace","appArg","serviceProps","multipleInstances","createFirebaseNamespaceCore","extendNamespace","ErrorFactory","getPlatformInfoString","isVersionServiceProvider","logString","firebaseNamespace","PlatformLoggerService","getValueInPixels","paddingProps","paddingKeys","sizes","inset","manualInset","appliedInset","originalValue","isNil","endsWith","baseFontSize","calculatePaddingTop","safeAreaProps","insets","safeArea","safeAreaTop","safeAreaY","topSafeAreaProps","themeTools","orderedExtractInObject","topSafeAreaArray","getRelatedPaddingProps","calculatePaddingBottom","safeAreaBottom","bottomSafeAreaProps","bottomSafeAreaArray","calculatePaddingLeft","safeAreaLeft","safeAreaX","leftSafeAreaProps","leftSafeAreaArray","calculatePaddingRight","safeAreaRight","rightSafeAreaProps","rightSafeAreaArray","relatedKeys","useSafeArea","useSafeAreaInsets","useTheme","sansPaddingProps","sansSafeAreaProps","getSortedProps","calcualtedPaddingProps","omitUndefined","pt","pb","pl","pr","calculatePaddingProps","StyledBox","makeStyledComponent","MemoizedGradient","Box","theme","_text","resolvedProps","usePropsResolution","Gradient","useNativeBaseConfig","dependencies","bg","linearGradient","background","bgColor","lgrad","colors","getColor","startObj","endObj","backgroundColorProp","locations","wrapStringChild","memo","forwardRef","createAction","createReducer","createSyncAction","_createSyncAction2","_interopRequireDefault","_createReducer2","_createAction2","DEBUG_BUILD","ExecutionEnvironment","canUseWorkers","canUseEventListeners","attachEvent","canUseViewport","screen","isInWorker","State","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END","nativeEventEmitter","NativeAnimatedModule","OS","RN$Bridgeless","NativeAnimatedTurboModule","NativeAnimatedNonTurboModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","queueOperations","API","getValue","tag","saveValueCallback","invariant","setWaitingForIdentifier","unsetWaitingForIdentifier","disableQueue","startOperationBatch","finishOperationBatch","queueOperation","createAnimatedNode","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","nodeTag","endCallback","stopAnimation","setAnimatedNodeValue","setAnimatedNodeOffset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","connectAnimatedNodeToView","viewTag","disconnectAnimatedNodeFromView","restoreDefaultValues","dropAnimatedNode","addAnimatedEventToView","eventName","eventMapping","removeAnimatedEventFromView","animatedNodeTag","SUPPORTED_STYLES","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","elevation","shadowOpacity","shadowRadius","translateY","SUPPORTED_TRANSFORMS","rotate","rotateX","rotateY","rotateZ","perspective","SUPPORTED_INTERPOLATION_PARAMS","inputRange","outputRange","extrapolate","extrapolateRight","extrapolateLeft","generateNewAnimationId","_warnedMissingNativeAnimated","shouldUseNativeDriver","useNativeDriver","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","param","validateStyles","validateTransform","configs","validateInterpolation","_key2","generateNewNodeTag","assertNativeAnimatedModule","transformDataType","PI","isGlobalObj","GLOBAL_OBJ","globalThis","getGlobalObject","getGlobalSingleton","creator","gbl","__SENTRY__","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","wrappedFuncs","wrappedLevels","level","originalConsoleMethod","enable","disable","isEnabled","NativeAnimatedAPI","NativeAnimatedHelper","_uniqueId","AnimatedNode","_proto","_listeners","__attach","__detach","__isNative","__nativeTag","__getValue","__getAnimatedValue","__addChild","__removeChild","__getChildren","__makeNative","hasListeners","_startListeningToNativeValueUpdates","addListener","removeListener","_stopListeningForNativeValueUpdates","removeAllListeners","_this","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","__getNativeTag","_onAnimatedValueUpdateReceived","__callListeners","_this$__nativeTag","nativeTag","__getNativeConfig","WINDOW","API_VERSION","DEFAULT_BREADCRUMBS","client","scope","isolationScope","assignedScope","assignedIsolationScope","_version","setClient","_stack","bindClient","_isolationScope","isOlderThan","getStackTop","setupIntegrations","pushScope","getScope","getStack","getClient","popScope","withScope","maybePromiseResult","is","getIsolationScope","captureException","exception","hint","eventId","_lastEventId","event_id","syntheticException","originalException","captureMessage","captureEvent","lastEventId","addBreadcrumb","breadcrumb","beforeBreadcrumb","maxBreadcrumbs","getOptions","mergedBreadcrumb","timestamp","finalBreadcrumb","emit","setUser","user","setTags","tags","setExtras","extras","setTag","setExtra","extra","setContext","configureScope","run","oldHub","makeMain","getIntegration","integration","_oO","startTransaction","customSamplingContext","_callExtensionMethod","traceHeaders","captureSession","endSession","_sendSessionUpdate","session","getSession","setSession","startSession","release","environment","getUser","currentSession","status","shouldSendDefaultPii","sendDefaultPii","sentry","getMainCarrier","extensions","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","acs","getGlobalHub","hasHubOnCarrier","runWithAsyncContext","carrier","TRACE_FLAG_NONE","TRACE_FLAG_SAMPLED","spanToTraceContext","span","spanId","span_id","traceId","trace_id","spanContext","parent_span_id","spanToJSON","spanToTraceHeader","sampled","spanIsSampled","spanTimeInputToSeconds","ensureTimestampInSeconds","getSpanJSON","spanIsSpanClass","traceFlags","objectToString","isError","wat","isInstanceOf","isBuiltin","className","isErrorEvent","isDOMError","isDOMException","isParameterizedString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","isSyntheticEvent","_e","isVueViewModel","__isVue","_isVue","stylingProps","layout","flexbox","outline","omitBy","getRandomString","characters","orderedPick","omit","extractInObject","getColorFormColorScheme","colorScheme","simpleColorScheme","getColorScheme","customColorScheme","inValidBreakpointProps","hasValidBreakpointFormat","breaks","themeBreakpoints","themeBreakPointKeys","findLastValidBreakpoint","currentBreakpoint","valArray","bPoint","getClosestBreakpoint","point","dimValues","breakpointsObj","breakpoints","convertAbsoluteToRem","px","convertRemToAbsolute","rem","convertToDp","isAbsolute","isPx","isRem","isEm","finalDpValue","platformSpecificSpaceUnits","newTheme","isWeb","newScale","scaleKey","isResponsiveAnyProp","select","web","handlers","instrumented","addHandler","maybeInstrument","instrumentFn","triggerHandlers","typeHandlers","replacementFactory","original","wrapped","markFunctionWrapped","addNonEnumerableProperty","o_O","getOriginalFunction","__sentry_original__","urlEncode","_setPrototypeOf","AnimatedValue","_AnimatedWithChildren","subClass","superClass","_startingValue","_value","_animation","_this2","stop","_updateValue","setOffset","flattenOffset","extractOffset","stopTracking","resetAnimation","interpolate","AnimatedInterpolation","animate","_this3","handle","__isInteraction","InteractionManager","createInteractionHandle","previousAnimation","clearInteractionHandle","_tracking","tracking","flush","rootNode","animatedStyles","findAnimatedStyles","animatedStyle","_flush","AnimatedWithChildren","uuid4","crypto","msCrypto","getRandomByte","randomUUID","getRandomValues","typedArray","getFirstException","getEventDescription","firstException","accessibilityComponent","AccessibilityUtil","propsToAccessibilityComponent","Component","domProps","createDOMProps","instanceFactory","onInstanceCreated","setInstantiationMode","setMultipleInstances","setServiceProps","setInstanceCreatedCallback","instances","instancesDeferred","instancesOptions","onInitCallbacks","normalizedIdentifier","normalizeInstanceIdentifier","deferred","shouldAutoInitialize","instance","getOrInitializeService","setComponent","isComponentEager","instanceDeferred","services","_delete","isComponentSet","onInit","existingCallbacks","existingInstance","invokeOnInitCallbacks","providers","Hub","HASH_UNDEFINED","INFINITY","funcTag","genTag","symbolTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","freeGlobal","freeSelf","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","IE_PROTO","funcToString","reIsNative","splice","getNative","nativeCreate","symbolProto","symbolToString","Hash","entry","ListCache","MapCache","assocIndexOf","baseGet","isSymbol","isKey","stringToPath","toKey","baseIsNative","isHostObject","toSource","getMapData","__data__","isKeyable","memoize","baseToString","quote","resolver","memoized","cache","Cache","isObjectLike","defaultProps","dataSet","nativeID","suppressHydrationWarning","accessibilityProps","accessibilityActiveDescendant","accessibilityAtomic","accessibilityAutoComplete","accessibilityBusy","accessibilityChecked","accessibilityColumnCount","accessibilityColumnIndex","accessibilityColumnSpan","accessibilityControls","accessibilityCurrent","accessibilityDescribedBy","accessibilityDetails","accessibilityErrorMessage","accessibilityExpanded","accessibilityFlowTo","accessibilityHasPopup","accessibilityHidden","accessibilityInvalid","accessibilityKeyShortcuts","accessibilityLabelledBy","accessibilityLevel","accessibilityLiveRegion","accessibilityModal","accessibilityMultiline","accessibilityMultiSelectable","accessibilityOrientation","accessibilityOwns","accessibilityPlaceholder","accessibilityPosInSet","accessibilityPressed","accessibilityReadOnly","accessibilityRequired","accessibilityRoleDescription","accessibilityRowCount","accessibilityRowIndex","accessibilityRowSpan","accessibilitySelected","accessibilitySetSize","accessibilitySort","accessibilityValueMax","accessibilityValueMin","accessibilityValueNow","accessibilityValueText","accessible","accessibilityState","clickProps","onClick","onClickCapture","onContextMenu","focusProps","onBlur","onFocus","keyboardProps","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","styleProps","_objectSpread2","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_s","_arr","_n","minLen","_arrayLikeToArray","createCommonjsModule","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","resetWarningCache","factoryWithThrowingShims","shim","propName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","bool","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","propTypes","usePrevious","isUnknownObject","isPromise","isStripe","elements","createToken","createPaymentMethod","confirmCardPayment","PLAIN_OBJECT_STR","isEqual","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","pred","every","extractAllowedOptionsUpdates","prevOptions","immutableKeys","reduce","newOptions","isUpdated","INVALID_STRIPE_ERROR","validateStripe","maybeStripe","parseStripeProp","stripePromise","stripe","ElementsContext","parseElementsContext","ctx","useCase","CartElementContext","parseCartElementContext","Elements","rawStripeProp","parsed","_React$useState2","cart","setCart","_React$useState4","cartState","setCartState","_React$useState6","isMounted","safeSetContext","prevStripe","updates","anyStripe","_registerWrapper","registerAppInfo","useElementsContextWithUseCase","useCaseMessage","useCartElementContextWithUseCase","useElements","useStripe","useCartElement","useCartElementState","ElementsConsumer","_ref2","useAttachEvent","cbDefined","cbRef","decoratedCb","on","capitalized","createElementComponent","isServer","readyCallback","_ref$options","onReady","onEscape","onLoadError","onLoaderStart","onNetworksChange","onCheckout","onLineItemClick","onConfirm","onCancel","onShippingAddressChange","onShippingRateChange","setElement","elementRef","domNode","_useCartElementContex","newElement","mount","destroy","__elementType","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentElement","PayButtonElement","PaymentRequestButtonElement","LinkAuthenticationElement","AddressElement","ShippingAddressElement","CartElement","PaymentMethodMessagingElement","AffirmMessageElement","AfterpayClearpayMessageElement","Comp","restProps","useStyledSystemPropsResolver","checkDCE","dangerousStyleValue","isCustomProperty","isUnitlessNumber","setValueForStyles","styleName","styleValue","setProperty","getRect","_getBoundingClientRec","getBoundingClientRect","_measureLayout","relativeToNativeNode","relativeNode","relativeRect","_getRect","focusableElements","A","INPUT","SELECT","TEXTAREA","blur","nodeName","getAttribute","setAttribute","measure","measureInWindow","_getRect2","measureLayout","onFail","onSuccess","updateView","setLayoutAnimationEnabledExperimental","S","previousValue","sequenceNumberHandler","writeSequenceNumber","N","OK","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","UNAVAILABLE","DATA_LOSS","logLevel","C","DEBUG","ERROR","R","WARN","O","F","V","U","B","nanoseconds","fromMillis","fromDate","toMillis","_compareTo","padStart","K","fromTimestamp","compareTo","toMicroseconds","toTimestamp","G","segments","comparator","construct","popFirst","popLast","firstSegment","lastSegment","isPrefixOf","isImmediateParentOf","H","canonicalString","fromString","emptyPath","Y","$","isValidIdentifier","isKeyField","keyField","fromServerFormat","X","fields","covers","J","binaryString","fromBase64String","fromUint8Array","toBase64","toUint8Array","approximateByteSize","EMPTY_BYTE_STRING","Z","tt","nanos","rt","mapValue","__type__","stringValue","it","__previous_value__","ot","__local_write_time__","timestampValue","ut","at","isInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","ct","fromPath","fromName","hasCollectionId","isDocumentKey","fromSegments","ht","ft","booleanValue","bytesValue","referenceValue","geoPointValue","latitude","longitude","integerValue","doubleValue","arrayValue","find","yt","vt","database","gt","wt","It","Tt","_t","Et","getFieldsMap","setAll","applyChanges","St","Nt","documentType","documentState","newInvalidDocument","newFoundDocument","newNoDocument","newUnknownDocument","convertToFoundDocument","convertToNoDocument","convertToUnknownDocument","setHasCommittedMutations","setHasLocalMutations","hasLocalMutations","hasCommittedMutations","isValidDocument","isFoundDocument","isNoDocument","isUnknownDocument","Dt","collectionGroup","orderBy","startAt","endAt","At","kt","jt","Ct","Gt","zt","xt","Rt","Lt","Mt","Vt","qt","Ut","Ot","Pt","Ft","nullValue","Bt","before","Kt","Qt","Wt","explicitOrderBy","limitType","T","Ht","Yt","$t","Xt","Jt","Zt","te","ee","ne","ie","oe","se","ue","ae","ce","he","I","fe","de","pe","me","ge","we","be","Ie","ve","ye","Te","Ee","Se","Ne","transformResults","De","updateTime","exists","none","Ae","ke","Ce","Pe","Ve","fieldTransforms","Fe","precondition","Me","xe","qe","Oe","Re","Le","fieldMask","Ue","Be","je","Ke","Ge","count","Qe","We","Ye","EMPTY","insert","copy","BLACK","minKey","maxKey","inorderTraversal","reverseTraversal","getIterator","He","getIteratorFrom","getReverseIterator","getReverseIteratorFrom","isReverse","nodeStack","getNext","hasNext","peek","RED","fixUp","removeMin","isRed","moveRedLeft","rotateRight","moveRedRight","rotateLeft","colorFlip","checkMaxDepth","$e","forEachInRange","forEachWhile","firstAfterOrEqual","Xe","unionWith","iter","Je","Ze","tn","en","nn","rn","sn","un","an","cn","snapshotVersion","targetChanges","targetMismatches","documentUpdates","resolvedLimboDocuments","createSynthesizedRemoteEventForCurrentChange","hn","createSynthesizedTargetChangeForCurrentChange","resumeToken","addedDocuments","modifiedDocuments","removedDocuments","removedTargetIds","ln","targetId","dn","targetIds","cause","pn","mn","yn","vn","forEachTarget","removeTarget","purpose","getRemoteKeysForTarget","gn","asc","wn","in","bn","databaseId","In","Tn","En","Sn","Nn","$n","Dn","An","Rn","kn","Cn","xn","Ln","On","Pn","updateMask","Yn","verify","updateTransforms","fieldPath","setToServerValue","appendMissingElements","removeAllFromArray","increment","isNone","currentDocument","Fn","fieldPaths","Mn","documents","Vn","structuredQuery","collectionId","allDescendants","unaryFilter","Qn","fieldFilter","Gn","compositeFilter","where","Kn","Bn","qn","Un","zn","jn","Hn","Wn","Xn","Zn","Jn","tr","er","nr","ownerId","allowTabSynchronization","leaseTimestampMs","rr","userId","lastAcknowledgedBatchId","lastStreamToken","keyPath","ir","batchId","localWriteTimeMs","baseMutations","mutations","userMutationsIndex","userMutationsKeyPath","or","prefixForUser","prefixForPath","PLACEHOLDER","sr","readTime","ur","unknownDocument","noDocument","parentPath","readTimeIndex","readTimeIndexPath","collectionReadTimeIndex","collectionReadTimeIndexPath","cr","byteSize","hr","canonicalId","lastListenSequenceNumber","lastLimboFreeSnapshotVersion","query","queryTargetsIndexName","queryTargetsKeyPath","fr","sequenceNumber","documentTargetsIndex","documentTargetsKeyPath","lr","highestTargetId","highestListenSequenceNumber","lastRemoteSnapshotVersion","targetCount","dr","clientId","updateTimeMs","networkEnabled","inForeground","yr","bundleId","createTime","vr","bundledQuery","mr","gr","wr","onCommittedListeners","addOnCommittedListener","raiseOnCommittedEvent","br","Ir","nextCallback","catchCallback","isDone","callbackAttached","wrapFailure","wrapSuccess","toPromise","wrapUserFunction","waitFor","Tr","transaction","aborted","oncomplete","onabort","Sr","Cr","abort","objectStore","Dr","_r","Ar","db","onblocked","oldVersion","onversionchange","runTransaction","Er","Nr","put","primaryKey","continue","reverse","openKeyCursor","openCursor","kr","xr","currentSequenceNumber","Rr","Lr","localWriteTime","applyToRemoteDocument","mutationResults","applyToLocalView","applyToLocalDocumentSet","Or","commitVersion","docVersions","Pr","withSequenceNumber","withResumeToken","withLastLimboFreeSnapshotVersion","Fr","Mr","jr","Vr","qr","Br","Ur","Kr","Gr","Qr","zr","Wr","getBundleMetadata","Hr","saveBundleMetadata","getNamedQuery","Yr","saveNamedQuery","$r","Xr","addToCollectionParentIndex","getCollectionParents","getEntries","Jr","Zr","IDBKeyRange","bound","ti","didRun","sequenceNumbersCollected","targetsRemoved","documentsRemoved","ei","cacheSizeCollectionThreshold","percentileToCollect","maximumSequenceNumbersToCollect","withCacheSize","DEFAULT_COLLECTION_PERCENTILE","DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT","ni","ri","DEFAULT","DISABLED","referenceDelegate","isAuthenticated","checkEmpty","NEGATIVE_INFINITY","POSITIVE_INFINITY","si","addMutationBatch","ui","lookupMutationBatch","getNextMutationBatchAfterBatchId","lowerBound","getHighestUnacknowledgedBatchId","upperBound","getAllMutationBatches","getAllMutationBatchesAffectingDocumentKey","getAllMutationBatchesAffectingDocumentKeys","getAllMutationBatchesAffectingQuery","removeMutationBatch","markPotentiallyOrphaned","performConsistencyCheck","containsKey","oi","ai","ci","hi","allocateTargetId","getLastRemoteSnapshotVersion","getHighestSequenceNumber","setTargetsMetadata","addTargetData","updateTargetData","removeTargetData","removeMatchingKeysForTargetId","fi","removeTargets","li","getTargetCount","getTargetData","addMatchingKeys","di","addReference","removeMatchingKeys","removeReference","getMatchingKeysForTargetId","pi","yi","vi","buffer","mi","garbageCollector","asyncQueue","enqueueAfterDelay","collectGarbage","gi","calculateTargetCount","nthSequenceNumber","removeOrphanedDocuments","collect","getCacheSize","wi","getTargetCache","bi","getRemoteDocumentCache","newChangeBuffer","getEntry","removeEntry","updateLimboDocument","getSize","Ii","mapKeyFn","equalsFn","inner","Ti","changes","changesApplied","getReadTime","addEntry","assertNotApplied","getFromCache","getAllFromCache","Ni","Di","updateMetadata","getMetadata","getDocumentsMatchingQuery","Ei","trackRemovals","Si","Ai","createObjectStore","autoIncrement","createIndex","unique","ki","deleteObjectStore","objectStoreNames","Ci","xi","persistenceKey","isPrimary","localStorage","started","setDatabaseDeletedListener","newVersion","setNetworkEnabled","enqueueAndForget","Li","enqueueRetryable","Ri","removeItem","shutdown","getMutationQueue","getIndexManager","getBundleCache","visibilityState","appVersion","enterRestrictedMode","getItem","setItem","Oi","isDefaultDatabase","Pi","Fi","Mi","fromCache","docChanges","doc","Vi","hasPendingWrites","qi","persistence","Ui","Bi","removedBatchIds","addedBatchIds","ji","Ki","Gi","Qi","zi","Wi","Hi","Yi","$i","Xi","Ji","Zi","eo","ro","ts","ns","io","rs","os","cs","us","hs","oo","ls","docs","fs","so","uo","ds","ys","ao","gs","ps","Es","Ts","Is","ho","As","Rs","vs","Ps","fo","lo","po","yo","GOOGLE_CREDENTIALS","FIRST_PARTY","MOCK_USER","vo","Vs","Ss","mo","go","activeTargetIds","wo","onlineState","bo","Ds","Cs","Io","Ns","syncEngine","onlineStateHandler","xs","Fs","$s","storage","currentUser","Os","Ms","Ls","Bs","qs","Us","Ks","Qs","js","Ws","getAllActiveQueryTargets","Gs","isActiveQueryTarget","addPendingMutation","zs","updateMutationState","Hs","addLocalQueryTarget","Js","removeLocalQueryTarget","isLocalQueryTarget","clearQueryState","updateQueryState","Ys","handleUserChange","setOnlineState","Xs","notifyBundleLoaded","Zs","storageArea","To","_o","Eo","So","BatchGetDocuments","Commit","RunQuery","No","onMessage","send","Do","forceLongPolling","autoDetectLongPolling","useFetchStreams","listenOnce","COMPLETE","getLastErrorCode","NO_ERROR","getResponseJson","TIMEOUT","HTTP_ERROR","getStatus","getResponseText","httpSessionIdParam","initMessageHeaders","messageUrlParams","sendRawJson","supportsCrossDomainXhr","internalChannelParams","forwardChannelRequestTimeoutMs","detectBufferingProxy","xmlHttpFactory","httpHeadersOverwriteParam","createWebChannel","listen","EventType","OPEN","CLOSE","MESSAGE","STAT_EVENT","stat","PROXY","NOPROXY","databaseInfo","ssl","host","appId","authHeaders","Ao","ko","Co","xo","timerId","skipDelay","Ro","stream","auth","invalidateToken","getToken","Lo","targetChange","targetChangeType","documentChange","documentDelete","documentRemove","addTarget","labels","Oo","streamToken","writeResults","commitTime","writes","Po","credentials","terminate","Fo","Mo","localStore","datastore","remoteSyncer","zo","qo","Vo","Uo","Qo","Go","jo","Bo","Ko","Wo","Ho","Yo","$o","rejectListen","Xo","applyRemoteEvent","Jo","Zo","applySuccessfulWrite","rejectFailedWrite","targetTimeMs","removalCallback","createAndSchedule","timerHandle","handleDelayElapsed","clearTimeout","keyedMap","sortedSet","emptySet","oldDocs","mutatedKeys","syncStateChanged","excludesMetadataChanges","fromInitialDocuments","queries","onListen","onUnlisten","includeMetadataChanges","byteLength","bytesLoaded","documentsLoaded","namedQuery","documentMetadata","taskState","totalDocuments","totalBytes","snapshot","remoteStore","eventManager","sharedClientState","maxConcurrentLimboResolutions","uu","isPrimaryClient","au","tu","eu","nu","ru","iu","ou","cu","_completeWith","_updateProgress","_failWith","hu","synchronizeTabs","gcScheduler","initialUser","fu","cacheSizeBytes","forceOwnership","lu","du","createDatastore","createRemoteStore","createEventManager","createSyncEngine","handleCredentialChange","pu","read","releaseLock","closed","yu","muted","vu","findIndex","tc","mu","readVersions","committed","lastWriteError","writtenDocs","lookup","ensureCommitNotCalled","found","missing","recordVersion","write","toMutation","preconditionForUpdate","commit","gu","updateFunction","nc","ic","rc","wu","credentialListener","setChangeListener","getConfiguration","setCredentialChangeListener","verifyNotTerminated","isShuttingDown","enqueueAndForgetEvenWhileRestricted","onlineComponents","offlineComponents","removeChangeListener","bu","verifyOperationInProgress","Iu","Tu","_u","Eu","Su","Nu","Du","Au","ku","Cu","xu","Ru","Lu","Ou","Authorization","Pu","changeListener","Fu","Mu","oc","cc","forceRefresh","uc","ac","addAuthTokenListener","accessToken","removeAuthTokenListener","getUid","Vu","hc","lc","fc","getAuthHeaderValueForFirstParty","qu","Uu","Bu","mergeFields","ju","Ku","Gu","Qu","zu","Wu","Hu","ignoreUndefinedProperties","experimentalForceLongPolling","experimentalAutoDetectLongPolling","Yu","_persistenceKey","_settings","_settingsFrozen","_databaseId","_credentials","_app","_terminateTask","_setSettings","sessionIndex","iamToken","_getSettings","_freezeSettings","_terminate","settings","$u","converter","firestore","Ju","withConverter","Xu","_query","_path","Zu","ta","ea","na","ra","dc","wc","_c","mc","yc","gc","Ec","Tc","Ic","enqueue","Ac","Rc","bc","vc","Pc","Vc","Sc","Dc","ia","oa","_progressObserver","_taskCompletionResolver","_lastProgress","onProgress","sa","_queue","_firestoreClient","ca","aa","ha","DOMException","fa","_initialized","_terminated","la","_internalPath","da","_byteString","pa","_methodName","ya","_lat","_long","va","ma","ga","wa","ba","Cc","Nc","xc","kc","Fc","$c","Oc","Mc","Lc","Ua","methodName","Bc","qc","Ia","Uc","Ta","Fa","Oa","Ma","Ba","Ea","_toFieldTransform","Sa","Na","Da","Kc","La","Aa","ka","Qc","Ca","qa","xa","Ra","Pa","getPrototypeOf","Va","search","ja","_firestore","_userDataWriter","_document","_converter","Ka","fromFirestore","convertValue","Ga","Qa","za","_firestoreImpl","Wa","serverTimestamps","Ha","_snapshot","_cachedChanges","_cachedChangesIncludeMetadataChanges","oldIndex","newIndex","Ya","$a","Xa","Ja","Za","_apply","jc","Wc","Gc","zc","Hc","Jc","Yc","Xc","convertTimestamp","convertServerTimestamp","convertBytes","convertReference","convertGeoPoint","convertArray","convertObject","convertDocumentKey","toFirestore","_commitHandler","_mutations","_committed","_dataReader","_verifyNotCommitted","pc","_transaction","enableIndexedDbPersistence","enableMultiTabIndexedDbPersistence","clearIndexedDbPersistence","Zc","useEmulator","mockUserToken","enableNetwork","disableNetwork","enablePersistence","experimentalForceOwningTab","clearPersistence","waitForPendingWrites","onSnapshotsInSync","collection","loadBundle","WeakMap","onSnapshot","limitToLast","startAfter","endBefore","documentId","serverTimestamp","arrayUnion","arrayRemove","ArrayBuffer","ReadableStream","getReader","TextEncoder","encode","_createForOfIteratorHelperLoose","allowArrayLike","_AnimatedNode","_children","_step","_iterator","_step2","_iterator2","nanoid","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_PROFILE_ID","SPECIFICITY_1000","SPECIFICITY_10","specificityPrecedence","INITIAL_PROP_SPECIFICITY","pseudoPropsMap","_web","dependentOn","_ios","_android","_light","_dark","_indeterminate","respondTo","_checked","_readOnly","_invalid","_focus","_focusVisible","_hover","_pressed","_disabled","_loading","_important","compareSpecificity","exisiting","upcoming","ignorebaseTheme","shouldResolvePseudoProp","colormode","simplifyProps","currentSpecificity","previouslyFlattenProps","cascadePseudoProps","flattenProps","specificityMap","mergePsuedoProps","propertySpecity","SPREAD_PROP_SPECIFICITY_ORDER","FINAL_SPREAD_PROPS","MARGIN_MAP","mx","my","ml","marginTop","marginBottom","marginLeft","marginRight","PADDING_MAP","py","paddingTop","paddingBottom","paddingLeft","paddingRight","SPREAD_PROP_SPECIFICITY_MAP","incomingProps","useNativeBase","componentTheme","usePropsResolutionWithComponentTheme","INTERNAL_notResolveThemeAndPseudoProps","modifiedPropsForSSR","modified","setModified","responsivePropsExists","isSSR","modifiedProps","useResponsiveSSRProps","ignoredProps","cleanIncomingProps","ignoreProps","disableCSSMediaQueries","ResponsiveQueryContext","resolveResponsively","colorModeProps","useColorMode","extendedTheme","extendTheme","resolveComponentTheme","themeType","providedTheme","incomingWithDefaultProps","callPropsFlattener","latestSpecifictyMap","specificity","currentSpecificityMap","propsFlattener","colorMode","combinedBaseStyle","combinedVariantStyle","combinedSizeStyle","extededComponentTheme","baseStyle","variants","responsiveProps","propsName","responsivelyResolvedProps","newProps","rawValue","resolveValueWithBreakpoint","useBreakpointResolvedProps","flattenBaseStyle","baseSpecificityMap","flattenVariantStyle","variantSpecificityMap","flattenSizeStyle","sizeSpecificityMap","defaultStyles","resolvePseudoProps","flatPseudoProp","baseStylePseudoProp","defaultSpecificity","incomingSpecifity","flattenedDefaultProps","newProp","propsSpreader","createInterpolation","colorToRgba","stringShapeRegex","checkPattern","outputRanges","interpolations","shouldRound","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","easing","findRange","inputMin","inputMax","outputMin","outputMax","Infinity","normalizedColor","normalizeColor","_parent","_interpolation","parentValue","__transformDataType","__createInterpolation","FocusScope","contain","TransitionIOSSpec","stiffness","damping","mass","overshootClamping","restDisplacementThreshold","restSpeedThreshold","FadeInFromBottomAndroidSpec","Easing","poly","FadeOutToBottomAndroidSpec","RevealFromBottomAndroidSpec","bezier","ScaleFromCenterAndroidSpec","BottomSheetSlideInSpec","cos","BottomSheetSlideOutSpec","goBack","navigate","setParams","BaseRouter","getStateForAction","routes","nextState","route","routeNames","stale","shouldActionChangeFocus","StackActions","popToTop","StackRouter","router","getInitialState","routeParamList","initialRouteName","getRehydratedState","partialState","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getId","routeGetIdList","actionCreators","NOT_INITIALIZED_ERROR","MULTIPLE_NAVIGATOR_ERROR","SingleNavigatorContext","EnsureSingleNavigator","navigatorKeyRef","currentKey","unregister","findFocusedRoute","NavigationBuilderContext","onDispatchAction","onOptionsChange","NavigationContainerRefContext","NavigationContext","NavigationRouteContext","MISSING_CONTEXT_ERROR","isDefault","getKey","setKey","setState","getIsInitial","UnhandledActionContext","useChildListeners","removed","useEventEmitter","listenRef","canPreventDefault","defaultPrevented","preventDefault","useKeyedChildListeners","keyedListeners","beforeRemove","addKeyedListener","useOptionsGetters","navigation","optionsRef","optionsGettersFromChildRef","addOptionsGetter","parentAddOptionsGetter","NavigationStateContext","optionsChangeListener","isFocused","hasChildren","getOptionsFromListener","getCurrentOptions","optionsFromListener","ScheduleUpdateContext","scheduleUpdate","flushUpdates","UNINTIALIZED_STATE","getPartialState","BaseNavigationContainer","initialState","onUnhandledAction","independent","stateRef","isSchedulingRef","isMountedRef","trackingState","setTrackingState","useSyncState","isFirstMountRef","canGoBack","handled","resetRoot","CommonActions","getRootState","getCurrentRoute","emitter","acc","getParent","isReady","setOptions","stackRef","lastEmittedOptionsRef","builderContext","scheduleContext","isInitialRef","onStateChangeRef","hydratedState","defaultOnUnhandledAction","Group","Screen","createNavigatorFactory","Navigator","CurrentRenderContext","getActionFromState","normalizedConfig","createNormalizedConfigItem","screens","createNormalizedConfigs","fromEntries","formatToList","validatePathConfig","validKeys","invalidKeys","getActiveRoute","getPathFromState","allParams","focusedParams","focusedRoute","currentOptions","nestedRouteNames","currentParams","getParamName","nextRoute","nestedConfig","queryString","joinPaths","paths","parentPattern","createConfigItem","getStateFromPath","initialRoutes","parentScreens","remaining","segment","createNestedStateObject","localeCompare","aParts","bParts","aWildCard","bWildCard","remainingPath","matchAgainstConfigs","matchedParams","routeConfig","initials","escape","findInitialRoute","routeName","sameParents","createStateObject","initialRoute","flatConfig","nestedState","nestedStateIndex","parseQueryParams","findParseConfigForRoute","parseConfig","NavigationHelpersContext","PreventRemoveContext","transformPreventedRoutes","preventedRoutesMap","routeKey","preventRemove","PreventRemoveProvider","parentId","setPreventedRoutesMap","preventRemoveContextValue","setParentPrevented","setPreventRemove","useLatestCallback","prevPrevented","nextPrevented","isPrevented","preventedRoutes","useNavigation","isArrayEqual","NavigationContent","render","StaticContainer","prevProps","nextProps","prevPropKeys","nextPropKeys","SceneView","routeState","clearOptions","getCurrentState","currentRoute","setCurrentState","ScreenComponent","useDescriptors","screenOptions","defaultScreenOptions","onAction","onRouteFocus","navigations","actions","previous","thunk","withStack","helpers","useNavigationCache","useRouteCache","customOptions","curr","mergedOptions","VISITED_ROUTE_KEYS","shouldPreventRemove","beforeRemoveListeners","currentRoutes","nextRoutes","nextRouteKeys","removedRoutes","visitedRouteKeys","beforeRemoveAction","useOnAction","actionListeners","routerConfigOptions","onActionParent","onRouteFocusParent","addListenerParent","routerConfigOptionsRef","visitedNavigators","useOnPreventRemove","isValidKey","getRouteConfigsFromChildren","groupKey","groupOptions","navigationKey","useNavigationBuilder","createRouter","navigatorKey","useRegisterNavigator","screenListeners","routeConfigs","routeKeyList","initialParams","isStateValid","isStateInitialized","currentState","stateCleanedUp","cleanUpState","initializedState","isFirstStateInitialization","initialRouteParamList","initialParamsFromParams","previousRouteKeyListRef","previousRouteKeyList","isRecordEqual","previousNestedParamsRef","previousParams","updatedState","shouldUpdate","useScheduleUpdate","initializedStateRef","descriptors","lastFocusedKeyRef","currentFocusedKey","lastFocusedKey","useFocusEvents","childListeners","sourceRouteKey","useOnRouteFocus","navigatorId","parentNavigationHelpers","navigationHelpers","useNavigationHelpers","focusedListeners","useFocusedListenersChildrenAdapter","getStateListeners","childState","useOnGetState","useCurrentRender","renderRef","useComponent","useNavigationContainerRef","createNavigationContainerRef","mergeRefs","defaultConfig","strictMode","NativeBaseConfigProvider","commonjsGlobal","goog","Vb","documentMode","relatedTarget","screenY","screenX","clientY","clientX","pointerId","changedTouches","srcElement","fromElement","toElement","pageX","pageY","returnValue","src","capture","bb","ab","fb","gb","hb","ib","jb","kb","lb","nb","ob","detachEvent","qb","rb","sb","tb","Ab","ub","vb","class_2","wb","yb","zb","Db","Bb","Cb","Eb","Fb","Gb","Hb","Ib","_super","Jb","Kb","Lb","Mb","Pb","Rb","Sb","Tb","Ub","Wb","xb","Xb","Yb","Zb","$b","XMLHttpRequest","Nb","getResponseHeader","Ob","Qb","decodeURI","encodeURI","gd","hd","PerformanceNavigationTiming","performance","getEntriesByType","nextHopProtocol","jd","e_2","e_2_1","return","kd","ld","md","od","onload","ontimeout","pd","qd","rd","responseType","responseText","response","statusText","onreadystatechange","Headers","e_1","e_1_1","ud","sd","headers","fetch","Request","arrayBuffer","setRequestHeader","append","getAllResponseHeaders","vd","wd","xd","yd","zd","Cd","Dd","Ed","protocol","Ad","mozResponseArrayBuffer","Gd","Fd","Hd","Id","concurrentRequestLimit","fastHandshake","Jd","Kd","sendBeacon","Image","Ld","Md","Qd","Pd","Od","Rd","Nd","d_1","nd","ad","bd","hostname","port","Sd","Td","messageHeaders","clientProtocolHeaderRequired","messageContentType","Ud","__sm__","Vd","FormData","withCredentials","timeout","Bd","getLastError","createWebChannelTransport","getStatEventTarget","ErrorCode","Stat","FetchXmlHttpFactory","WebChannel","XhrIo","colorString","convert","_slice","skippedModels","hashedModelKeys","limiters","Color","valpha","newArr","zeroArray","alpha","hashedKeys","getset","channel","modifier","maxfn","places","rgb","percentString","percent","unitArray","unitObject","num","roundTo","roundToPlace","red","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","white","wblack","cyan","magenta","yellow","black","keyword","hex","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","isDark","isLight","negate","lighten","ratio","hsl","darken","saturate","desaturate","whiten","hwb","blacken","grayscale","fade","opaquer","degrees","mix","mixinColor","weight","color1","w1","w2","newAlpha","_class_extract_field_descriptor","privateMap","_class_private_field_init","privateCollection","_check_private_redeclaration","_class_private_field_set","_class_apply_descriptor_set","documentObject","webkitUserSelect","SVGElement","targetOldUserSelect","removeAttribute","continuePropagation","shouldStopPropagation","_class_apply_descriptor_get","originalEvent","currentTarget","onPressChange","onPressUp","isPressed","isPressedProp","preventFocusOnPress","shouldCancelOnPointerExit","allowTextSelectionOnPress","contextProps","setPressed","ignoreEmulatedMouseEvents","ignoreClickAfterPress","didFirePressStart","isTriggeringEvent","activePointerId","isOverTarget","triggerPressStart","triggerPressEnd","wasPressed","triggerPressUp","cancelOnPointerExit","pressProps","repeat","originalTarget","pressUp","stopPropagation","metaKeyEvents","stopPressStart","stopPressUp","stopPressEnd","events","PointerEvent","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onDragStart","touch","targetTouches","tagName","hasAttribute","role","HTMLInputElement","HTMLTextAreaElement","isContentEditable","rect","pointRect","offsetX","offsetY","radiusX","radiusY","HTMLButtonElement","isDefaultPrevented","isPropagationStopped","persist","eventPhase","timeStamp","disconnect","dispatchBlur","HTMLSelectElement","onBlurHandler","MutationObserver","relatedTargetEl","activeElement","FocusEvent","observe","attributes","attributeFilter","onFocusProp","onBlurProp","onFocusChange","onSyntheticFocus","Tab","Escape","modality","windowObject","loadListener","deps","isTextInput","IHTMLInputElement","IHTMLTextAreaElement","IHTMLElement","IKeyboardEvent","onBlurWithin","onFocusWithin","onFocusWithinChange","isFocusWithin","focusWithinProps","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","hoverProps","triggerHoverEnd","triggerHoverStart","onPointerEnter","onPointerLeave","useHover","onHoverIn","onHoverOut","useFocus","setFocused","useIsPressed","setIsPressed","pressableProps","StyledPressable","RNPressable","Pressable","isHoveredProp","isFocusedProp","isFocusVisible","isFocusVisibleProp","focusRingProps","useFocusRing","stateProps","composeEventHandlers","areaConversion","timeConversion","distanceConversion","altitudeKeys","latitudeKeys","longitudeKeys","MAXLON","MINLON","MAXLAT","MINLAT","earthRadius","sexagesimalPattern","km","cm","sm","m2","km2","ft2","yd2","in2","sqm","sqkm","sqft","sqyd","sqin","codepointLength","codeunitLength","reverseString","defaultOptions","getDefaultOptions","mapDomPropsToRN","attachEventHandlersOnRef","isRTL","I18nManager","getConstants","Svg","unstable_createElement","Path","multiply","Animated","conditional","main","fallback","forHorizontalIOS","inverted","layouts","cardStyle","overlayStyle","shadowStyle","forVerticalIOS","forModalPresentationIOS","hasNotchIos","isPad","isTV","isLandscape","topOffset","statusBarHeight","aspectRatio","isFirst","overlayOpacity","forFadeFromBottomAndroid","closing","forRevealFromBottomAndroid","containerStyle","forScaleFromCenterAndroid","forBottomSheetAndroid","forFadeFromCenter","forNoAnimation","forFade","leftButtonStyle","rightButtonStyle","titleStyle","backgroundStyle","forSlideLeft","forSlideRight","forSlideUp","STYLE_ELEMENT_ID","STYLE_GROUPS","classicReset","classic","atomic","custom","flex","overscrollBehavior","marginHorizontal","marginVertical","paddingHorizontal","paddingVertical","STYLE_SHORT_FORM_EXPANSIONS","MONOSPACE_FONT_STACK","SYSTEM_FONT_STACK","findNodeHandle","findDOMNode","dimensions","dimension","initialDimensions","_update","win","docEl","clientHeight","devicePixelRatio","clientWidth","_handler","useHoverWeb","Accordion","AccordionSummary","borderTopWidth","borderTopColor","_expanded","borderBottomColor","AccordionDetails","getBg","lightBg","darkBg","space","_icon","borderLeftWidth","borderLeftColor","transparentize","badgeSize","_badgeSize","randomColor","_image","alt","_alt","isVertical","_avatar","_hiddenAvatarPlaceholder","solid","subtle","spacing","wrap","Breadcrumb","BreadcrumbText","_current","BreadcrumbIcon","primary","outlineWidth","boxShadow","_spinner","ghost","link","textDecorationLine","unstyled","lg","shadow","outlineColor","outlineStyle","defaultIsChecked","thickness","Badge","centerContent","maxWidth","orientation","rounded","lineHeight","letterSpacing","Input","_input","placeholderTextColor","selectionColor","underlined","borderBottomWidth","filled","Tooltip","isUnderlined","_presenceTransition","transition","exit","_overlay","unmountOnExit","_backdrop","Modal","_backdropFade","exitDuration","entryDuration","_slide","overlay","_fade","contentSize","xl","full","closeOnOverlayClick","ModalContent","maxHeight","AlertDialog","AlertDialogContent","Popover","PopoverCloseButton","PopoverBody","PopoverContent","PopoverHeader","PopoverArrow","PopoverFooter","flexWrap","keepWithinRange","clampValueOnBlur","focusInputOnChange","getAriaValueText","NumberInputStepper","iconColor","_active","placeholder","manageFocus","_filledTrack","isIndeterminate","_statLabel","_statNumber","_statHelpText","_statGroup","onThumbColor","offThumbColor","offTrackColor","onTrackColor","activeColor","activeTabStyle","inactiveTabStyle","activeIconProps","inactiveIconProps","tabBarStyle","minH","minW","fontStyle","multiline","textAlignVertical","TextField","_errorMessageProps","_helperTextProps","Toast","ease","_title","_description","ScaleFade","Slide","placement","isOpen","SlideFade","TypeAheadSearchItem","SliderTrack","_pressable","SliderFilledTrack","isReversed","sliderTrackPosition","Slider","thumbSize","sliderTrackHeight","_interactionBox","FlatList","KeyboardAvoidingView","ScrollView","SectionList","StatusBar","AccordionItem","AccordionIcon","Actionsheet","animationPreset","ActionsheetContent","roundedTop","_dragIndicator","_dragIndicatorWrapper","collapsable","_dragIndicatorWrapperOffSet","ActionsheetItem","AlertIcon","AspectRatio","Avatar","AvatarBadge","AvatarGroup","ButtonGroup","Card","Center","Circle","Checkbox","CheckboxGroup","CircularProgress","Code","Container","Divider","Fade","FAB","placementProps","renderInPortal","Flex","Spacer","flexGrow","FormControl","FormControlLabel","_astrick","FormControlHelperText","FormControlErrorMessage","Heading","HStack","VStack","Icon","IconButton","InputLeftAddon","borderRightWidth","borderLeftRadius","InputRightAddon","borderRightRadius","Kbd","Link","List","ListItem","ListIcon","Menu","MenuGroup","MenuItem","ModalHeader","ModalBody","ModalFooter","ModalOverlay","ModalCloseButton","AlertDialogHeader","AlertDialogBody","AlertDialogFooter","AlertDialogOverlay","AlertDialogCloseButton","NumberInput","PinInput","PopoverComponentTheme","Progress","Radio","RadioGroup","Select","_customDropdownIconProps","_webSelect","appearance","WebkitAppearance","MozAppearance","_actionSheetBody","_actionSheetContent","optimized","SelectItem","SimpleGrid","Skeleton","startColor","endColor","fadeDuration","speed","SkeletonText","_line","lines","SliderThumb","scaleOnPressed","Spinner","Square","Stack","Switch","Tabs","Tag","AppBar","TextArea","Wrap","ZStack","useSystemColorMode","initialColorMode","accessibleColors","colorProps","borderRightColor","shadowColor","textDecorationColor","textShadowColor","normalizeValueWithProperty","unitlessNumbers","createIcon","initialProps","createdIcon","isArrayBuffer","isBuffer","isFormData","isArrayBufferView","isView","isFile","isBlob","isStream","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","deepMerge","makeSession","startingTime","sid","errors","ignoreDuration","sessionToJSON","updateSession","ipAddress","ip_address","did","email","username","abnormal_mechanism","doLeftAndRightSwapInRTL","isPreferredLanguageRTL","isRTLAllowed","isRTLForced","onDirectionChange","allowRTL","forceRTL","setPreferredLanguageRTL","swapLeftAndRightInRTL","ResponsiveQueryProvider","startOfUTCWeek","dirtyDate","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","RangeError","truncate","TextInputState","_currentlyFocusedNode","currentlyFocusedField","focusTextInput","textFieldNode","blurTextInput","getCurrentScope","refs","originalEventHandler","ourEventHandler","_constants","_getCoordinateKey","_toDecimal","_default","latKey","currentScope","startOfUTCISOWeek","light","dark","setAlpha","toRgbString","tone","toHexString","list","randomColorFromList","hash","randomColorFromString","installedIntegrations","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integrations","isDefaultInstance","finalIntegrations","integrationsByName","currentInstance","filterDuplicates","debugIndex","debugInstance","integrationIndex","setupIntegration","afterSetupIntegrations","afterAllSetup","_ease","NEWTON_ITERATIONS","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSampleStepSize","float32ArraySupported","Float32Array","aA1","aA2","calcBezier","aT","getSlope","mX1","mY1","mX2","mY2","sampleValues","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","_aGuessT","aGuessT","currentSlope","newtonRaphsonIterate","_aA","_aB","currentX","currentT","aA","aB","binarySubdivide","step0","step1","quad","cubic","sin","circle","sqrt","elastic","bounciness","back","bounce","_t2","t2","x1","y1","x2","y2","_bezier","inOut","Firestore","apiInstance","windowInstance","ERROR_DESCRIPTION_MAP","SERVICE_NAME","consoleLogger","INFO","settingsServiceInstance","PerformanceObserver","windowLocation","perfMetrics","onFirstInputDelay","getUrl","mark","measureName","mark1","mark2","getEntriesByName","getTimeOrigin","timeOrigin","timing","navigationStart","requiredApisAvailable","setupObserver","entryType","entryTypes","getInstance","Api","mergeStrings","part1","part2","sizeDiff","resultArray","iid","VisibilityState","instrumentationEnabled","dataCollectionEnabled","loggingEnabled","tracesSamplingRate","networkRequestsSamplingRate","logEndPointUrl","flTransportEndpointUrl","transportKey","logSource","logTraceAfterSampling","logNetworkAfterSampling","configTimeToLive","getAppId","firebaseAppInstance","getProjectId","getApiKey","apiKey","getFlTransportFullUrl","SettingsService","getIid","RESERVED_ATTRIBUTE_PREFIXES","ATTRIBUTE_FORMAT_REGEX","getServiceWorkerStatus","serviceWorker","controller","getVisibilityState","VISIBLE","HIDDEN","getEffectiveConnectionType","navigatorConnection","connection","effectiveType","REMOTE_CONFIG_SDK_VERSION","DEFAULT_CONFIGS","FIS_AUTH_PREFIX","getConfig","expiryString","CONFIG_EXPIRY_LOCAL_STORAGE_KEY","expiry","configStringified","CONFIG_LOCAL_STORAGE_KEY","getStoredConfig","processConfig","authTokenPromise","installationsService","authTokenVal","getAuthTokenPromise","authToken","configEndPoint","app_instance_id","app_instance_id_token","app_id","app_version","sdk_version","ok","json","COULD_NOT_GET_CONFIG_MSG","getRemoteConfig","storeConfig","fpr_enabled","fpr_log_source","fpr_log_endpoint_url","fpr_log_transport_key","fpr_vc_network_request_sampling_rate","fpr_vc_trace_sampling_rate","shouldLogAfterSampling","samplingRate","initializationPromise","initializationStatus","getInitializationPromise","getDocumentReadyComplete","iidPromise","iidVal","getIidPromise","changeInitializationStatus","DEFAULT_SEND_INTERVAL_MS","DEFAULT_REMAINING_TRIES","MAX_EVENT_COUNT_PER_REQUEST","remainingTries","isTransportSetup","processQueue","timeOffset","staged","log_event","evt","source_extension_json_proto3","event_time_ms","eventTime","flTransportFullUrl","postToFlEndpoint","transportWait","nextRequestWaitMillis","requestOffset","logResponseDetails","responseAction","sendEventsToFl","request_time_ms","client_info","client_type","js_client_info","log_source","dispatchQueueEvents","transportHandler","serializer","addToQueue","sendLog","resource","resourceType","logTrace","trace","settingsService","isAuto","sendTraceLog","networkRequest","networkRequestMetric","http_method","httpMethod","http_response_code","response_payload_bytes","responsePayloadBytes","client_start_time_us","startTimeUs","time_to_response_initiated_us","timeToResponseInitiatedUs","time_to_response_completed_us","timeToResponseCompletedUs","perfMetric","application_info","getApplicationInfo","network_request_metric","serializeNetworkRequest","traceMetric","is_auto","duration_us","durationUs","counters","customAttributes","getAttributes","custom_attributes","trace_metric","serializeTrace","google_app_id","web_app_info","page_url","service_worker_status","visibility_state","effective_connection_type","application_process_state","oobMetrics","FIRST_CONTENTFUL_PAINT_COUNTER_NAME","FIRST_INPUT_DELAY_COUNTER_NAME","traceMeasureName","api","randomId","traceStartMark","TRACE_START_MARK_PREFIX","traceStopMark","TRACE_STOP_MARK_PREFIX","traceMeasure","TRACE_MEASURE_PREFIX","calculateTraceMetrics","traceName","record","startTime","metrics","metric","incrementMetric","counter","numAsInteger","putMetric","OOB_TRACE_PAGE_LOAD_PREFIX","customMetricName","providedValue","valueAsInteger","convertMetricValueToInteger","getMetric","putAttribute","attr","isValidName","isValidValue","isValidCustomAttributeValue","attributeName","attributeValue","setStartTime","setDuration","perfMeasureEntries","perfMeasureEntry","createOobTrace","navigationTimings","paintTimings","firstInputDelay","Trace","timeOriginUs","domInteractive","domContentLoadedEventEnd","loadEventEnd","firstPaint","paintObject","firstContentfulPaint","createUserTimingTrace","createNetworkRequestEntry","performanceEntry","responseStart","responseEnd","networkRequestUrl","logEndpointUrl","flEndpointUrl","logNetworkRequest","transferSize","FID_WAIT_TIME_MS","setupOobResources","fid","setupOobTraces","resources","setupNetworkRequests","measures","setupUserTimingTraces","storageCache","isCachedDataFresh","cacheMaxAgeMillis","lastSuccessfulFetchTimestampMillis","cacheAgeMillis","getLastSuccessfulFetchTimestampMillis","getLastSuccessfulFetchResponse","lastSuccessfulFetchResponse","eTag","storageOperations","setLastSuccessfulFetchTimestampMillis","setLastSuccessfulFetchResponse","firebaseInstallations","sdkVersion","installationId","installationToken","urlBase","FIREBASE_REMOTE_CONFIG_URL_BASE","requestBody","language_code","navigatorLanguage","fetchPromise","timeoutPromise","_resolve","signal","race","errorCode","originalErrorMessage","responseEtag","responseBody","httpStatus","BOOLEAN_TRUTHY_VALUES","_source","asString","asBoolean","asNumber","getSource","_client","_storageCache","_storage","_logger","_isInitializationComplete","fetchTimeoutMillis","minimumFetchIntervalMillis","FirebaseLogLevel","SILENT","getLastFetchStatus","activate","getActiveConfigEtag","activeConfigEtag","setActiveConfig","setActiveConfigEtag","ensureInitialized","_initializePromise","loadFromStorage","abortSignal","RemoteConfigAbortSignal","setLastFetchStatus","lastFetchStatus","fetchAndActivate","getAll","obj1","obj2","getAllKeys","getActiveConfig","allConfigs","getBoolean","getNumber","activeConfig","Value","toFirebaseError","originalError","APP_NAMESPACE_STORE","openDbPromise","etag","getThrottleMetadata","setThrottleMetadata","deleteThrottleMetadata","compositeKey","createCompositeKey","lastFetchStatusPromise","lastSuccessfulFetchTimestampMillisPromise","activeConfigPromise","timestampMillis","setAbortableTimeout","throttleEndTimeMillis","backoffMillis","throttleMetadata","attemptFetch","customData","isRetriableError","packageName","DomHandler","domelementtype_1","node_1","reWhitespace","defaultOpts","normalizeWhitespace","withStartIndices","withEndIndices","xmlMode","elementCB","dom","Document","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onclosetag","elem","endIndex","onopentag","attribs","ElementType","addNode","ontext","oncomment","Comment","oncommentend","oncdatastart","NodeWithChildren","CDATA","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","_isPlaceholder","f1","sharedProps","useSharedProps","viewProps","defaultSharedProps","defaultViewProps","textProps","defaultTextProps","computeEmbeddedMaxWidth","cw","memoizedSharedProps","customListStyleSpecs","defaultListStyleSpecs","SharedPropsContext","emptyObject","ScrollResponder","Mixin","scrollResponderMixinGetInitialState","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleResponderReject","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","touches","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","scrollResponderHandleTouchMove","scrollResponderGetScrollableNode","getScrollableNode","scrollResponderScrollTo","animated","scroll","behavior","scrollResponderZoomTo","scrollResponderFlashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","endCoordinates","scrollOffsetY","UNSAFE_componentWillMount","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","normalizeScrollEvent","contentOffset","layoutMeasurement","ScrollViewBase","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","scrollEventThrottle","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handleScrollTick","hideScrollbar","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","scrollbarWidth","createReactClass","mixins","flashScrollIndicators","getScrollResponder","_scrollNodeRef","getInnerViewRef","_innerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","horizontal","scrollResponder","scrollResponderNode","_this$props","contentContainerStyle","onContentSizeChange","refreshControl","stickyHeaderIndices","pagingEnabled","keyboardDismissMode","contentSizeChangeProps","_handleContentOnLayout","hasStickyHeaderIndices","Children","isSticky","stickyHeader","pagingEnabledChild","contentContainer","_setInnerViewRef","contentContainerHorizontal","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","_handleScroll","scrollResponderHandleTerminate","ScrollViewClass","scrollView","_setScrollNodeRef","cloneElement","_e$nativeEvent$layout","dismissKeyboard","commonStyle","translateZ","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","onHidden","onHiddenOrPageHide","rules","group","styleResolver","createCSS","_React$Component","unimplementedViewStyles","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","Events","interactionStart","interactionComplete","runAfterInteractions","assets","getAssetByID","assetId","dataUriPattern","ImageUriCache","uri","_entries","lastUsedTimestamp","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","requests","ImageLoader","requestId","image","failure","interval","setInterval","load","clearInterval","naturalHeight","naturalWidth","onLoad","onDecode","prefetch","queryCache","uris","LOADED","LOADING","_filterId","svgDataUriPattern","resolveAssetUri","scales","preferredScale","PixelRatio","scaleSuffix","httpServerLocation","svg","blurRadius","defaultSource","draggable","onLoadEnd","onLoadStart","_React$useState","updateState","updateLayout","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_getFlatStyle","filterId","flatStyle","resizeMode","shadowOffset","tintColor","_filter","shadowString","resolveShadowValue","overlayColor","getFlatStyle","_resizeMode","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","classes","accessibilityImage","abortPendingRequest","_layout","resizeModeStyles","visibility","floodColor","operator","createTintColorSVG","ImageWithStatics","backgroundPosition","center","cover","stretch","ex","React__default","UAParser","ClientUAInstance","getBrowser","cpu","getCPU","device","getDevice","engine","getEngine","getOS","setUa","userAgentString","setUA","parseUserAgent","UserAgentInstance","UA","setUserAgent","UAHelper","_defineProperties","_getPrototypeOf","_objectWithoutProperties","sourceSymbolKeys","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","InitialDeviceTypes","isMobile","isTablet","isSmartTV","isConsole","isWearable","setDefaults","getNavigatorInstance","isIOS13Check","nav","MSStream","mobilePayload","vendor","osVersion","isMobileType","isTabletType","isMobileAndTabletType","isSmartTVType","_ref4","isBrowserType","_ref5","isWearableType","_ref6","isConsoleType","_ref7","isEmbeddedType","_ref8","getMobileVendor","_ref9","getMobileModel","_ref10","getDeviceType","_ref11","isAndroidType","_ref12","isWindowsType","_ref13","isMacOsType","_ref14","isWinPhoneType","_ref15","isIOSType","_ref16","getOsVersion","_ref17","getOsName","_ref18","isChromeType","_ref19","isFirefoxType","_ref20","isChromiumType","_ref21","isEdgeType","_ref22","isYandexType","_ref23","isSafariType","_ref24","isMobileSafariType","_ref25","isOperaType","_ref26","isIEType","_ref27","isMIUIType","_ref28","isSamsungBrowserType","_ref29","getBrowserFullVersion","_ref30","getBrowserVersion","_ref31","major","getBrowserName","_ref32","getEngineName","_ref33","getEngineVersion","_ref34","isElectronType","isEdgeChromiumType","getIOS13","getIPad13","getIphone13","getIPod13","getUseragent","userAg","buildSelectorsObject","isEmbedded","isMobileSafari","isChromium","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isOpera","osName","fullBrowserVersion","browserVersion","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","useDeviceData","hookUserAgent","AndroidView","renderWithFragment","Fragment","BrowserView","ConsoleView","CustomView","viewClassName","IEView","IOSView","MobileOnlyView","MobileView","SmartTVView","TabletView","WearableView","WinPhoneView","deviceDetect","checkDeviceType","browserMajorVersion","browserFullVersion","browserPayload","smartTvPayload","consolePayload","wearablePayload","embeddedPayload","getSelectorsByUserAgent","_UAHelper$parseUserAg","useDeviceSelectors","deviceData","useMobileOrientation","_useState2","innerWidth","innerHeight","isPortrait","handleOrientationChange","withOrientationChange","WrappedComponent","_class","Constructor","_classCallCheck","_possibleConstructorReturn","isEventListenerAdded","onOrientationChange","onPageLoad","protoProps","staticProps","_inherits","argsTag","asyncTag","nullTag","objectTag","proxyTag","undefinedTag","reIsUint","typedArrayTags","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","types","binding","nodeIsTypedArray","isTypedArray","nativeObjectToString","objectCtorString","Buffer","allocUnsafe","getPrototype","objectCreate","symToStringTag","toStringTag","nativeIsBuffer","nativeMax","nativeNow","baseCreate","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assignMergeValue","eq","baseAssignValue","objValue","pairs","LARGE_ARRAY_SIZE","fromRight","baseFor","keysFunc","iterable","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","isMasked","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","mergeFunc","stacked","isCommon","isTyped","isArrayLike","copyArray","isDeep","cloneBuffer","cloneArrayBuffer","byteOffset","cloneTypedArray","Ctor","isNew","copyObject","keysIn","toPlainObject","initCloneObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","identity","baseSetToString","lastCalled","stamp","shortOut","isLength","baseUnary","assigner","sources","guard","isIterateeCall","findNodeHandleRN","NativeModules","customGHEventsConfig","onGestureHandlerEvent","registrationName","onGestureHandlerStateChange","genericDirectEventTypes","UIManagerConstants","getViewManagerConfig","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","blockNativeResponder","RNGestureHandlerModule","handleSetJSResponder","handleClearJSResponder","handlerTag","handlerIDToTag","filterConfig","validProps","handlerIDs","handlerID","transformIntoHandlerTags","stateToPropMappings","createHandler","allowedProps","transformProps","customNativeProps","Handler","super","onGestureEvent","onHandlerStateChange","stateEventName","eventHandler","viewNode","newConfig","createGestureHandler","newViewTag","attachGestureHandler","propsRef","updateGestureHandler","componentDidMount","extract","hasUnresolvedRefs","updateEnqueued","setImmediate","componentDidUpdate","componentWillUnmount","dropGestureHandler","clearImmediate","mergedProps","gestureEventHandler","gestureStateEventHandler","grandChildren","Touchable","TOUCH_TARGET_DEBUG","renderDebugView","hitSlop","refHandler","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","stateValue","setStateValue","isControlledRef","isControlled","wasControlled","currentValue","onChangeCaller","onChangeArgs","oldValue","functionArgs","interceptedValue","useLayoutEffectImpl","ModalContext","handleClose","initialFocusRef","finalFocusRef","visible","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","bindReporter","reportAllChanges","prevValue","delta","forceReport","getNavigationEntry","__WEB_VITALS_POLYFILL__","navigationEntry","getNavigationEntryFromPerformanceTiming","getActivationStart","navEntry","activationStart","initMetric","navigationType","prerendering","rating","supportedEntryTypes","buffered","onCLS","onReport","report","sessionValue","sessionEntries","handleEntries","hadRecentInput","firstSessionEntry","lastSessionEntry","stopListening","takeRecords","onFID","visibilityWatcher","getVisibilityWatcher","handleEntry","firstHiddenTime","processingStart","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","updateEstimate","interactionId","getInteractionCountForNavigation","interactionCount","longestInteractionList","longestInteractionMap","processEntry","minLongestInteraction","existingInteraction","latency","interaction","onINP","durationThreshold","prevEntry","candidateInteractionIndex","estimateP98LongestInteraction","reportedMetricIDs","onLCP","lastEntry","_previousCls","_previousFid","_previousLcp","_previousInp","addClsInstrumentationHandler","addMetricObserver","instrumentCls","addLcpInstrumentationHandler","instrumentLcp","addFidInstrumentationHandler","instrumentFid","addInpInstrumentationHandler","instrumentInp","addPerformanceInstrumentationHandler","instrumentPerformanceObserver","getCleanupCallback","stopOnCallback","borderWidths","contrastThreshold","lightText","darkText","rose","pink","fuchsia","purple","violet","indigo","lightBlue","darkBlue","teal","emerald","lime","amber","orange","warmGray","trueGray","coolGray","blueGray","danger","secondary","tertiary","radii","letterSpacings","lineHeights","fontConfig","fontWeights","hairline","thin","normal","medium","semibold","bold","extrabold","extraBlack","fonts","heading","mono","fontSizes","shadows","themePropertyMap","EventEmitter","ONE_SECOND_IN_MS","dateTimestampInSeconds","timestampInSeconds","approxStartingTimeOrigin","createUnixTimestampInSecondsFunc","_browserPerformanceTimeOriginMode","browserPerformanceTimeOrigin","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStartDelta","LongCSSPropertyValidator","GenericCSSPropertyValidator","normalizeInlineCSSValue","normalizeRawInlineCSSValue","normalizeNativeValue","_curry1","f2","cur","setIsSSR","currentOwner","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","prevComponentValue","memoizedState","useId","didSSR","onStoreChange","DEFAULT_ENVIRONMENT","matchers","hex6","parse255","rgba","parse1","hex3","hex8","hex4","hslToRgb","parse360","parsePercentage","hsla","hue2rgb","NUMBER","PERCENTAGE","arrayLike","int","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","wheat","whitesmoke","yellowgreen","colorInt","nextObj","previousStyleRef","setNativePropsArgsRef","useStable","hostNode","relativeToNode","nativeProps","nextDomStyle","numberOfLines","selectable","textHasAncestor","textOneLine","textMultiLine","WebkitLineClamp","notSelectable","pressable","handleClick","font","wordWrap","textOverflow","WebkitBoxOrient","mapTag","promiseTag","weakMapTag","dataViewTag","nativeKeys","DataView","nonEnumShadows","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","isArrayLikeObject","ctorString","DELAY","LONG_PRESS_DETECTED","NOT_RESPONDER","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","RESPONDER_RELEASE","RESPONDER_TERMINATED","Transitions","RESPONDER_GRANT","isActiveSignal","isButtonRole","isPressStartSignal","isValidKeyPress","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","configure","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","getEventHandlers","_createEventHandlers","shouldDelay","_selectionTerminated","_receiveSignal","normalizeDelay","_handleLongPress","keyupHandler","onPressMove","getTouchFromResponderEvent","_touchActivatePosition","deltaX","deltaY","hypot","_this$_config","_this$_config2","_this$_config3","prevState","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","_this$_config6","delay","_event$nativeEvent","pressResponderRef","pressResponder","getGlobalEventProcessors","addGlobalEventProcessor","notifyEventProcessors","processors","processor","SlideFromRightIOS","gestureDirection","transitionSpec","cardStyleInterpolator","headerStyleInterpolator","ModalPresentationIOS","FadeFromBottomAndroid","RevealFromBottomAndroid","ScaleFromCenterAndroid","BottomSheetAndroid","ModalFadeTransition","forFadeCard","DefaultTransition","ios","android","Version","ModalTransition","toPropertyKey","toPrimitive","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","Batchinator","delayMS","_delay","_callback","_taskHandle","schedule","timeoutHandle","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","ViewabilityHelper","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","computeViewableItems","itemCount","scrollOffset","getFrameMetrics","renderRange","itemVisiblePercentThreshold","viewableIndices","firstVisible","idx","onUpdate","createViewToken","onViewableItemsChanged","waitForInteraction","minimumViewTime","_onUpdateSync","resetViewableIndices","recordInteraction","viewableIndicesToCheck","prevItems","nextItems","viewable","changed","_step$value","_step2$value","_viewable","isViewable","viewableItems","viewabilityConfig","infoLog","_console","elementsThatOverlapOffsets","offsets","outLength","frame","trailingOffset","kk","newRangeCount","computeWindowedRenderLimits","getFrameMetricsApprox","scrollMetrics","getItemCount","maxToRenderPerBatch","windowSize","velocity","visibleLength","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","VirtualizedListContext","VirtualizedListContextProvider","cellKey","getScrollMetrics","getOutermostParentListRef","getNestedChildState","registerAsNestedChild","unregisterAsNestedChild","debugInfo","listKey","VirtualizedListCellContextProvider","_inheritsLoose","_usedIndexForKey","_keylessItemComponentName","_React$PureComponent","_props","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","_getNestedChildState","existingChildData","_nestedChildLists","_registerAsNestedChild","childList","childListsInCell","_cellKeysToChildListKeys","parentDebugInfo","describeNestedLists","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_averageCellLength","_frames","_footerLength","_hasDoneInitialScroll","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dOffset","_scrollRef","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","onRefresh","refreshing","RefreshControl","progressViewOffset","_onCellUnmount","inLayout","_onLayout","measureLayoutRelativeToContainingList","_selectLength","_scheduleCellsToRenderUpdate","_maybeCallOnEndReached","_onLayoutEmpty","_onLayoutFooter","_triggerRemeasureForChildListsInCell","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","_convertParentScrollMetrics","_onScroll","_selectOffset","_this$_convertParentS","perf","prevDt","_updateViewableItems","_fillRateHelper","_computeBlankness","_onScrollBeginDrag","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_this$props3","onEndReachedThreshold","isVirtualizationDisabled","_isVirtualizationDisabled","newState","_this$_scrollMetrics","renderAhead","_getFrameMetricsApprox","newFirst","newLast","cellKeyForIndex","childListKeys","someChildHasMore","childKey","hasMore","_createViewToken","_this$props4","keyExtractor","_getFrameMetrics","getItemLayout","_this$props5","FillRateHelper","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","viewabilityConfigCallbackPairs","pair","initialNumToRender","storedState","_getListKey","frames","invertedWheelEventHandler","wheelDeltaX","wheelDeltaY","veryLast","scrollToIndex","onScrollToIndexFailed","viewOffset","viewPosition","averageItemLength","highestMeasuredFrameIndex","scrollToItem","_this$props2","_index","scrollToOffset","getScrollRef","_getCellKey","_this$context","_getDebugInfo","_this$context2","setupWebWheelHandler","deactivateAndFlush","teardownWebWheelHandler","getDerivedStateFromProps","_pushCells","cells","stickyIndicesFromProps","inversionStyle","prevCellKey","_this$props6","CellRendererComponent","ItemSeparatorComponent","stickyOffset","ListHeaderComponent","_loop","CellRenderer","fillRateHelper","onUpdateSeparators","_onCellLayout","onUnmount","parentProps","disableVirtualization","nestedContext","_this4","_this$props7","ListEmptyComponent","ListFooterComponent","_this$props8","horizontallyInverted","verticallyInverted","ListHeaderComponentStyle","spacerKey","lastInitialIndex","_this$state","firstAfterInitial","insertedStickySpacer","initBlock","stickyBlock","leadSpace","trailSpace","_initBlock","firstSpace","lastFrame","endFrame","tailSpacerLength","_element","_element2","ListFooterComponentStyle","scrollProps","renderScrollComponent","_renderDebugOverlay","_this$props9","extraData","hiPriInProgress","computeBlankness","_this5","normalize","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props10","onEndReached","_this$_scrollMetrics2","distanceFromEnd","_this$state2","_this$_scrollMetrics3","hiPri","scrollingThreshold","distTop","distBottom","_this6","contextType","_this7","separatorProps","highlighted","leadingItem","_separators","highlight","_this7$props","unhighlight","_this7$props2","updateProps","_this7$props3","_proto2","_renderElement","renderItem","ListItemComponent","separators","_this$props11","itemSeparator","cellStyle","rowReverse","columnReverse","row","promisifyRequest","promisifyRequestCall","promisifyCursorRequestCall","Cursor","proxyProperties","ProxyClass","targetProp","proxyRequestMethods","proxyMethods","proxyCursorRequestMethods","Index","_cursor","_request","ObjectStore","_store","Transaction","idbTransaction","_tx","UpgradeDB","_db","DB","openDb","upgradeCallback","deleteDb","IDBIndex","IDBCursor","IDBObjectStore","IDBTransaction","IDBDatabase","funcName","nativeObject","iterateCursor","trimLeft","trimRight","tinycolor","inputToRGB","_originalInput","_g","_roundA","_format","_gradientType","gradientType","_ok","stringInputToObject","isValidCSSUnit","rgbToRgb","convertToPercentage","hsvToRgb","boundAlpha","bound01","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","_desaturate","amount","toHsl","clamp01","_saturate","_greyscale","_lighten","_brighten","toRgb","_darken","_spin","_complement","polyad","_splitcomplement","_analogous","results","slices","part","_monochromatic","hsv","toHsv","modification","getBrightness","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","toHsvString","toHslString","toHex","toHex8","toHex8String","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","brighten","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","rgb1","rgb2","readability","isReadable","wcag2","wcag2Parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","flip","flipped","isOnePointZero","processPercent","isPercentage","parseIntFromHex","convertHexToDecimal","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","hsva","named","parms","useToken","fallbackArr","innerToken","depth","maxProperties","visit","normalizeToSize","maxSize","normalized","utf8Length","unmemoize","stringified","_events","objName","getConstructorName","stringifyValue","remainingDepth","valueWithToJSON","numAdded","visitable","visitKey","visitValue","Point","_add","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","mult","_mult","div","_div","_rotate","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","mag","dist","distSqr","angle","atan2","angleTo","angleWith","angleWithSep","nextKey","VENDOR_PREFIXES","TEST_ELEMENT","prefixed","camelProp","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","COMPUTE_INTERVAL","INPUT_START","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","each","boolOrFn","inStr","TouchAction","manager","compute","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","srcEvent","offsetDirection","prevented","hasNone","isTapPointer","pointers","isTapMovement","distance","isTapTouchTime","deltaTime","preventSrc","hasParent","getCenter","pointersLength","simpleCloneInputData","getDistance","getAngle","getDirection","getVelocity","computeInputData","firstInput","firstMultiple","offsetCenter","offsetDelta","prevDelta","prevInput","eventType","computeDeltaXY","overallVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","velocityX","velocityY","lastInterval","computeIntervalInputData","srcEventTarget","composedPath","inputHandler","pointersLen","changedPointersLen","changedPointers","isFinal","recognize","splitStr","addEventListeners","removeEventListeners","getWindowForElement","parentWindow","inputTarget","domHandler","evEl","evTarget","evWin","inArray","findByKey","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEventInput","removePointer","eventTypeNormalized","isTouch","storeIndex","uniqueArray","TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TouchInput","getTouches","allTouches","changedTargetTouches","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","which","DEDUP_TIMEOUT","setLastTouch","eventData","primaryTouch","lastTouch","lts","lastTouches","recordTouches","TouchMouseInput","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","mouse","invokeArrayArg","STATE_FAILED","getRecognizerByNameIfManager","otherRecognizer","stateStr","Recognizer","simultaneous","requireFail","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","TapRecognizer","taps","posThreshold","pTime","pCenter","_timer","validPointers","validMovement","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","AttrRecognizer","attrTest","optionPointers","isRecognized","directionStr","PanRecognizer","pX","pY","directionTest","hasMoved","SwipeRecognizer","PinchRecognizer","RotateRecognizer","PressRecognizer","validTime","domEvents","inputClass","cssProps","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","preset","toggleCssProps","oldCssProps","Manager","force","stopped","curRecognizer","existing","targetRecognizer","gestureEvent","createEvent","initEvent","gesture","triggerDomEvent","SINGLE_TOUCH_INPUT_MAP","SingleTouchInput","normalizeSingleTouches","deprecationMessage","inherit","childP","baseP","bindFn","Hammer","VERSION","INPUT_MOVE","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","Tap","Pan","Swipe","Pinch","Rotate","Press","DEG_RAD","EventMap","Direction","RIGHT","LEFT","UP","DOWN","GesturePropError","expectedType","gestures","getHandler","gestureInstances","invokeNullableMethod","__getHandler","argMapping","__nodeConfig","nativeValue","GestureHandler","gestureInstance","isDiscrete","shouldEnableGestureOnSetup","removePendingGesture","clearSelfAsPending","hammer","transformEventData","lastSentState","getHammerConfig","isGestureRunning","hasGestureFailed","_stillWaiting","_getPendingGestures","hasCustomActivationCriteria","deltaRotation","initialRotation","failed","isGestureEnabledForEvent","simulateCancelEvent","onWaitingEnded","_gesture","pendingGestures","addPendingGesture","_recognizer","_event","NativeGestureClass","updateHasCustomActivationCriteria","updateGestureConfig","minDist","minDistSq","minVelocity","minVelocitySq","maxDist","maxDistSq","NodeManager","asArray","ensureConfig","sync","numberOfPointers","changedTouch","pointerInside","isPointInView","oldState","transformNativeEvent","cancelPendingGestures","cancelEvent","notifyPendingGestures","onGestureEnded","forceInvalidate","sendEvent","onRawEvent","setView","setupEvents","onStart","onGestureActivated","__initialX","__initialY","minPointers","_inputData","DraggingGestureHandler","translationX","translationY","absoluteX","absoluteY","isnan","isValidNumber","TEST_MIN_IF_NOT_NAN","VEC_LEN_SQ","TEST_MAX_IF_NOT_NAN","fireAfterInterval","FlingGestureHandler","getTargetDirections","directions","pointerLength","validPointerCount","DiscreteGestureHandler","shouldFailUnderCustomCriteria","maxDeltaX","maxDeltaY","shouldCancelWhenOutside","PressGestureHandler","minDurationMs","onGestureStart","shouldDelayTouchForEvent","shouldDelayTouches","visualFeedbackTimer","initialEvent","sendGestureStartedEvent","shouldActivateOnStart","disallowInterruption","LongPressGestureHandler","NativeViewGestureHandler","PanGestureHandler","activeOffsetXStart","activeOffsetXEnd","activeOffsetYStart","activeOffsetYEnd","horizontalDirections","verticalDirections","criteria","failOffsetXStart","failOffsetXEnd","failOffsetYStart","failOffsetYEnd","shouldActivateUnderCustomCriteria","minVelocityX","minVelocityY","shouldMultiFingerPanFail","deltaScale","absDeltaRotation","IndiscreteGestureHandler","PinchGestureHandler","focalX","focalY","RotationGestureHandler","anchorX","anchorY","TapGestureHandler","_shouldFireEndEvent","maxDelayMs","onSuccessfulTap","_multiTapTimer","numberOfTaps","maxDurationMs","Gestures","handlerName","GestureClass","newView","getGestureHandlerNode","webpackPolyfill","_getLatitude","_getLongitude","_toRad","_robustAcos","accuracy","fromLat","fromLon","toLat","toLon","acos","HTMLContentModel","lastFocusedElement","isConnected","childElement","isVisible","getComputedStyle","computedDisplay","computedVisibility","parentElement","restoreFocus","autoFocus","startRef","endRef","scopeRef","getTreeNode","activeNode","addChild","nextSibling","nodes","restore","focusedNode","raf","cancelAnimationFrame","focusedElement","walker","tabbable","currentNode","nextElement","previousNode","nextNode","nextElementSibling","previousElementSibling","nodeToRestoreRef","treeNode","nodeToRestore","clonedTree","autoFocusRef","traverse","parentScope","removeTreeNode","focusManager","focusNext","sentinel","focusPrevious","focusFirst","focusLast","hidden","closest","ancestor","scopeRoot","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","FILTER_REJECT","FILTER_SKIP","FILTER_ACCEPT","fastMap","addTreeNode","newTree","within","isFocusVisibleState","setFocusVisible","domRef","interactions","otherProps","interactionProps","focusableProps","tabIndex","excludeFromTabOrder","AnimatedValueXY","valueIn","jointCallback","getLayout","getTranslateTransform","addMonths","dirtyAmount","dayOfMonth","endOfDesiredMonth","convertStringNumberToNumber","getRNKeyAndStyleValue","styledSystemProps","transformer","alphaMatched","colorMatched","alphaValue","alphaFromToken","getMargin","isNegative","absolute","propConfig","marginX","marginY","paddingX","paddingY","gap","maxW","maxH","boxSize","verticalAlign","alignContent","justifyItems","flexDir","justifySelf","alignSelf","order","borderTop","borderTopRadius","borderRight","borderBottom","borderLeft","borderX","borderY","borderTopStyle","borderBottomStyle","borderLeftStyle","borderRightStyle","roundedTopLeft","roundedTopRight","roundedBottomLeft","roundedBottomRight","borderBottomRadius","roundedBottom","roundedLeft","roundedRight","wordBreak","overflowWrap","textDecoration","txtDecor","backgroundAttachment","backgroundBlendMode","bgImage","bgImg","bgBlendMode","bgSize","bgPosition","bgPos","bgRepeat","bgAttachment","getStyleAndFilteredProps","getResponsiveStyles","orderedBreakPoints","styleFromProps","responsiveStyles","newStyle","getStyledFromProps","newDataSet","styleSheet","box","getRootSpan","getDynamicSamplingContextFromClient","publicKey","public_key","getDsn","user_segment","dsc","getDynamicSamplingContextFromSpan","txn","v7FrozenDsc","_frozenDynamicSamplingContext","sampleRate","maybeSampleRate","sample_rate","getByID","getStyle","styleLength","computedStyle","arrayIncludes","fromIndex","predicate","baseFindIndex","baseIsNaN","baseIndexOf","arrayIncludesWith","arrayMap","arrayPush","cacheHas","overArg","spreadableSymbol","isConcatSpreadable","nativeGetSymbols","SetCache","baseFlatten","isFlattenable","getAllKeysIn","symbolsFunc","baseGetAllKeys","getSymbolsIn","getSymbols","stubArray","basePickBy","basePick","valuesLength","outer","computed","valuesIndex","baseDifference","getTimezoneOffsetInMilliseconds","utcDate","startOfDay","mergeOptions","concatArrays","ignoreUndefined","createPromise","createPromiseAll","promises","processResult","AsyncStorage","mergeItem","oldObject","newObject","nextValue","mergeLocalStorageItem","numberOfKeys","flushGetRequests","multiGet","multiSet","keyValuePairs","multiRemove","multiMerge","globalScope","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","_propagationContext","generatePropagationContext","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","fingerprint","setLevel","setTransactionName","setSpan","getSpan","getTransaction","captureContext","scopeToMerge","scopeData","getScopeData","contexts","propagationContext","scopeContext","maxCrumbs","breadcrumbs","getLastBreadcrumb","clearBreadcrumbs","addAttachment","attachment","getAttachments","attachments","clearAttachments","eventProcessors","sdkProcessingMetadata","transactionName","applyToEvent","additionalEventProcessors","setSDKProcessingMetadata","newData","setPropagationContext","getPropagationContext","getGlobalScope","initialURL","Linking","_eventCallbacks","filteredCallbacks","_dispatchEvent","canOpenURL","getInitialURL","openURL","_validateURL","urlToOpen","mergeWith","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","nextTick","argv","versions","prependListener","prependOnceListener","cwd","chdir","umask","isTag","Script","Style","Root","Directive","Doctype","RenderersPropsContext","profile","mergedRenderersProps","__DEV__","defaultRendererProps","renderersProps","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$TypeError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","eval","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Proxy","SharedArrayBuffer","Uint8ClampedArray","Uint32Array","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","getBaseIntrinsic","allowMissing","intrinsicName","subString","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","MarkedListItem","counterRenderer","rtlLineReversed","rtlMarkerReversed","markerTextStyle","markerBoxStyle","maxNumOfCodepoints","markerTextWidth","renderMarker","enableMarkerClipping","lineRtl","lineLtr","counterIndex","markerClipConfig","ellipsizeMode","MarkerBox","markerStyle","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","startNativeAnimationNextId","Animation","fromValue","onEnd","animatedValue","__nativeId","__getNativeAnimationConfig","__debouncedOnEnd","__onEnd","__startNativeAnimation","startNativeAnimationWaitId","DOM_LAYOUT_HANDLER_NAME","resizeObserver","ResizeObserver","unobserve","matchMedia","listenerMapping","Appearance","addChangeListener","mappedListener","StyledText","NativeText","isTruncated","noOfLines","italic","underline","strikeThrough","propFontFamily","propFontWeight","propFontStyle","resolvedFontFamily","useResolvedFontFamily","propsToSpread","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","parserForArrayFormat","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","exclude","exclusionFilter","getNamedContext","ModalPresentationContext","addMilliseconds","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","psuedoElement","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","transforms","getPropertyValue","isTransform","removeProperty","cssText","isWindow","DOCUMENT_NODE","getscrollAccessor","getScrollAccessor","docElem","compareDocumentPosition","clientTop","clientLeft","isHTMLElement","offsetParent","parentOffset","getOffsetParent","getOffset","AXIS","FLIPPED_DIRECTION","CROSS_AXIS","AXIS_SIZE","PARSED_PLACEMENT_CACHE","getDelta","axis","containerDimensions","containerScroll","containerHeight","startEdgeOffset","endEdgeOffset","parsePlacement","crossPlacement","crossAxis","crossSize","computePosition","childOffset","boundaryDimensions","overlaySize","placementInfo","crossOffset","containerOffsetWithBoundary","isContainerPositioned","getAvailableSpace","margins","calculatePositionInternal","placementInput","scrollSize","shouldOverlapWithTrigger","normalizedOffset","flippedPlacementInfo","flippedPosition","getMaxHeight","arrowPosition","arrowOffsetLeft","arrowOffsetTop","calculatePosition","targetNode","overlayNode","scrollNode","shouldFlip","boundaryElement","isBodyContainer","containerPositionStyle","getPosition","getCss","getMargins","containerNode","getScrollTop","getScrollLeft","getContainerDimensions","onCloseMap","useOverlayPosition","targetRef","overlayRef","containerPadding","shouldUpdatePosition","onClose","setPosition","offsetLeft","offsetTop","updatePosition","translateRTL","onResize","isResizing","triggerRef","onCloseHandler","useCloseOnScroll","rendered","overlayProps","arrowProps","PortalContext","globalOverlayCounter","OverlayView","OverlayProvider","setItems","setOverlayItem","overlayId","removeOverlayItem","updateOverlayItem","OverlayContainer","usePortalProvider","defaultOffset","createCompileableStyle","textShadowOffset","textShadowRadius","nextStyles","resolvedStyle","boxShadowReducer","radius","textShadow","textShadowReducer","createOrderedCSSStyleSheet","sheet","groups","selectors","cssRules","cssRule","selectorText","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","OrderedCSSStyleSheet","getTextContent","groupValue","markerRule","encodeGroupRule","flattenArray","flattenDown","PROPERTIES_FLIP","PROPERTIES_I18N","borderStartColor","borderStartStyle","borderStartWidth","borderEndColor","borderEndStyle","borderEndWidth","marginStart","marginEnd","paddingStart","paddingEnd","PROPERTIES_VALUE","float","additiveInverse","multiplyStyleLengthValue","i18nStyle","originalStyle","_I18nManager$getConst","frozenProps","nextStyle","originalProp","convertedProp","convertedValue","flippedValue","invertedValue","supportsCSS3TextDecoration","mapTransform","createReactDOMStyle","backgroundClip","WebkitBackgroundClip","fontVariant","resolveTransform","longFormProperties","longForm","seed","murmurhash2_32_gc","wm","wms","wmms","plugins","crossFade","flexboxIE","flexboxOld","gradient","grid","imageSet","logical","sizing","prefixMap","animationDelay","animationDirection","animationFillMode","animationName","animationPlayState","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","mask","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","fontFeatureSettings","breakAfter","breakBefore","breakInside","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","writingMode","flexFlow","transformOrigin","transformOriginX","transformOriginY","backfaceVisibility","perspectiveOrigin","transformStyle","transformOriginZ","backdropFilter","fontKerning","scrollSnapPointsX","scrollSnapPointsY","scrollSnapDestination","scrollSnapCoordinate","shapeImageThreshold","shapeImageMargin","shapeImageOutside","hyphens","flowInto","flowFrom","regionFragment","textOrientation","textAlignLast","tabSize","wrapFlow","wrapThrough","wrapMargin","textSizeAdjust","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","prefixAll","createPrefixer","staticData","prefixInlineStyles","prefixedStyles","valueString","stringifyValueWithProperty","cachedResult","_identifier","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","_block","finalValue","_block3","_block4","_block2","_block5","_createDeclarationBlo","_block6","createAtomicRules","_cachedResult","_processKeyframesValu","normalizedValue","domStyle","prefixStyles","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","resets","focusVisibleAttributeName","rule","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","password","isValidFocusTarget","addFocusVisibleAttribute","isReadOnly","readOnly","focusTriggersKeyboardModality","removeFocusVisibleAttribute","addInitialPointerMoveListeners","querySelectorAll","removeAllFocusVisibleAttributes","onInitialPointerMove","createCacheKey","classListToString","inserted","resolved","ltr","rtl","rtlNoSwap","head","insertBefore","firstChild","createCSSStyleSheet","initialRules","_injectRegisteredStyle","_results$key","addToCache","_resolveStyle","_I18nManager$getConst2","localizedStyle","styleProp","getClassName","_atomic","_a$key","getStyleSheet","compiled","_compiled$key","nextClassList","flatArray","isArrayOfNumbers","cacheKey","finalProps","createStyleResolver","MOUSE_DOWN","MOUSE_MOVE","MOUSE_UP","MOUSE_CANCEL","TOUCH_START","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","SCROLL","SELECTION_CHANGE","isStartish","isMoveish","isEndish","isCancelish","MAX_TOUCH_BANK","touchBank","touchHistory","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","touchActive","startPageX","startPageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","createTouchRecord","recordTouchMove","printTouch","printTouchBank","recordTouchEnd","printed","ResponderTouchHistoryStore","recordTouchTrack","topLevelType","touchTrackToCheck","activeRecord","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","propagationWasStopped","domEventChangedTouches","domEventType","normalizeTouches","locationX","locationY","emulatedTouches","responderEvent","dispatchConfig","keyName","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","anchorNode","getEventPath","hasValidSelection","focusNode","isTextNode","Node","TEXT_NODE","isSelectionValid","startRegistration","moveRegistration","shouldSetResponderEvents","emptyResponder","responderListenersMap","isEmulatingMouseEvents","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","isStartEvent","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","callbackName","shouldSetCallback","_result","_id2","_node2","findWantsResponder","_currentResponder2","currentId","_getResponderConfig2","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","setResponderId","removeNode","_currentResponder3","terminateResponder","idCounter","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","isResponder","accessibilityRoleToWebRole","adjustable","imagebutton","keyboardkey","summary","propsToAriaRole","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","listitem","region","strong","accessibilityStates","useContrastText","trueDarkText","trueLightText","trueBg","trueColor","suppressColorAccessibilityWarning","useAccessibleColors","disableContrastText","bgThemeColorVariant","bgShade","textColor","themeColorsThresholdShades","shadeThreshold","getContrastThemeColor","trueContrastColor","contrastColorToken","darkTextConstrast","getContrastRatio","lightTextConstrast","getAccessibleContrastColor","foreground","lumA","lumB","extractProps","propValues","extractPropertyFromFunction","shadowProps","nestedProp","cloneDeep","funcProps","breakpointTheme","calculateProps","windowWidth","resultProps","filterDefaultProps","componentBaseStyle","variantProps","extractedProps","mergeUnderscoreProps","applyScopeDataToEvent","cleanedExtra","cleanedTags","cleanedUser","cleanedContexts","applyDataToEvent","rootSpan","dynamicSamplingContext","applySpanToEvent","applyFingerprintToEvent","mergedBreadcrumbs","applyBreadcrumbsToEvent","applySdkMetadataToEvent","mergeScopeData","mergeData","mergeAndOverwriteScopeData","mergeVal","CSS_UNIT_RE","multiple","isPrefixed","EVENT_TYPES","VISIBILITY_CHANGE_EVENT","VISIBILITY_STATE_PROPERTY","AppStates","changeEmitter","AppState","_state","States","PENDING","_handlers","_reject","onfulfilled","onrejected","_executeHandlers","onfinally","isRejected","_setResult","RESOLVED","REJECTED","cachedHandlers","regeneratorRuntime","asyncGeneratorStep","_asyncToGenerator","API_KEY","LANGUAGE","REGION","LOCATION_TYPE","GOOGLE_API","handleUrl","_handleUrl","abrupt","error_message","setApiKey","setLanguage","setRegion","setLocationType","locationType","enableDebug","fromLatLng","lat","lng","fromAddress","address","isNodeEnv","dynamicRequire","loadModule","moduleName","TextType","TagType","lastUpdate","shrinkFactor","prefixSize","prefixStyle","MarkedList","normalChildren","listProps","useMarkedList","uppercasePattern","toHyphenLower","hName","addDays","deepDiffer","one","two","maxDepth","twoKey","numColumns","_virtualizedListPairs","_captureRef","_listRef","_getItem","_item","_getItemCount","_keyExtractor","_renderer","columnWrapperStyle","renderer","_item2","_checkProps","_createOnViewableItemsChanged","_pushMultiColumnViewable","dirtyMonth","dateWithDesiredMonth","monthIndex","lastDayOfMonth","SpanRecorder","maxlen","_maxlen","spans","spanRecorder","Span","_traceId","_spanId","_startTime","startTimestamp","instrumenter","_attributes","setAttributes","_name","parentSpanId","_parentSpanId","_sampled","_status","endTimestamp","_endTime","exclusiveTime","_exclusiveTime","_measurements","measurements","updateName","endTime","startChild","childSpan","opStr","nameStr","idStr","logMessage","_logMessage","setData","setStatus","setHttpStatus","setName","isSuccess","finish","toTraceparent","toContext","_getData","updateWithContext","getTraceContext","start_timestamp","_metrics_summary","profile_id","exclusive_time","isRecording","hasData","hasAttributes","hasTracingEnabled","maybeOptions","__SENTRY_TRACING__","enableTracing","boxFlex","boxFlexGroup","boxOrdinalGroup","flexOrder","flexPositive","flexNegative","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","orphans","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","scaleZ","prefixes","prefixKey","objects","uniqueID","createKey","UNINITIALIZED","BackHandler","exitApp","Keyboard","dismiss","makeAlphanumMaxlenComputer","colorModeContext","HybridContext","useColorScheme","_useColorScheme","currentScheme","setCurrentScheme","appState","getCurrentValue","subsription","useSyncExternalStore","useAppState","useModeManager","colorModeManager","systemColorMode","setRawMode","setColorMode","setAccessibleColors","toggleColorMode","ExitAnimationContext","exited","setExited","_exited","newArray","hexa","rgbArray","alphaHex","_len2","dateLongFormatter","formatLong","timeLongFormatter","longFormatters","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","transformStylesMap","getAnimatedStyles","animateValue","defaultTransitionConfig","Transition","onTransitionComplete","createAnimatedComponent","animationState","setAnimationState","prevVisible","entryTransition","exitTransition","startAnimation","sequence","toValue","animateState","PresenceTransition","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","originalModule","getInstallationsEndpoint","INSTALLATIONS_API_URL","extractAuthTokenInfoFromResponse","requestStatus","expiresIn","responseExpiresIn","creationTime","getErrorFromResponse","requestName","responseJson","errorData","serverCode","serverMessage","serverStatus","getHeaders","Accept","getHeadersWithAuth","appConfig","refreshToken","INTERNAL_AUTH_VERSION","getAuthorizationHeader","retryIfServerError","createInstallationRequest","endpoint","authVersion","PACKAGE_VERSION","responseValue","registrationStatus","sleep","VALID_FID_PATTERN","INVALID_FID","generateFid","fidByteArray","b64String","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","getBroadcastChannel","closeBroadcastChannel","broadcastFidChange","broadcastChannel","BroadcastChannel","OBJECT_STORE_NAME","dbPromise","getInstallationEntry","oldEntry","installationEntry","clearTimedOutRequest","updateOrCreateInstallationEntry","entryWithPromise","onLine","registrationPromise","inProgressEntry","registrationTime","registeredInstallationEntry","isServerError","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","updateInstallationRequest","PENDING_TIMEOUT_MS","generateAuthTokenRequest","platformLoggerProvider","getGenerateAuthTokenEndpoint","platformLogger","installation","refreshAuthToken","isEntryRegistered","oldAuthToken","TOKEN_EXPIRATION_BUFFER","isAuthTokenExpired","isAuthTokenValid","tokenPromise","updateAuthTokenRequest","waitUntilAuthTokenRequest","inProgressAuthToken","requestTime","makeAuthTokenRequestInProgressEntry","updatedInstallationEntry","fetchAuthTokenFromServer","completeInstallationRegistration","deleteInstallationRequest","getDeleteEndpoint","onIdChange","callbackSet","addCallback","removeCallback","keysToLookup","foundKey","checkedValue","sexagesimal","sec","decimal","TRenderEngineContext","defaultTRenderEngine","tRenderEngineProviderPropTypes","customHTMLElementModels","enableCSSInlineProcessing","enableUserAgentStyles","idsStyles","ignoredDomTags","ignoreDomNode","domVisitors","ignoredStyles","allowedStyles","htmlParserOptions","tagsStyles","classesStyles","emSize","systemFonts","fallbackFonts","serif","monospace","setMarkersForTNode","dangerouslyDisableHoisting","dangerouslyDisableWhitespaceCollapsing","selectDomRoot","defaultFallbackFonts","defaultTRenderEngineProviderProps","decodeEntities","defaultSystemFonts","TRenderEngineProvider","updateNodeIndexes","nodeIndex","emptyAttrs","emptyClasses","transformPropsDefinitionsToSwitch","definition","native","mergeSwitches","TStyles","markers","markersPrototype","__nodeIndex","__trimmedLeft","__trimmedRight","__nativeProps","__nativeStyles","__webStyles","__generateNativePropsFromTNode","webTextFlow","ariaRole","__generateDynamicNativePropsFromModel","autoGeneratedProps","elm","elementModel","getReactNativeProps","hasWhiteSpaceCollapsingEnabled","contentModel","parentStyles","isUnregistered","bindChildren","shouldUpdateNodeIndexes","cloneInitParams","partial","isCollapsibleLeft","isCollapsibleRight","lastChild","matchContentModel","spliceChildren","indexesToSplice","collapse","collapseChildren","getNativeStyles","nativeBlockFlow","nativeBlockRet","nativeTextFlow","nativeTextRet","getWebStyles","webBlockRet","withStyles","withNodeIndex","hasClass","setMarkers","targetMarkers","parentMarkers","_parentMarkers","setMarkersFromAttributes","reactNativeProps","dynamicFromModel","class","stylesMerger","buildStyles","TNodeCtor","extraAccessors","ShortCSSPropertyValidator","_curry2","f3","DocumentMetadataContext","baseUrl","baseTarget","links","meta","tnode","passedNativeProps","overridenChildren","propsForChildren","TNodeChildrenRenderer","switchProp","propsFromModel","syntheticOnPress","getSpanStatusFromHttpCode","spanStatusfromHttpCode","spanStatus","processColor","int32Color","unmountComponentAtNode","progressBackgroundColor","titleColor","getFontScale","getPixelSizeForLayoutSize","layoutSize","roundToNearestPixel","opacityOverride","setOpacityOverride","setOpacityTo","setOpacityActive","setOpacityInactive","isGrant","MemoedTouchableOpacity","defaultRenderMarker","defaultComputeMarkerBoxWidth","DEFAULT_FONT_SIZE","lineStyle","dynamicMarkerBoxWidth","computeMarkerBoxWidth","maxMarkerLenInRange","syntheticRtlLineReversed","withRtl","syntheticMarkerTextStyle","initialMetrics","initialWindowMetrics","SafeAreaProviderCompat","GestureHandlerRootView","GestureState","HeaderBackContext","HeaderContainer","scenes","getPreviousScene","getFocusedRoute","onContentHeightChange","parentHeaderBack","scene","headerMode","headerShown","headerTransparent","previousScene","headerBack","getHeaderTitle","previousDescriptor","nextDescriptor","previousHeaderShown","previousHeaderMode","nextHeaderlessScene","currentHeaderShown","currentHeaderMode","nextHeaderlessGestureDirection","isHeaderStatic","styleInterpolator","Background","findLastIndex","getInvertedMultiplier","getDistanceForDirection","multiplier","Screens","MaybeScreenContainer","MaybeScreen","active","ModalStatusBarManager","darkTheme","overlapping","setOverlapping","flattenedStyle","darkContent","setFill","setPointerEvents","page","card","hasOpacityStyle","onOpen","onTransition","getAnimateToValue","lastToValue","isClosing","spec","setPointerEventsEnabled","handleStartInteraction","pendingGestureCallback","isInteraction","finished","handleEndInteraction","isCurrentlyMounted","forceUpdate","interactionHandle","onGestureBegin","onGestureCanceled","onGestureEnd","gestureVelocityImpact","isSwiping","translation","interpolationIndex","insetTop","insetRight","insetBottom","insetLeft","swiping","gestureActivationCriteria","gestureResponseDistance","enableTrackpadTwoFingerGesture","minOffsetY","minOffsetX","overlayEnabled","shadowEnabled","gestureEnabled","pageOverflowEnabled","headerDarkContent","customContainerStyle","contentStyle","interpolationProps","getCardAnimation","interpolatedStyle","getInterpolatedStyle","handleGestureEvent","isTransparent","getIsModalPresentation","handleGestureStateChange","shadowHorizontal","shadowLeft","shadowRight","shadowVertical","shadowTop","shadowBottom","HeaderHeightContext","CardContainer","focused","modal","hasAbsoluteFloatHeader","headerHeight","onHeaderHeightChange","isParentHeaderShown","isNextScreenTransparent","detachCurrentScreen","onCloseRoute","onOpenRoute","onGestureCancel","onTransitionStart","renderHeader","renderScene","safeAreaInsetBottom","safeAreaInsetLeft","safeAreaInsetRight","safeAreaInsetTop","parentHeaderHeight","onPageChangeStart","onPageChangeCancel","onPageChangeConfirm","previouslyFocusedTextInputRef","startTimestampRef","keyboardTimeoutRef","clearKeyboardTimeout","TextInput","currentlyFocusedInput","useKeyboardManager","keyboardHandlingEnabled","presentation","animationEnabled","cardOverlay","cardOverlayEnabled","cardShadowEnabled","backTitle","FALLBACK_DESCRIPTOR","getInterpolationIndex","getIsModal","isParentModal","getHeaderHeights","headerStatusBarHeight","headerStyle","isModal","getDefaultHeaderHeight","getDistanceFromOptions","getProgressFromGesture","CardStack","openingRouteKeys","previousRoute","oldScene","currentGesture","previousGesture","nextGesture","optionsForTransitionConfig","defaultTransitionPreset","forNoAnimationCard","__memo","headerHeights","getPreviousRoute","closingRouteKeys","detachInactiveScreens","focusedHeaderHeight","isFloatHeaderAbsolute","activeScreensLimit","detachPreviousScreen","floatingHeader","handleHeaderLayout","floating","handleLayout","isScreenActive","sceneForActivity","outputValue","headerTintColor","freezeOnBlur","flattenedHeaderStyle","GestureHandlerWrapper","StackView","previousRoutes","previousDescriptors","replacingRouteKeys","previousFocusedRoute","nextFocusedRoute","isAnimationEnabled","animationTypeForReplace","getAnimationTypeForReplace","handleOpenRoute","handleCloseRoute","handleTransitionStart","handleTransitionEnd","handleGestureStart","handleGestureEnd","handleGestureCancel","MaskedView","AnimatedPressable","ANDROID_SUPPORTS_RIPPLE","PlatformPressable","android_ripple","pressColor","pressOpacity","animateTo","HeaderBackButton","allowFontScaling","backImage","labelStyle","labelVisible","onLabelLayout","screenLayout","customTintColor","titleLayout","truncatedLabel","initialLabelWidth","setInitialLabelWidth","handleLabelLayout","androidRipple","icon","iconWithLabel","leftLabelText","labelElement","labelWrapper","iconMaskContainer","iconMask","iconMaskFillerRect","renderLabel","borderless","HeaderTitle","HeaderBackground","Header","useSafeAreaFrame","HeaderShownContext","headerTitle","customTitle","headerTitleAlign","headerLeft","headerLeftLabelVisible","headerBackground","headerRight","headerTitleAllowFontScaling","titleAllowFontScaling","headerTitleStyle","headerLeftContainerStyle","leftContainerStyle","headerRightContainerStyle","rightContainerStyle","headerTitleContainerStyle","titleContainerStyle","headerBackgroundContainerStyle","backgroundContainerStyle","customHeaderStyle","headerShadowVisible","headerPressColor","headerPressOpacity","defaultHeight","unsafeStyles","safeStyles","leftButton","rightButton","content","expand","HeaderSegment","leftLabelLayout","setLeftLabelLayout","setTitleLayout","handleTitleLayout","handleLeftLabelLayout","leftLabel","onGoBack","headerBackImage","headerBackTitle","headerBackTitleVisible","headerTruncatedBackTitle","headerBackAccessibilityLabel","headerBackTestID","headerBackAllowFontScaling","headerBackTitleStyle","leftLabelStyle","previousTitle","debounce","VirtualizedSectionList","sections","itemIdx","section","sectionData","_subExtractor","_convertViewable","_onViewableItemsChanged","_renderItem","listItemCount","infoIndex","renderSectionHeader","renderSectionFooter","SeparatorComponent","_getSeparatorComponent","ItemWithSeparator","LeadingSeparatorComponent","SectionSeparatorComponent","leadingSection","onUpdateSeparator","_onUpdateSeparator","trailingItem","trailingSection","scrollToLocation","itemIndex","sectionIndex","stickySectionHeadersEnabled","toIndexParams","getListRef","passThroughProps","listHeaderOffset","isLastItemInList","isLastItemInSection","leadingSeparatorProps","_this3$props","leadingSeparator","_wrapperListRef","listRef","_oldOnErrorHandler","instrumentError","line","column","handlerData","__SENTRY_LOADER__","__SENTRY_INSTRUMENTED__","_oldOnUnhandledRejectionHandler","instrumentUnhandledRejection","onunhandledrejection","errorsInstrumented","registerErrorInstrumentation","addGlobalErrorInstrumentationHandler","errorCallback","addGlobalUnhandledRejectionInstrumentationHandler","activeTransaction","SPAN_METRIC_SUMMARY","getMetricStorageForSpan","getMetricSummaryJsonForSpan","exportKey","SpanClass","transactionContext","_hub","_metadata","_trimEnd","trimEnd","incomingDynamicSamplingContext","newName","spanMetadata","initSpanRecorder","setMeasurement","setMetadata","newMetadata","timestampInS","_finishTransaction","getDynamicSamplingContext","setHub","getProfileId","recordDroppedEvent","finishedSpans","endTimes","capturedSpanScope","capturedSpanIsolationScope","transaction_info","getActiveTransaction","maybeHub","extractTraceparentData","_extractTraceparentData","prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","maxValueLength","applyClientOptions","integrationNames","sdk","applyIntegrationsMetadata","stackParser","debugIdMap","_sentryDebugIds","debugIdStackFramesCache","cachedDebugIdStackFrameCache","debugIdStackParserCache","filenameDebugIdMap","debugIdStackTrace","parsedStack","cachedParsedStack","stackFrame","filename","stacktrace","debug_id","applyDebugIds","finalScope","getFinalScope","mechanism","clientEventProcessors","getEventProcessors","isolationData","finalScopeData","abs_path","debug_meta","code_file","applyDebugMeta","maxBreadth","normalizeEvent","parseEventHintOrCaptureContext","hintIsScopeOrFunction","captureContextKeys","hintIsScopeContext","processIDRefList","idRefList","listStyle","pointerEventsStyles","auto","providedStyle","_prop","dataProp","dataName","dataValue","_focusable","reactNativeStyle","needsCursor","finalClassList","_styleResolver$resolv","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_cssInJsUtils","isPrefixedValue","CROSS_FADE_REGEX","grab","grabbing","FILTER_REGEX","_isPrefixedValue2","_isPrefixedValue","alternativeProps","alternativePropList","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","propertyPrefixMap","multipleValues","singleValue","dashCaseProperty","_hyphenateProperty2","pLen","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","nativeModule","_nativeModule","_this$_nativeModule","_this$_nativeModule2","removeListeners","_this$_nativeModule3","_this$_nativeModule4","listenerCount","clsx","newFontFamily","newFontStyle","newFontWeight","fontToken","fontWeightNumber","useIsomorphicLayoutEffect_1","latestCallback","resolvedColor","Backdrop","_createClass","_react","_react2","_reactNative","LinearGradient","_PureComponent","_temp","useAngle","getColors","locationStyle","angleCenter","__source","fileName","lineNumber","PureComponent","useToggleState","isSelected","setSelected","useControlledState","defaultSelected","toggle","newVal","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","loadScript","Stripe","script","scripts","findScript","advancedFraudSignals","headOrBody","injectScript","stripePromise$1","loadCalled","loadStripe","registerWrapper","initStripe","ThemeContext","DefaultTheme","notification","subMilliseconds","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","startOfQuarter","currentMonth","KEY_PREFIX","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","DEFAULT_VERSION","autoMergeLevel1","inboundState","originalState","reducedState","createPersistoid","serialize","whitelist","throttle","storageKey","keyPrefix","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","processNextKey","endState","subState","onWriteFail","passWhitelistBlacklist","getStoredState","deserialize","defaultDeserialize","serialized","rawState","reduceRight","serial","warnIfRemoveError","DEFAULT_TIMEOUT","persistReducer","baseReducer","stateReconciler","defaultGetStoredState","_persistoid","_purge","_paused","conditionalUpdate","_persist","rehydrated","restState","_sealed","_rehydrate","rehydrate","restoredState","migrate","migratedState","migrateErr","purgeStoredState","_newState","autoMergeLevel2","persistCombineReducers","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","bootstrapped","persistorReducer","firstIndex","persistStore","boostrappedCb","_pStore","rehydrateAction","persistor","purge","purgeResult","flushResult","pause","manualPersist","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","long","short","formatRelativeLocale","yesterday","today","tomorrow","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","localize","ordinalNumber","rem100","abbreviated","wide","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","parsePattern","parseResult","defaultLocale","holderStyle","containerOpacity","setContainerOpacity","setSize","animationStyle","slideComponent","provideSize","Overlay","isKeyboardDismissable","defaultIsOpen","avoidKeyboard","overlayVisible","backdropVisible","bottomInset","useKeyboardBottomInset","useRNModal","setVisible","useControllableState","onRequestClose","useRNModalOnAndroid","finalRefVal","onAccessibilityEscape","accessibilityViewIsModal","_scrollview","Close","ModalTemp","Content","CloseButton","Footer","Body","ModalMain","twoArgumentPooler","a1","a2","Klass","instancePool","standardReleaser","destructor","poolSize","DEFAULT_POOLER","PooledClass","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","BoundingDimensions","getPooledFromElement","Position","extractSingleTouch","hasTouches","hasChangedTouches","baseStatesConditions","RESPONDER_INACTIVE_PRESS_IN","RESPONDER_INACTIVE_PRESS_OUT","RESPONDER_ACTIVE_PRESS_IN","RESPONDER_ACTIVE_PRESS_OUT","RESPONDER_ACTIVE_LONG_PRESS_IN","RESPONDER_ACTIVE_LONG_PRESS_OUT","IsActive","IsPressingIn","IsLongPressingIn","Signals","ENTER_PRESS_RECT","LEAVE_PRESS_RECT","TouchableMixin","_touchableNode","_touchableBlurListener","_isTouchableKeyboardActive","touchable","touchState","touchableHandleResponderTerminate","touchableDelayTimeout","longPressDelayTimeout","pressOutDelayTimeout","pressInLocation","responderID","touchableGetInitialState","touchableHandleResponderTerminationRequest","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","touchableGetHighlightDelayMS","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","touchableGetHitSlop","_getDistanceBetweenPoints","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","globalX","globalY","curState","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","aY","bX","bY","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","debugHitSlopStyle","hexColor","EmitterSubscription","_EventSubscription2","subscriber","removeSubscription","_EventSubscription","EventSubscriptionVendor","_subscriptionsForType","addSubscription","removeAllSubscriptions","subscriptionsForType","getSubscriptionsForType","sparseFilterPredicate","_subscriber","subscriptions","resolveStackStyleInput","StyledInput","onKeyPress","InputLeftElement","InputRightElement","leftElement","rightElement","inputProps","useFormControl","isInvalid","setIsFocused","handleFocus","focusState","inputThemeProps","ariaLabel","isFullWidth","underlineColorAndroid","wrapperRef","layoutProps","nonLayoutProps","resolvedPlaceholderTextColor","resolvedSelectionColor","resolvedUnderlineColorAndroid","focusOutlineColor","invalidOutlineColor","secureTextEntry","editable","DotLottiePlayer","Player","LottieView","loop","webStyle","autoPlay","hover","onAnimationFailure","onAnimationFinish","onAnimationLoop","sourceName","sourceDotLottieURI","sourceURL","resolveAssetSource","sourceJson","parsePossibleSources","isLottie","lottieSource","jsonSource","setIsError","prevKey","playerRef","useImperativeHandle","play","setSeeker","lottieRef","onEvent","autoplay","isWebColor","flattenChildren","flatChildren","isValidElement","getSpacedChildren","divider","childrenArray","spacingProp","reversed","handleCallbackErrors","onFinally","maybeHandlePromiseRejection","startSpan","normalizeContext","parentSpan","activeSpan","onlyIfParent","createChildSpanOrTransaction","forceTransaction","startInactiveSpan","getActiveSpan","temporaryScope","parentSampled","ISOLATION_SCOPE_ON_START_SPAN_FIELD","SCOPE_ON_START_SPAN_FIELD","setCapturedScopesOnSpan","getCapturedScopesOnSpan","defaultFunctionName","getFunctionName","STACKTRACE_FRAME_LIMIT","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","skipFirst","cleanedLine","localStack","function","stripSentryFramesAndReverse","stackParserFromStackParserOptions","questionOutlineIconPath","SVG","SVGIcon","stroke","strokeHex","colorHex","ChildPath","pathStroke","pathStrokeColor","fillColor","MILLISECONDS_IN_WEEK","getUTCWeek","firstWeek","startOfUTCWeekYear","getUTCISOWeek","fourthOfJanuary","startOfUTCISOWeekYear","_exportNames","computeDestinationPoint","convertArea","convertDistance","convertSpeed","decimalToSexagesimal","findNearest","getAreaOfPolygon","getBounds","getBoundsOfDistance","getCenterOfBounds","getCompassDirection","getCoordinateKey","getCoordinateKeys","getDistanceFromLine","getGreatCircleBearing","getLatitude","getLongitude","getPathLength","getPreciseDistance","getRhumbLineBearing","getRoughCompassDirection","getSpeed","isDecimal","isPointInLine","isPointInPolygon","isPointNearLine","isPointWithinRadius","isSexagesimal","isValidCoordinate","isValidLatitude","isValidLongitude","orderByDistance","sexagesimalToDecimal","toDecimal","toRad","toDeg","wktToPolygon","_computeDestinationPoint","_convertArea","_convertDistance","_convertSpeed","_decimalToSexagesimal","_findNearest","_getAreaOfPolygon","_getBounds","_getBoundsOfDistance","_getCenter","_getCenterOfBounds","_getCompassDirection","_getCoordinateKeys","_getDistance","_getDistanceFromLine","_getGreatCircleBearing","_getPathLength","_getPreciseDistance","_getRhumbLineBearing","_getRoughCompassDirection","_getSpeed","_isDecimal","_isPointInLine","_isPointInPolygon","_isPointNearLine","_isPointWithinRadius","_isSexagesimal","_isValidCoordinate","_isValidLatitude","_isValidLongitude","_orderByDistance","_sexagesimalToDecimal","_toDeg","_wktToPolygon","DSN_REGEX","dsnToString","dsn","withPassword","pass","ConvertNumberIntoHex","createTransformValue","isInline","customGroup","compiledStyle","$$css","compiledRules","atomicCompile","orderedRules","localizeableValue","propPolyfill","polyfillIndices","ltrPolyfillValues","rtlPolyfillValues","ltrVal","ltrPolyfill","rtlPolyfill","hashedString","declarationsString","createBoxShadowValue","createTextShadowValue","preprocess","boxShadowValue","textShadowValue","textContentMap","useResponsiveQuery","responsiveQueryContext","setDimensions","handleChange","useDimensionsWithEnable","queryRule","flattenQueryStyle","rangeStyle","minWidthStyle","maxWidthStyle","stableHash","queriesHash","queryHash","dataAttribute","getDataAttribute","newIdentifier","mediaRules","compiledOrderedRules","oldIdentifier","_order","newRule","mediaQueryRule","queryKey","styleEl","createTextNode","propStyle","getStyledSystemPropsAndRestProps","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","throwError","isFunc","altitude","RE","phrasingCategories","translatableBlockCategories","HTMLElementModel","isOpaque","mixedUAStyles","isVoid","getUADerivedStyleFromAttributes","getMixedUAStyles","fromCustomModel","template","optionalFields","fromNativeModel","nativeElementModel","category","isPhrasing","isTranslatable","mixed","textual","isTranslatableBlock","isTranslatableTextual","TBlockCtor","notNil","not","nil","inheritProperties","realProperties","ownProcessedProps","flow","retain","CSSProcessedProps","CSSProcessor","LongSizeCSSPropertyValidator","computeSize","absoluteLengthUnitsMultiplicators","computeEmSize","rootFontSize","splitValueAndUnit","getStylesForProperty","isDocument","isComment","isText","isCDATA","domhandler_1","unitaryRenderer","CounterStyle","cyclic","lowerAlphaSpec","counterStyleRenderer","lowerAlpha","upperAlphaSpec","upperAlpha","decimalLeadingZero","DisclosureClosedSymbolRenderer","DisclosureOpenSymbolRenderer","lowerGreek","lowerRoman","upperRoman","CircleSymbolRenderer","disc","DiscSymbolRenderer","symbolic","square","SquareSymbolRenderer","TChildrenRenderersContext","TChildrenRenderer","renderChildren","tchildrenRendererDefaultProps","TDefaultBlockRenderer","renderBlockContent","TDefaultPhrasingRenderer","renderTextualContent","TDefaultTextRenderer","isGhostTNode","TNodeRenderer","renderRegistry","useRendererRegistry","useTNodeChildrenRenderer","tnodeProps","renderEmptyContent","assembledProps","Renderer","InternalTextRenderer","getInternalTextRenderer","enableExperimentalGhostLinesPrevention","bypassAnonymousTPhrasingNodes","renderFn","propsFromParent","collapsedMarginTop","RenderRegistryContext","getRendererConfigForTNode","elementModels","renderers","RenderRegistry","initialUrl","useDocumentMetadata","useIMGElementProps","contentWidth","enableExperimentalPercentWidth","useRendererProps","computeImagesMaxWidth","useComputeMaxWidthForTag","rawStyle","containerProps","computeMaxWidth","altColor","objectFit","IMGElement","IMGElementContentSuccess","IMGElementContentLoading","IMGElementContentError","imgDimensionsType","cachedNaturalDimensions","imagesInitialDimensions","defaultImageInitialDimensions","ttree","onDocumentMetadataLoaded","ttreeEventsContext","tdoc","cycleDetected","endBatch","batchDepth","batchedEffect","batchIteration","_nextBatchedEffect","_flags","needsToRecompute","evalContext","globalVersion","_node","_target","_prevSource","_sources","_nextSource","_prevTarget","_nextTarget","_targets","_refresh","rollbackNode","_unsubscribe","_rollbackNode","Computed","Signal","_cleanup","cleanup","prevContext","_compute","cleanupEffect","_dispose","flag","_notify","_globalVersion","cleanupSources","OUTDATED","_subscribe","_start","endEffect","Effect","disposeEffect","implementation","$defineProperty","GetIntrinsic","percentTwenties","Format","formatters","RFC1738","RFC3986","fragment","relative","stripUrlQueryAndFragment","urlPath","getNumberOfUrlSegments","isScreenReaderEnabled","prefersReducedMotionMedia","AccessibilityInfo","isReduceMotionEnabled","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","createSvgCircle","cx","cy","ActivityIndicator","_props$animating","animating","_props$hidesWhenStopp","hidesWhenStopped","_props$size","viewBox","indicatorSizes","animationPause","small","large","relativeKeyboardHeight","keyboardFrame","keyboardY","keyboardVerticalOffset","onKeyboardChange","cssFunction","SafeAreaView","setBackgroundColor","setBarStyle","setHidden","setNetworkActivityIndicatorVisible","setTranslucent","thumbDefaultBoxShadow","thumbFocusedBoxShadow","defaultDisabledTrackColor","defaultDisabledThumbColor","activeThumbColor","activeTrackColor","_props$disabled","_props$style","thumbColor","_props$value","thumbRef","handleFocusState","_StyleSheet$flatten","styleHeight","styleWidth","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","disabledTrackColor","disabledThumbColor","trackStyle","thumbStyle","thumb","thumbActive","setColorScheme","addWeeks","addQuarters","addYears","startOfWeek","attachNativeEvent","viewRef","eventMappings","nativeEventPath","animatedValueTag","mapping","detach","AnimatedEvent","_argMapping","__addListener","_callListeners","_attachedEvent","__removeListener","_key3","recMapping","recEvt","mappingKey","_len3","_key4","AnimatedTransform","_transforms","transConfigs","AnimatedStyle","_style","_walkStyleAndGetValues","updatedStyle","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","AnimatedProps","_animatedView","__disconnectAnimatedView","__connectAnimatedView","setNativeView","animatedView","nativeViewTag","__restoreDefaultValues","propsConfig","propKey","setAndForwardRef","getForwardedRef","setLocalRef","animatedComponentNextId","isReactComponent","AnimatedComponent","_invokeAnimatedPropsCallbackOnMount","_eventDetachers","_animatedComponentId","_isFabric","_this$_component$_int","_this$_component$_int2","_this$_component$getN","_this$_component$getN2","_this$_component$getS","_this$_component$getS2","_component","stateNode","canonical","_waitForUpdate","_markUpdateComplete","_animatedPropsCallback","_propsAnimated","_setComponentRef","_prevComponent","getNode","_ref$constructor$name","_attachNativeEvents","_this$_component","scrollableNode","_detachNativeEvents","_attachProps","oldPropsAnimated","_ref$style","passthroughAnimatedPropExplicitValues","_ref2$style","passthruStyle","passthruProps","mergedStyle","UNSAFE_componentWillReceiveProps","AnimatedAddition","AnimatedDiffClamp","_min","_max","_lastValue","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","animationClass","animationConfig","_animationClass","_animationConfig","_useNativeDriver","_combineCallbacks","onComplete","maybeVectorAnim","anim","configX","configY","_config$key","parallel","stopTogether","_start2","configuration","singleConfig","TimingAnimation","_startNativeLoop","iterations","_isUsingNativeDriver","animations","doneCount","hasEnded","endResult","ValueXY","Interpolation","decay","_start3","DecayAnimation","SpringAnimation","divide","modulo","diffClamp","stagger","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","animatedEvent","forkEvent","unforkEvent","__PropsOnlyForTests","emptyAnimation","anyValue","AnimatedImplementation","AnimatedMock","ModalPortal","ReactDOM","createPortal","getAnimationStyle","animationType","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","animatedIn","ANIMATION_DURATION","animatedOut","fadeIn","fadeOut","slideIn","slideOut","ModalAnimation","onDismiss","onShow","isRendering","setIsRendering","wasVisible","isAnimated","animationEndCallback","onAnimationEnd","closeOnEscape","modalTransparent","modalOpaque","FocusBracket","focusBracket","attemptFocus","focusFirstDescendant","childNodes","focusLastDescendant","ModalFocusTrap","trapElementRef","focusRef","trapFocusInProgress","trapFocus","hasFocused","lastFocusedElementOutsideTrap","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","_props$visible","isActive","setIsActive","onDismissCallback","onShowCallback","addActiveModal","canUsePassiveEvents","supported","supportsPassiveEvents","cancelBubble","createEventHandle","compatListener","previousModality","previousActiveModality","activeModality","KEYBOARD","MOUSE","TOUCH","CONTEXTMENU","MOUSEDOWN","MOUSEMOVE","MOUSEUP","POINTERDOWN","POINTERMOVE","SELECTIONCHANGE","TOUCHCANCEL","TOUCHMOVE","TOUCHSTART","bubbleOptions","passive","captureOptions","addBlurListener","addFocusListener","addVisibilityChangeListener","addKeyDownListener","addPointerDownListener","addPointerMoveListener","addContextMenuListener","addMouseDownListener","addMouseMoveListener","addMouseUpListener","addScrollListener","addSelectiomChangeListener","addTouchCancelListener","addTouchMoveListener","addTouchStartListener","restoreModality","callListeners","onPointerish","useEvent","targetListeners","removeTargetListener","lockEventType","unlockEventType","supportsPointerEvent","dispatchCustomEvent","_ref$bubbles","_ref$cancelable","initCustomEvent","getPointerType","testOnly_hovered","_useForceableState","useForceableState","hovered","_useForceableState2","_useForceableState3","onContextMenuPress","onKeyDownPress","onHoverUpdate","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","hoverStart","lockEvent","interactionState","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","forced","MemoedPressable","BAGGAGE_HEADER_NAME","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","MAX_BAGGAGE_STRING_LENGTH","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","currBaggageObject","baggageHeaderToObject","dynamicSamplingContextToSentryBaggageHeader","newBaggageHeader","dscKey","dscValue","sampleTransaction","samplingContext","tracesSampler","tracesSampleRate","isValidSampleRate","_Animation","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$isInteraction","_config$iterations","_config$stiffness","_config$damping","_config$mass","_overshootClamping","_restDisplacementThreshold","_restSpeedThreshold","_initialVelocity","_lastVelocity","_toValue","__iterations","tension","friction","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","SpringConfig","fromBouncinessAndSpeed","_config$tension","_config$friction","_springConfig","fromOrigamiTensionAndFriction","_this$_initialVelocit","initialVelocity","__active","_startPosition","_lastPosition","_onUpdate","_lastTime","_frameTime","internalState","getInternalState","lastPosition","lastVelocity","lastTime","_timeout","v0","zeta","omega0","omega1","x0","envelope","_envelope","isOvershooting","isVelocity","isDisplacement","_animationFrame","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","startValue","endValue","projectNormal","bouncyTension","bouncyFriction","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","_easeInOut","_config$easing","_config$duration","_easing","_duration","numFrames","_fromValue","PersistGate","_getPrototypeOf2","onBeforeLift","finally","handlePersistorState","loading","RenderHTML","OSNotificationPermission","NotificationWillDisplayEvent","OneSignal","LogLevel","react_native_1","EventManager_1","events_1","Subscription_1","NotificationWillDisplayEvent_1","helpers_1","RNOneSignal","notificationPermission","pushSub","optedIn","_addPermissionObserver","Notifications","granted","hasNotificationPermission","_addPushSubscriptionObserver","User","pushSubscription","subscriptionChange","getPushSubscriptionId","getPushSubscriptionToken","getOptedIn","isNativeModuleLoaded","login","externalId","logout","setConsentRequired","setPrivacyConsentRequired","setConsentGiven","setPrivacyConsentGiven","Debug","nsLogLevel","setAlertLevel","visualLogLevel","LiveActivities","enter","activityId","enterLiveActivity","exitLiveActivity","isValidCallback","addPushSubscriptionObserver","SUBSCRIPTION_CHANGED","optOut","optIn","addAlias","addAliases","removeAlias","removeAliases","addEmail","removeEmail","addSms","smsNumber","removeSms","addTag","addTags","removeTag","removeTags","getTags","hasPermission","fallbackToSettings","requestNotificationPermission","canRequestPermission","canRequestNotificationPermission","registerForProvisionalAuthorization","permissionNative","Authorized","Denied","addNotificationClickListener","NOTIFICATION_CLICKED","addNotificationForegroundLifecycleListener","NOTIFICATION_WILL_DISPLAY","addPermissionObserver","PERMISSION_CHANGED","clearAll","clearAllNotifications","removeNotification","removeGroupedNotifications","InAppMessages","addInAppMessageClickListener","IN_APP_MESSAGE_CLICKED","IN_APP_MESSAGE_WILL_DISPLAY","IN_APP_MESSAGE_DID_DISPLAY","IN_APP_MESSAGE_WILL_DISMISS","IN_APP_MESSAGE_DID_DISMISS","addInAppMessagesLifecycleListener","addTrigger","trigger","addTriggers","triggers","removeTrigger","removeTriggers","clearTriggers","setPaused","paused","getPaused","Location","requestLocationPermission","setShared","shared","setLocationShared","isShared","isLocationShared","Session","addOutcome","addUniqueOutcome","addOutcomeWithValue","OSNotification_1","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","typedArraySupport","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","utils","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","common","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","fullPath","baseURL","responseURL","responseHeaders","timeoutErrorMessage","cookies","xsrfValue","onDownloadProgress","onUploadProgress","upload","cancelToken","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","axiosKeys","otherKeys","Cancel","querySelector","nonce","serverResponse","firebaseEndpoint","secureTokenEndpoint","identityPlatformEndpoint","$goog_Thenable","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","OffscreenCanvas","getContext","htmlFor","cellpadding","cellspacing","colspan","frameborder","maxlength","rowspan","usemap","valign","contentType","Window","MessageChannel","contentWindow","port1","port2","keyCode","$d","Wd","Xd","Yd","Zd","availHeight","availWidth","resizable","statusbar","toolbar","scrollbars","standalone","noreferrer","initMouseEvent","opener","noopener","WorkerGlobalScope","importScripts","___jsl","CP","bf","toUTCString","cf","hf","ff","gf","jf","abcd","kf","nf","of","pf","qf","rf","sf","tf","uf","factorId","enrollmentTime","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","If","phoneNumber","Jf","Kf","Lf","Mf","Nf","operation","continueUrl","Of","languageCode","Pf","tenantId","Qf","recoverEmail","resetPassword","revertSecondFactorAddition","signIn","verifyAndChangeEmail","verifyEmail","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","canHandleCodeInApp","androidPackageName","androidMinimumVersion","androidInstallApp","iOSBundleId","dynamicLinkDomain","dg","eg","fg","hg","ig","provider_id","tenant","is_anonymous","jg","kg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","isNewUser","rawUserInfo","providerId","screenName","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Gg","pendingToken","requestUri","Jg","signInMethod","Kg","idToken","oauthToken","oauthTokenSecret","Lg","id_token","access_token","oauth_token_secret","postBody","Mg","oauthIdToken","oauthAccessToken","Ng","isOAuthProvider","Og","Pg","Qg","Rg","credential","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","EMAIL_LINK_SIGN_IN_METHOD","EMAIL_PASSWORD_SIGN_IN_METHOD","dh","eh","fh","gh","kh","verificationId","verificationCode","temporaryProof","sessionInfo","lh","ph","qh","rawNonce","rh","urlResponse","sessionId","uh","multiFactorSession","pendingCredential","Fg","Hg","Ig","$g","oobCode","ah","bh","PROVIDER_ID","ih","jh","oj","phoneSessionInfo","mh","phoneEnrollmentInfo","recaptchaToken","qj","phoneResponseInfo","nh","mfaPendingCredential","mfaEnrollmentId","multiFactorHint","multiFactorUid","phoneSignInInfo","mj","oh","PHONE_SIGN_IN_METHOD","Ch","vh","xh","yh","Ah","Bh","Dh","Eh","ActiveXObject","Fh","Gh","XDomainRequest","onprogress","Hh","Ih","Kh","Lh","Jh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","$h","Zh","Yh","getResponse","charset","getElementsByTagName","secureTokenTimeout","secureTokenHeaders","firebaseTimeout","firebaseHeaders","gapi","ej","setToken","authType","fj","gj","hj","photoUrl","pj","phoneVerificationInfo","tj","uj","vj","needConfirmation","errorMessage","wj","returnIdpCredential","xj","yj","autoCreate","zj","Aj","deleteAttribute","requestType","ij","jj","kj","newEmail","lj","nj","Bj","newPassword","Cj","Dj","Ej","bj","Fj","sj","deleteProvider","Gj","Hj","Ij","dj","Jj","recaptchaSiteKey","Kj","USER_NOT_FOUND","Lj","mf","returnSecureToken","keyInvalid","ipRefererBlocked","INVALID_CUSTOM_TOKEN","CREDENTIAL_MISMATCH","MISSING_CUSTOM_TOKEN","INVALID_IDENTIFIER","MISSING_CONTINUE_URI","INVALID_EMAIL","INVALID_PASSWORD","USER_DISABLED","MISSING_PASSWORD","EMAIL_EXISTS","PASSWORD_LOGIN_DISABLED","INVALID_IDP_RESPONSE","INVALID_PENDING_TOKEN","FEDERATED_USER_ID_ALREADY_LINKED","MISSING_OR_INVALID_NONCE","INVALID_MESSAGE_PAYLOAD","INVALID_RECIPIENT_EMAIL","INVALID_SENDER","EMAIL_NOT_FOUND","RESET_PASSWORD_EXCEED_LIMIT","EXPIRED_OOB_CODE","INVALID_OOB_CODE","MISSING_OOB_CODE","INVALID_PROVIDER_ID","CREDENTIAL_TOO_OLD_LOGIN_AGAIN","INVALID_ID_TOKEN","TOKEN_EXPIRED","CORS_UNSUPPORTED","DYNAMIC_LINK_NOT_ACTIVATED","INVALID_APP_ID","TOO_MANY_ATTEMPTS_TRY_LATER","WEAK_PASSWORD","OPERATION_NOT_ALLOWED","USER_CANCELLED","CAPTCHA_CHECK_FAILED","INVALID_APP_CREDENTIAL","INVALID_CODE","INVALID_PHONE_NUMBER","INVALID_SESSION_INFO","INVALID_TEMPORARY_PROOF","MISSING_APP_CREDENTIAL","MISSING_CODE","MISSING_PHONE_NUMBER","MISSING_SESSION_INFO","QUOTA_EXCEEDED","SESSION_EXPIRED","REJECTED_CREDENTIAL","INVALID_CONTINUE_URI","MISSING_ANDROID_PACKAGE_NAME","MISSING_IOS_BUNDLE_ID","UNAUTHORIZED_DOMAIN","INVALID_DYNAMIC_LINK_DOMAIN","INVALID_OAUTH_CLIENT_ID","INVALID_CERT_HASH","UNSUPPORTED_TENANT_OPERATION","INVALID_TENANT_ID","TENANT_ID_MISMATCH","ADMIN_ONLY_OPERATION","INVALID_MFA_PENDING_CREDENTIAL","MFA_ENROLLMENT_NOT_FOUND","MISSING_MFA_PENDING_CREDENTIAL","MISSING_MFA_ENROLLMENT_ID","EMAIL_CHANGE_NEEDS_VERIFICATION","SECOND_FACTOR_EXISTS","SECOND_FACTOR_LIMIT_EXCEEDED","UNSUPPORTED_FIRST_FACTOR","UNVERIFIED_EMAIL","Mj","Uj","Tj","Sj","messageHandlersFilter","dontclear","restyle","setHideOnLeave","Pj","ping","Nj","Vj","Wj","Xj","Yj","Zj","authorizedDomains","cj","ak","Rj","authEvent","bk","dk","ek","fk","reactNative","gk","Qj","webStorageSupport","ck","rk","hk","jk","lk","mk","messageChannel","nk","pk","ik","qk","keyProcessed","ready","ef","tk","sk","uk","vk","xk","yk","zk","df","fbase_key","Bk","Ck","Dk","Ek","Gk","Fk","Hk","Ik","Kk","sessionStorage","Jk","Lk","Browser","Mk","Nk","ReactNative","Ok","Pk","ports","Ak","Qk","Uk","Rk","NONE","Tk","Vk","Wk","Xk","Zk","al","$k","cl","gl","hl","kl","ll","nl","ol","ql","rl","vl","cg","zl","wl","yl","handleOpenURL","wh","Al","Bl","ul","ibi","apn","appDisplayName","Cl","El","Gl","Hl","Il","Jl","unknown","signInViaRedirect","linkViaRedirect","reauthViaRedirect","signInViaPopup","linkViaPopup","reauthViaPopup","Kl","Ll","Ml","Nl","Ol","Pl","Fl","Ql","Rl","Sl","Tl","Ul","Dl","Vl","Wl","Xl","Yl","$l","bm","em","fm","gm","expirationTime","authTime","signInProvider","signInSecondFactor","sign_in_second_factor","im","jm","Zl","confirm","nm","qm","rm","tm","multiFactor","enrolledFactors","um","xm","ym","zm","af","Am","Bm","Cm","Em","grant_type","refresh_token","expires_in","Fm","lastSignInTime","Hm","photoURL","Im","authDomain","emulatorConfig","Jm","Km","Lm","Mm","Nm","Om","Pm","Qm","Rm","Sm","Tm","Vm","Wm","emailVerified","isAnonymous","createdAt","lastLoginAt","providerData","Xm","Ym","Zm","$m","Gm","Dm","additionalUserInfo","operationType","reload","stsTokenManager","redirectEventId","om","mfaInfo","vm","users","localId","providerUserInfo","rawId","passwordHash","rj","lf","Yk","logFramework","disableWarnings","Um","Sk","userLanguage","innerText","continueUri","signinMethods","aj","execute","grecaptcha","hasChildNodes","appVerificationDisabledForTesting","Persistence","LOCAL","SESSION","appVerificationDisabled","ActionCodeInfo","Operation","EMAIL_SIGNIN","PASSWORD_RESET","RECOVER_EMAIL","REVERT_SECOND_FACTOR_ADDITION","VERIFY_AND_CHANGE_EMAIL","VERIFY_EMAIL","Auth","AuthCredential","App","firestoreNamespace","GeoPoint","Timestamp","WriteBatch","DocumentReference","DocumentSnapshot","Query","QueryDocumentSnapshot","QuerySnapshot","CollectionReference","FieldPath","FieldValue","CACHE_SIZE_UNLIMITED","firestoreFactory","ExpFirestore","IndexedDbPersistenceProvider","errorCodeMap","details","HttpsErrorImpl","authProvider","messagingProvider","messaging","getAuthToken","getInstanceIdToken","Notification","permission","instanceIdToken","mapValues","app_","appCheckProvider","regionOrCustomDomain_","fetchImpl","Serializer","emulatorOrigin","deleteService","contextProvider","ContextProvider","cancelAllRequests","customDomain","_url","useFunctionsEmulator","httpsCallable","postJSON","getAppCheckToken","appCheckToken","appCheck","millis","timer","failAfter","failAfterPromise","clearTimeoutWrapper","bodyJSON","codeForHTTPStatus","errorJSON","_errorForResponse","responseData","namespaceExports","Functions","Service","regionOrCustomDomain","MessageType","ERROR_MAP","DEFAULT_VAPID_KEY","ENDPOINT","FCM_MSG","CONSOLE_CAMPAIGN_ID","arrayToBase64","uint8Array","base64ToArray","base64String","rawData","outputArray","OLD_DB_NAME","OLD_DB_VERSION","OLD_OBJECT_STORE_NAME","migrateOldDatabase","senderId","databases","dbNames","tokenDetails","oldDetails","p256dh","fcmToken","subscriptionOptions","swScope","vapidKey","checkTokenDetails","DATABASE_NAME","DATABASE_VERSION","getDbPromise","upgradeDb","dbGet","firebaseDependencies","oldTokenDetails","dbSet","tx","dbRemove","requestGetToken","getBody","subscribeOptions","getEndpoint","errorInfo","requestUpdateToken","updateOptions","requestDeleteToken","unsubscribeOptions","installations","applicationPubKey","swRegistration","getPushSubscription","getNewToken","dbOptions","isVapidKeyEqual","isEndpointEqual","isAuthEqual","isP256dhEqual","isTokenValid","updateToken","deleteToken","pushManager","getSubscription","updatedToken","updatedTokenDetails","userVisibleOnly","applicationServerKey","isConsoleMessage","isOnBackgroundMessageUsed","bgMessageHandler","waitUntil","onPush","onSubChange","onNotificationClick","setBackgroundMessageHandler","onBackgroundMessage","registration","usePublicVapidKey","useServiceWorker","onTokenRefresh","internalPayload","getMessagePayloadInternal","getClientList","TAG","clientList","hasVisibleClients","sendMessagePayloadInternalToWindows","isNotificationShown","showNotification","wrapInternalPayload","collapseKey","collapse_key","messageId","fcm_message_id","messagePayloadInternal","propagateNotificationPayload","propagateDataPayload","fcmOptions","analyticsLabel","analytics_label","propagateFcmOptions","externalizePayload","stopImmediatePropagation","click_action","getLink","originUrl","getWindowClient","clients","openWindow","messageType","isFirebaseMessaging","wrappedInternalPayload","clientUrl","PUSH_RECEIVED","matchAll","includeUncontrolled","notificationPayloadInternal","maxActions","onMessageCallback","messageEventListener","stripInternalFields","dataPayload","logEvent","getVapidKey","getSwReg","updateVapidKey","updateSwReg","serviceWorkerRegistration","registerDefaultSw","ServiceWorkerRegistration","browserErrorMessage","permissionResult","getEventType","analyticsProvider","message_id","message_name","message_time","message_device_time","getMissingValueError","valueName","messagingSenderId","DEFAULT_HOST","CONFIG_STORAGE_BUCKET_KEY","prependCode","_baseMessage","FirebaseStorageError","_codeEquals","canceled","cannotSliceBlob","invalidArgument","appDeleted","invalidRootOperation","internalError","StringFormat","RAW","BASE64","BASE64URL","DATA_URL","dataFromString","stringData","StringData","utf8Bytes_","base64Bytes_","dataUrl","DataURLParts","decoded","percentEncodedBytes_","dataURLBytes_","hasMinus","hasUnder","hasPlus","hasSlash","dataURL","middle","TaskEvent","TaskState","RUNNING","PAUSED","SUCCESS","CANCELED","taskStateFromInternalTaskState","sent_","xhr_","errorCode_","sendPromise_","ABORT","NETWORK_ERROR","getErrorCode","addUploadProgressListener","removeUploadProgressListener","createConnection","XhrConnection","bucket","path_","fullServerUrl","bucketOnlyServerUrl","makeFromBucketSpec","bucketString","bucketLocation","makeFromUrl","bucketDomain","gsRegex","httpModify","loc","firebaseStorageHost","indices","postModify","captures","bucketValue","pathValue","invalidUrl","promise_","getPromise","_appDelete","isNativeBlob","isNativeBlobDefined","validateNumber","makeUrl","urlPart","protocolMatch","makeQueryString","queryPart","successCodes","additionalRetryCodes","progressCallback","pool","pendingConnection_","backoffId_","canceled_","appDelete_","method_","headers_","body_","successCodes_","additionalRetryCodes_","callback_","errorCallback_","progressCallback_","timeout_","pool_","resolve_","reject_","start_","backoffDone","requestWentThrough","wasSuccessCode","RequestEndStatus","waitSeconds","timeoutId","hitTimeout","cancelState","triggeredCallback","triggerCallback","callWithDelay","waitMillis","wasTimeout","backoffCallback","progressListener","hitServer","isRetryStatusCode_","successCode","wasCanceled","progressEvent","loaded","lengthComputable","appDelete","isFiveHundredCode","isExtraRetryCode","isRequestSpecificRetryCode","getBlobBuilder","BlobBuilder","WebKitBlobBuilder","getBlob","elideCopy","blobType","data_","size_","type_","startByte","endByte","sliced","blob","webkitSlice","mozSlice","sliceBlob","FbsBlob","blobby","uint8Arrays","uploadData","jsonObjectOrNull","lastComponent","noXform_","server","xform","mappings_","getMappings","mappings","Mapping","nameMapping","xformPath","sizeMapping","fromResource","_makeStorageReference","addRef","fromResourceString","resourceString","toResourceString","PREFIXES_KEY","ITEMS_KEY","fromResponseString","listResult","nextPageToken","pathWithoutTrailingSlash","reference","fromBackendResponse","urlParams","errorHandler","handlerCheck","cndn","metadataHandler","xhr","downloadUrlHandler","downloadUrlFromResourceString","sharedErrorHandler","newErr","objectErrorHandler","maxOperationRetryTime","requestInfo","RequestInfo","delimiter","pageToken","maxResults","isRoot","listHandler","metadataForUpload_","metadataClone","determineContentType_","checkResumeHeader_","allowed","RESUMABLE_UPLOAD_CHUNK_SIZE","continueResumableUpload","chunkSize","status_","ResumableUploadStatus","bytesLeft","bytesToUpload","maxUploadRetryTime","uploadStatus","newCurrent","argsToForward","_transferred","_needToFetchStatus","_needToFetchMetadata","_observers","_error","_uploadUrl","_chunkMultiplier","_blob","_mappings","_resumable","_shouldDoResumable","_errorHandler","completeTransitions_","_transition","_metadataErrorHandler","_promise","_makeProgressCallback","sizeBefore","_createResumable","_fetchStatus","_fetchMetadata","_continueUpload","_oneShotUpload","_resolveToken","_getAuthToken","_getAppCheckToken","metadataForUpload","createResumableUpload","_location","createRequest","_makeRequest","sizeString","getResumableUploadStatus","statusRequest","uploadRequest","newStatus","_increaseMultiplier","metadataRequest","boundary","genBoundary","metadata_","preBlobPart","postBlobPart","multipartUpload","multipartRequest","transferred","old","_notifyObservers","wasPaused","externalState","bytesTransferred","completed","Observer","_addObserver","_removeObserver","onFulfilled","onRejected","_notifyObserver","_finishPromise","triggered","fbsAsync","valid","_service","_newRef","Reference","newPath","_throwIfRoot","listAll","listAllHelper","nextPage","requestsList","makeRequestWithTokens","requestsUpdateMetadata","getDownloadURL","requestsGetDownloadUrl","deleteObject","_xhr","requestsDeleteObject","_getChild","childPath","canonicalChildPath","isUrl","refFromPath","FirebaseStorageImpl","_bucket","serviceOrRef","pathOrUrl","extractBucket","_authProvider","_appCheckProvider","_pool","_firebaseVersion","_host","_appId","_deleted","_maxOperationRetryTime","_maxUploadRetryTime","_requests","_overrideAuthToken","tokenData","FailRequest","firebaseVersion","addGmpidHeader_","addAuthHeader_","addVersionHeader_","addAppCheckHeader_","NetworkRequest","makeRequest","uploadBytesResumable","UploadTask","uploadBytesResumableInternal","requestsGetMetadata","getMetadataInternal","refInternal","connectStorageEmulator","connectEmulatorInternal","UploadTaskSnapshotCompat","wrappedNextOrObserver","taskSnapshot","ReferenceCompat","_getChildInternal","UploadTaskCompat","putString","_UploadTask","_FbsBlob","listAllInternal","ListResultCompat","listInternal","updateMetadataInternal","getDownloadURLInternal","deleteObjectInternal","refFromURL","_Location","setMaxUploadRetryTime","setMaxOperationRetryTime","gtagOnConfig","gtagCore","initializationPromisesMap","dynamicConfigPromisesList","measurementIdToAppId","measurementId","gtagParams","correspondingAppId","dynamicConfigResults","foundConfig","GtagCommand","CONFIG","gtagOnEvent","initializationPromisesToWaitFor","gaSendToList","sendToId","EVENT","wrapOrCreateGtag","dataLayerName","gtagFunctionName","command","idOrNameOrParams","SET","wrapGtag","wrappedGtag","ERRORS","LONG_RETRY_FACTOR","defaultRetryData","fetchDynamicConfig","appFields","appUrl","DYNAMIC_CONFIG_URL","jsonResponse","responseMessage","attemptFetchDynamicConfigWithRetry","retryData","initializeIds","dynamicConfigPromise","timeoutMillis","AnalyticsAbortSignal","FETCH_TIMEOUT_MILLIS","fetchDynamicConfigWithRetry","fidPromise","validateIndexedDB","envIsValid","dynamicConfig","scriptTags","GTAG_URL","findGtagScriptOnPage","insertScriptTag","ORIGIN_KEY","configProperties","GA_FID_KEY","dataLayer","gtagFunction","eventParams","flatProperties","ANALYTICS_TYPE","EventName","APP_CHECK_STATES","DEFAULT_STATE","activated","tokenObservers","DEBUG_STATE","getDebugState","BASE_ENDPOINT","EXCHANGE_DEBUG_TOKEN_METHOD","TOKEN_REFRESH_TIME","OFFSET_DURATION","RETRIAL_MIN_WAIT","RETRIAL_MAX_WAIT","retryPolicy","getWaitDuration","pending","nextErrorWaitInterval","isRunning","hasSucceeded","Deferred","getNextRun","currentErrorWaitInterval","getRecaptcha","ensureActivated","formatDummyToken","tokenErrorData","exchangeToken","ttl","timeToLiveAsNumber","attestationToken","expireTimeMillis","issuedAtTimeMillis","getExchangeRecaptchaTokenRequest","reCAPTCHAToken","recaptcha_token","getExchangeDebugTokenRequest","debugToken","debug_token","DB_NAME","DB_VERSION","STORE_NAME","DEBUG_TOKEN_KEY","getDBPromise","readTokenFromIndexedDB","computeKey","Logger","writeTokenToStorage","writeTokenToIndexedDB","readOrCreateDebugTokenFromStorage","existingDebugToken","newToken","getDebugToken","defaultTokenErrorData","cachedTokenPromise","cachedToken","notifyTokenListeners","tokenFromDebugExchange","interopTokenResult","makeDummyTokenResult","addTokenListener","tokenListener","tokenRefresher","Refresher","nextRefreshTimeMillis","latestAllowableRefresh","createTokenRefresher","isTokenAutoRefreshEnabled","removeTokenListener","newObservers","tokenObserver","ignored","RECAPTCHA_URL","siteKey","initialized","reCAPTCHAState","divId","invisibleDiv","renderInvisibleWidget","loadReCAPTCHAScript","recaptcha","widgetId","sitekey","_siteKey","_platformLoggerProvider","getReCAPTCHAToken","attestedClaimsToken","initializeRecaptcha","_customProviderOptions","customToken","issuedAtTimeSeconds","siteKeyOrProvider","readTokenFromStorage","ReCaptchaV3Provider","CustomProvider","setTokenAutoRefreshEnabled","getTokenInternal","onTokenChanged","onNextOrObserver","onCompletion","nextFn","errorFn","ReCaptchaV3ProviderImpl","CustomProviderImpl","globals","FIREBASE_APPCHECK_DEBUG_TOKEN","debugState","deferredToken","_getCoordinateKeys2","lon","coords","distanceFn","points","stats","maxLat","minLat","maxLng","minLng","diffLon","diffPhi","lineStart","lineEnd","d1","d2","d3","beta","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","accidentalStrictMode","Share","share","ImageBackground","imageStyle","imageRef","autoCapitalize","autoComplete","autoCorrect","maxLength","rows","spellCheck","focusTimeout","inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","clearTextOnFocus","_props$editable","_props$keyboardType","keyboardType","_props$multiline","_props$numberOfLines","onChangeText","onSelectionChange","onSubmitEditing","returnKeyType","_props$secureTextEntr","selectTextOnFocus","handleContentSizeChange","newHeight","newWidth","imperativeRef","selectionEnd","selectionStart","isSelectionStale","setSelectionRange","setSelection","textinput","enterKeyHint","shouldBlurOnSubmit","isComposing","isEventComposing","onSelect","TouchableWithoutFeedback","elementProps","MemoedTouchableWithoutFeedback","useWindowDimensions","dims","setDims","debugMessage","outdatedComputeImagesMaxWidth","outdatedAlterChildren","outdatedAlterData","outdatedAlterNode","outdatedIgnoreNodesFunction","outdatedUriProp","outdatedHtmlProp","outdatedListPrefixRenderersProps","outdatedImagesDimensions","outdatedOnLinkPressProp","outdatedEnableExperimentalPercentWidth","outdatedTriggerTREInvalidation","noSource","customizeHTMLModels","defaultModels","fontMap","TRenderEngine","cssProcessorConfig","isFontSupported","inlinePropertiesBlacklist","inlinePropertiesWhitelist","stylesConfig","cloneNode","isDirective","DataNode","nodeTypes","recursive","cloneChildren","clone_1","clone_2","clone_3","instruction","sourceCodeLocation","childs","_interopDefault","parse__default","camelizeStyleName","cssColorKeywords","hexColorRe","cssFunctionNameRe","noopToken","regExpToken","regExp","SPACE","SLASH","COMMA","WORD","AUTO","LENGTH","UNSUPPORTED_LENGTH_UNIT","ANGLE","PERCENT","IDENT","STRING","charCode","COLOR","LINE","BORDER_STYLE","directionFactory","_ref$types","_ref$directions","_ref$prefix","_ref$suffix","tokenStream","expect","hasTokens","expectEmpty","_values$","_values$2","_values$3","keyFor","parseShadowOffset","parseShadow","didParseFirst","lastValue","saveRewindPoint","rewind","FLEX_WRAP","FLEX_DIRECTION","NORMAL","STYLE","WEIGHT","VARIANT","defaultFontVariant","ALIGN_CONTENT","JUSTIFY_CONTENT","STYLE$1","tokenType","functionStream","singleNumber","singleLength","singleAngle","xyTransformFactory","valueIfOmitted","xyNumber","xyLength","xyAngle","partTransforms","translate","skewX","skewY","skew","partsParsed","_parseShadow","numStyleWeightVariantMatched","fontFamily$1","placeContent","_parseShadow2","expectFunction","functionName","transformedValues","SYMBOL_MATCH","TokenStream","rewindIndex","matchesFunction","numberOrLengthRe","boolRe","nullRe","undefinedRe","transformRawValue","numberMatch","boolMatch","transformShorthandValue","ast","allowShorthand","isRawValue","getPropertyName","shorthandBlacklist","accum","validationMap","processedProps","fillProcessedProps","compatCategories","displayCategories","propagationCategories","newCompatCategory","emptyProps","withProperty","propertyValue","compatCategory","displayCategory","propagationCategory","isNotEmpty","overriders","filtered","compat","propagation","new","$$empty","emptySymbol","isShorthand","translatable","inheritable","_isShorthand","fontName","LongNonPercentSizeCSSPropertyValidator","LongEnumerationCSSPropertyValidator","allowedList","LongForgivingCSSPropertyValidator","ShortCSSToReactNativeValidator","ShortMergeRequest","cmMultiplicator","inchMultiplicator","ptMultiplicator","defaultCSSProcessorConfig","absoluteBorderWidthsPixelMap","thick","absoluteFontSizesPixelMap","relativeFontSizesCoefficientMap","larger","smaller","_arity","_pipe","tail","a0","a3","a4","a5","a6","a7","a8","a9","_isArray","methodname","isChildEmpty","TPhrasingCtor","childK","collapseWhiteSpaces","normalizeWhitespaces","replaceSegmentBreaks","normalizeZeroWidthWhitespaces","removeConsecutiveSegmentBreaks","removeCollapsibleAroundSegmentBreak","collapseWhiteSpacesWithEastAsianCharset","removeLineBreaksAroundEastAsianDiscardSet","TTextCtor","textNode","Parser","Tokenizer_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","openTagStart","tagname","attribname","attribvalue","foreignContext","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","getAbsoluteIndex","isVoidElement","onopentagname","emitOpenTag","impliesClose","endOpenTag","isImplied","onopentagend","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","getAbsoluteSectionStart","onattribdata","onattribend","onattribute","getInstructionName","ondeclaration","name_1","name_2","oncdata","_h","_j","_k","recognizeCDATA","parseComplete","chunk","parseChunk","decode_codepoint_1","decode_1","isWhitespace","isEndOfTagSection","Sequences","Cdata","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","sectionStart","bufferOffset","baseState","isSpecial","running","ended","sequenceIndex","trieIndex","trieCurrent","trieResult","entityExcess","entityTrie","xmlDecodeTree","htmlDecodeTree","currentSequence","stateText","fastForwardTo","getSection","stateSpecialStartSequence","isEnd","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","stateInDeclaration","stateInCommentLike","isTagStartChar","isASCIIAlpha","startSpecial","stateBeforeTagName","lower","stateBeforeAttributeName","stateBeforeClosingTagName","stateAfterClosingTagName","stateInSelfClosingTag","stateInAttributeName","stateAfterAttributeName","stateBeforeAttributeValue","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","stateBeforeDeclaration","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","stateInNamedEntity","determineBranch","emitNamedEntity","BinTrieFlags","HAS_VALUE","allowLegacyEntity","entityStart","emitPartial","MULTI_BYTE","stateBeforeNumericEntity","stateInNumericEntity","decodeNumericEntity","numberStart","entity","stateInHexEntity","shouldContinue","handleTrailingData","decodeMap","fromCodePoint","parseFeed","FeedHandler","getFeed","domutils_1","Parser_1","feed","getText","getInnerHTML","getOuterHTML","dom_serializer_1","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1","legacy_json_1","xml_json_1","strictEntityRe","getStrictDecoder","getReplacer","sorter","secondChar","legacy","replacer","escapeUTF8","encodeNonAsciiHTML","encodeHTML","encodeXML","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverse","inverseHTML","htmlReplacer","single","reNonASCII","singleCharReplacer","getCodePoint","codePointAt","reEscapeChars","findAll","existsOne","findOne","findOneChild","recurse","nodes_1","getElementsByTagType","getElements","testElement","querying_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","attrib","combineFuncs","compileTest","UA_ANCHOR_COL","UA_GRAY","bigMarginTopBottomStyle","lineThroughStyle","italicStyle","monoStyle","boldStyle","spacedBlockStyle","anchorStyle","leftBorderQuoteStyle","dottedUnderlineStyle","solidUnderlineStyle","listStyles","preStyles","marginSize","getReactNativePropsForHeading","getReactNativePropsWithHref","sectioningModelMap","aside","footer","h1","h2","h3","h4","h5","h6","hgroup","unsupportedModelMap","area","attribsModelMap","accesskey","caption","col","colgroup","datalist","optgroup","option","interactiveModelMap","fieldset","legend","meter","dialog","textarea","metadataModelMap","untranslatableModelMap","groupingModelMap","figcaption","menu","olNestLevel","pre","xmp","listing","plaintext","ulNestLevel","tabularModelMap","table","tbody","tfoot","thead","renderedEmbeddedModelMap","img","picture","emptyEmbeddedModelMap","audio","embed","iframe","math","video","editsModelMap","ins","edits","del","textLevelModelMap","big","strike","cite","dfn","acronym","ruby","rp","var","samp","kbd","sup","bdi","bdo","wbr","childrenRendererContext","renderHTMLConfigPropTypes","enableExperimentalBRCollapsing","enableExperimentalMarginCollapsing","remoteErrorView","remoteLoadingView","WebView","GenericPressable","defaultWebViewProps","pressableHightlightColor","provideEmbeddedHeaders","RenderHTMLConfigProvider","useAmbientTRenderEngine","sourceLoaderConfig","defaultRenderError","defaultRenderLoading","getHTMLElementsModels","DEFAULT_PRESSABLE_RIPPLE_COLOR","DEFAULT_TEXT_COLOR","useTNodeChildrenProps","disableMarginCollapsing","renderChild","shouldCollapseChildren","isCollapsible","tchildren","mapCollapsibleChildren","childTnode","renderIndex","renderLength","useAElementProps","syntheticAnchorOnLinkPress","normalizedHref","useAnchorOnLinkPress","TDefaultRenderer","punycode","maxInt","tMin","tMax","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","ucs2decode","ucs2encode","digitToBasic","digit","adapt","numPoints","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","_IPv6","IPv6","best","_segments","_best","inzeroes","noConflict","_SecondLevelDomains","SecondLevelDomains","SLD","domain","tldOffset","sldOffset","sldList","specifiedDimensions","nomalizedSource","naturalDimensions","onNaturalDimensions","setNaturalDimensions","cachedNaturalWidth","cachedNaturalHeight","setError","useImageNaturalDimensions","hasCachedDimensions","cancelled","onImageDimensionsSuccess","getSizeWithHeaders","getImageSizeAsync","useFetchedNaturalDimensions","concreteDimensions","getIMGState","cachedDimensions","printWidth","printHeight","flattenStyles","specifiedWidth","specifiedHeight","horizontalSpace","leftMargin","rightMargin","extractHorizontalSpace","imagesMaxWidth","minBox","maxBox","computeConcreteDimensions","scaleUp","minDimensions","desiredDimensions","scaleDown","maxDimensions","originalBox","enablePercentWidth","normalizeOptionsWidth","containerDimension","normalizeOptionsHeight","widthProp","normalizeSize","heightProp","deriveSpecifiedDimensionsFromProps","onImageError","defaultImageStyle","remainingStyle","UserProvidedPressable","TouchableNativeFeedback","useForeground","Ripple","altBox","altText","contentWidthContext","getFallbackListStyleTypeFromNestLevel","nestLevel","useOLElementProps","OLElement","ListElement","listType","providedMarkerTextStyle","enableExperimentalRtl","enableRemoveTopMarginIfNested","enableRemoveBottomMarginIfNested","enableDynamicMarkerBoxWidth","listStyleSpecs","useListStyleSpecs","useTChildrenRenderer","removeTopMarginStyle","zeroMarginTop","removeBottomMarginStyle","zeroMarginBottom","ownListType","listStyleType","selectedListType","listStyleTypeFallbackRecord","parsedIndex","getStartIndex","extractMarkerTextStyle","itemProps","markerWidth","fixedPaddingRule","paddingValue","markerBoxWidthStyle","getMarkerBoxStyle","dynamicPaddingStyle","shrink","pickMarkerTextStyles","listStyleSpecsContext","mergedListStyleSpecs","makeMarkerRenderers","createSymbolicMarkerRenderer","renderPrefix","renderSuffix","mapObjIndexed","useULElementProps","ULElement","alignCenter","errorText","renderSourcePropTypes","html","onTTreeChange","onHTMLLoaded","RawSourceLoader","isEmptySource","SourceLoaderUri","SourceLoaderDom","SourceLoaderInline","shallowEqual","prop1","prop2","RenderHTMLSource","ttreeEvents","prevSource","currSource","subset","charactersToExpression","escapeOnly","character","numeric","useNamedReferences","useShortestReferences","toNamed","omitOptionalSemicolons","attribute","toHexadecimal","colorNames","swizzle","reverseNames","clamp","hexDouble","hexAlpha","i2","hwba","cssKeywords","reverseKeywords","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","rdif","gdif","bdif","diffc","currentClosestKeyword","currentClosestDistance","t1","t3","smin","lmin","vmin","z2","ansi","char","integer","pure","isMergeableObject","isNonNullObject","isReactElement","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","getKeys","mergeObject","destination","arrayMerge","sourceIsArray","warnOnce","saturation","SyntaxError","hexTable","arrayToObject","plainObjects","combine","compact","compacted","compactQueue","decoder","strWithoutPlus","unescape","defaultEncoder","$0","maybeMap","mapped","allowPrototypes","mergeTarget","targetItem","displayEvent","notificationId","getNotification","OSNotification","receivedEvent","sound","launchURL","rawPayload","actionButtons","additionalData","ledColor","smallIcon","largeIcon","bigPicture","collapseId","groupMessage","fromProjectNumber","smallIconAccentColor","lockScreenVisibility","androidNotificationId","badge","threadId","subtitle","templateId","templateName","mutableContent","badgeIncrement","contentAvailable","relevanceScore","interruptionLevel","displayNotification","filterUniqueArray","assignStyle","baseValue","DASH","MS","toUpper","camelCaseProperty","hyphenateProperty","cssifyDeclaration","cssifyObject","isPrefixedProperty","unitlessProperties","prefixedUnitlessProperties","jLen","_property","isUnitlessProperty","unprefixProperty","propertyWithoutPrefix","normalizeProperty","resolveArrayValue","unprefixValue","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","rootTag","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","getAppKeys","getApplication","appKey","appParameters","componentProvider","RootComponent","getStyleElement","dangerouslySetInnerHTML","__html","shouldHydrate","hydrate","renderApplication","registerConfig","registerRunnable","runApplication","setComponentProviderInstrumentationHook","hook","setWrapperComponentProvider","unmountApplicationComponentAtRootTag","TouchHistoryMath","centroidDimension","touchesChangedAfter","isXAxis","ofCurrent","oneTouchData","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","y0","vx","vy","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","shouldCancelClick","stateID","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","getInteractionHandle","getAttachedChildren","trailingChildren","marginProp","leftElemProp","rightElemProp","trailingChildrenWithSpacing","InputGroup","firstChildProps","lastChildProps","supplyPropsToChildren","isOptionObject","defaultMergeOptions","getEnumerableOwnPropertyKeys","cloneArray","cloneOptionObject","mergeKeys","merged","resultIndex","_localizedStrings2","placeholderRegex","formatString","valuesForPlaceholders","hasObject","textPart","matchedKey","valueForPlaceholder","valueFromObjectPlaceholder","TRACING_DEFAULTS","idleTimeout","finalTimeout","heartbeatInterval","IDLE_TRANSACTION_FINISH_REASONS","IdleTransactionSpanRecorder","_pushActivity","_popActivity","transactionSpanId","originalEnd","IdleTransaction","_idleHub","_finalTimeout","_heartbeatInterval","_onScope","delayAutoFinishUntilSignal","activities","_heartbeatCounter","_finished","_idleTimeoutCanceledPermanently","_beforeFinishCallbacks","_finishReason","_autoFinishAllowed","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","currentElem","MAX_TRAVERSE_HEIGHT","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","dataset","keyAttrPairs","keyAttr","keyAttrPair","memoBuilder","hasWeakSet","isBrowserBundle","__SENTRY_BROWSER_BUNDLE__","supportsFetch","Response","isNativeFetch","supportsNativeFetch","EdgeRuntime","sandbox","SentryError","SENTRY_API_VERSION","getBaseApiEndpoint","getSDKSource","RNRestart","alternativeValues","flexShorthandMappings","msFlex","logTag","flexValues","unset","WebkitBoxDirection","grad","sliceIterator","isSimplePositionValue","isComplexSpanValue","displayValues","propertyConverters","propertyConverter","alignmentValues","msGridRowAlign","msGridColumn","_value$split","_value$split2","_end$split","_end$split2","maybeSpan","maybeNumber","msGridColumnSpan","msGridRow","_value$split3","_value$split4","_end$split3","_end$split4","msGridRowSpan","gridTemplateColumns","msGridColumns","gridTemplateRows","msGridRows","msGridColumnAlign","TurboModuleRegistry","_config$deceleration","_deceleration","deceleration","_velocity","ReactNoopUpdateQueue","updater","Info","any_blank_count","any_blank_ms","any_blank_speed_sum","mostly_blank_count","mostly_blank_ms","pixels_blank","pixels_sampled","pixels_scrolled","total_time_spent","sample_count","_minSampleCount","_sampleRate","_anyBlankStartTime","_enabled","_info","_mostlyBlankStartTime","_samplesStartTime","_resetData","setSampleRate","setMinSampleCount","minSampleCount","scrollSpeed","blankTop","firstFrame","blankBottom","bottomEdge","blankness","allNamedReferences","named_references_1","html5","replaceUsingRegExp","macroText","macroRegExp","macroReplacer","replaceResult","replaceMatch","replaceLastIndex","replaceInput","encodeRegExps","specialChars","nonAscii","nonAsciiPrintable","nonAsciiPrintableOnly","extensive","defaultEncodeOptions","encodeRegExp","references","isHex","surrogate_pairs_1","defaultDecodeOptions","baseDecodeRegExps","xml","html4","decodeRegExps","outOfBoundsChar","defaultDecodeEntityOptions","getDecodedEntity","isAttribute","decodeResult","decodeEntityLastChar","decodeResultByReference","decodeSecondChar","decodeCode","numeric_unicode_map_1","entities","decodeRegExp","createThunkMiddleware","extraArgument","withExtraArgument","rootComponentName","providerProps","consumerName","FUNC_ERROR_TEXT","UNORDERED_COMPARE_FLAG","PARTIAL_COMPARE_FLAG","arrayTag","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","arrayBufferTag","arraySome","mapToArray","setToArray","symbolValueOf","castPath","baseHasIn","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIteratee","isStrictComparable","matchesStrictComparable","hasFunc","hasPath","hasIn","baseMatchesProperty","matchData","getMatchData","noCustomizer","baseIsMatch","baseMatches","basePropertyDeep","seen","arrValue","othIndex","baseKeys","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","cloneableTags","addMapEntry","addSetEntry","arrayReduce","initAccum","baseClone","isFull","initCloneArray","copySymbols","baseAssign","cloneFunc","dataView","cloneDataView","cloneMap","regexp","cloneRegExp","cloneSet","initCloneByTag","arrayEach","subValue","leading","maxWait","trailing","padEnd","regions","iso2","countryCode","dialCode","isAreaCode","areaCodeLength","mainCode","hasAreaCodes","filterRegions","sortTerritories","getFilteredCountryList","localizeCountries","localName","getCustomAreas","excludeCountries","onlyCountries","preferredCountries","hiddenAreaCodes","getProbableCandidate","guessSelectedCountry","enableAreaCodes","updateCountry","selectedCountry","formattedNumber","disableCountryCode","formatNumber","dropdownRef","enableSearch","scrollToTop","enableAreaCodeStretch","enableLongNumbers","autoFormat","remainingText","formattedText","cursorToEnd","numberInputRef","getElement","getCountryData","handleFlagDropdownClick","showDropdown","concatPreferredCountries","highlightCountryIndex","handleInput","freezeSelection","countryCodeEditable","country","disableCountryGuess","handleInputClick","handleDoubleClick","handleFlagItemClick","searchValue","handleInputFocus","jumpCursorToEnd","handleInputBlur","handleInputCopy","copyNumbersOnly","clipboardData","getHighlightCountryIndex","getSearchFilteredCountries","searchCountry","handleKeydown","ENTER","ESC","TAB","debouncedQueryStingSearcher","handleInputKeyDown","onEnterKeyPress","handleClickOutside","dropdownContainerRef","handleSearchChange","getDropdownCountryName","getCountryDropdownList","disableDropdown","searchNotFound","disableSearchIcon","searchClass","searchStyle","searchPlaceholder","autocompleteSearch","preferred","hide","dropdownClass","dropdownStyle","enableTerritories","preserveOrder","masks","areaCodes","localization","defaultMask","alwaysDefaultMask","disableInitialCountryGuess","enableClickOutside","onMount","updateFormattedNumber","renderStringAsFlag","defaultErrorMessage","specialLabel","containerClass","arrow","up","buttonClass","inputStyle","onDoubleClick","onCopy","buttonStyle","flagsImagePath","PLUS","EE","_eventsCount","clearEvent","eventNames","_ref$libraries","libraries","_ref$googleMapsScript","googleMapsScriptBaseUrl","GOOGLE_MAP_SCRIPT_BASE_URL","_ref$debounce","sessionToken","languageQueryParam","googleMapsScriptUrl","placePredictions","setPlacePredictions","_useState4","isPlacePredsLoading","setIsPlacePredsLoading","_useState6","placeInputValue","setPlaceInputValue","_useState8","isQueryPredsLoading","setIsQueryPredsLoading","_useState10","queryInputValue","setQueryInputValue","_useState12","queryPredictions","setQueryPredictions","placesAutocompleteService","placesService","autocompleteSession","handleLoadScript","_utils","loadGoogleMapScript","debouncedPlacePredictions","_lodash","optionsArg","getPlacePredictions","debouncedQueryPredictions","getQueryPredictions","buildService","google","maps","AutocompleteService","PlacesService","AutocompleteSessionToken","autocompleteSessionToken","isPlacePredictionsLoading","opt","isQueryPredictionsLoading","refreshSessionToken","modalPresentation","qrcodegen","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__objRest","qrcodegen2","_QrCode","errorCorrectionLevel","dataCodewords","msk","modules","MIN_VERSION","MAX_VERSION","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","encodeText","ecl","segs","QrSegment","makeSegments","encodeSegments","encodeBinary","seg","makeBytes","dataUsedBits","minVersion","maxVersion","boostEcl","dataCapacityBits2","getNumDataCodewords","usedBits","getTotalBits","newEcl","Ecc","MEDIUM","QUARTILE","HIGH","appendBits","modeBits","numChars","numCharCountBits","getData","dataCapacityBits","padByte","getModule","getModules","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","formatBits","getBit","xx","ver","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","blocks","rsDiv","reedSolomonComputeDivisor","ecc","reedSolomonComputeRemainder","vert","invert","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","sum","PENALTY_N4","degree","reedSolomonMultiply","factor","coef","core","currentRunColor","currentRunLength","QrCode","cond","_QrSegment","bitData","Mode","BYTE","makeNumeric","digits","isNumeric","NUMERIC","makeAlphanumeric","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","toUtf8ByteArray","makeEci","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","ccbits","QrCode2","_Ecc","LOW","QrSegment2","_Mode","numBitsCharCount","KANJI","qrcodegen_default","ERROR_LEVEL_MAP","DEFAULT_SIZE","DEFAULT_LEVEL","DEFAULT_BGCOLOR","DEFAULT_FGCOLOR","DEFAULT_INCLUDEMARGIN","MARGIN_SIZE","DEFAULT_IMG_SCALE","generatePath","cell","excavateModules","excavation","getImageSettings","includeMargin","imageSettings","numCells","defaultSize","excavate","floorX","floorY","SUPPORTS_PATH2D","Path2D","addPath","QRCodeCanvas","fgColor","imgSrc","_canvas","isImgLoaded","setIsImageLoaded","calculatedImageSettings","haveImageToRender","pixelRatio","fillStyle","fillRect","rdx","cdx","drawImage","canvasStyle","aStackPool","bStackPool","aStack","bStack","objToStr","ignoreCase","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","_excluded","cacheBabelInterop","cacheNodeInterop","_createSuper","Derived","hasNativeReflectConstruct","sham","_isNativeReflectConstruct","Super","NewTarget","isStyleObject","SingleOtpInput","isInputSecure","isInputNum","createRef","shouldAutoFocus","inputEl","isLastChild","hasErrored","errorStyle","focusStyle","disabledStyle","getClasses","getType","OtpInput","_Component","_super2","activeInput","_this2$props","numInputs","otp","focusInput","getOtpValue","handleOtpChange","_this2$props2","nextActiveInput","pastedData","isInputValueValid","changeCodeAtFocus","focusPrevInput","focusNextInput","handleOnPaste","inputType","_this2$props3","inputs","getPlaceholderValue","dataCy","dataTestId","handleOnChange","handleOnKeyDown","onInput","handleOnInput","onPaste","renderInputs","ariaLabelledby","labelElementType","labelId","labelProps","isBool","skipCanOpen","canOpen","openLink","sendEmail","bcc","subject","checkCanOpen","toStr","awareOfUnicodeTokens","__localeId__","__localeData__","minDate","maxDate","excludeDates","excludeDateIntervals","includeDates","includeDateIntervals","filterDate","excludeTimes","includeTimes","filterTime","minTime","maxTime","holidayName","holidayNames","startPeriod","endPeriod","yearsList","incrementYears","decrementYears","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","ariaSelected","renderOptions","dropdownVisible","onSelectChange","renderSelectOptions","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","setOpen","dropdownMode","renderScrollMode","renderSelectMode","monthNames","isSelectedMonth","useShortMonthInDropdown","monthYearsList","scrollableMonthYearDropdown","disabledKeyboardNavigation","isSameDay","selected","isSameWeek","preSelection","calendarStartDay","showWeekPicker","highlightDates","holidays","startDate","endDate","selectsStart","selectsEnd","selectsRange","selectsDisabledDaysInRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isCurrentDay","isWeekend","isAfterMonth","isBeforeMonth","getHighLightedClass","getHolidaysClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","showWeekNumber","isStartOfWeek","getTabIndex","isInputFocused","shouldFocusDayInline","containerRef","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","dayEl","renderDayContents","getClassNames","handleMouseEnter","getAriaLabel","getTitle","handleFocusDay","weekNumberEl","handleFocusWeekNumber","weekNumber","ariaLabelPrefix","onDayClick","onDayMouseEnter","onWeekSelect","handleDayClick","shouldCloseOnSelect","formatWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayMouseEnter","renderDays","verticalNavigationOffset","orderInDisplay","isInSelectingRangeMonth","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthClick","handleMonthNavigation","QUARTER_REFS","onQuarterClick","handleQuarterNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isSelectingMonthRangeStart","isSelectingMonthRangeEnd","isCurrentMonth","isSelectedQuarter","isInSelectingRangeQuarter","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","renderMonthContent","renderQuarterContent","onMonthKeyDown","onMonthMouseEnter","getMonthClassNames","getMonthContent","onQuarterKeyDown","onQuarterMouseEnter","getQuarterClassNames","getQuarterTabIndex","isCurrentQuarter","getQuarterContent","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","centerLi","calcCenterPosition","monthRef","timeClassName","isSelectedTime","isDisabledTime","injectTimes","intervals","openToDate","liClasses","scrollToTheSelectedTime","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","yearItemNumber","YEAR_REFS","updateFocusOnPaginate","handleYearClick","onYearClick","handleYearNavigation","isCurrentYear","renderYearContent","onYearMouseEnter","onYearMouseLeave","onYearKeyDown","getYearTabIndex","getYearClassNames","getYearContent","getYearContainerClassNames","clearSelectingDate","timeString","customTimeInput","timeInputLabel","renderTimeInput","showPopperArrow","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","isRenderAriaLiveMessage","handleCustomMonthChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthButtonLabel","previousYearButtonLabel","previousMonthAriaLabel","previousYearAriaLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthButtonLabel","nextYearButtonLabel","nextMonthAriaLabel","nextYearAriaLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","handleTodayButtonClick","monthDate","renderCurrentMonth","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","monthAriaLabelPrefix","handleOnDayKeyDown","handleMonthMouseLeave","handleYearMouseEnter","handleYearMouseLeave","timeIntervals","withPortal","showTimeInput","getDateInView","assignMonthContainer","renderAriaLiveRegion","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","xmlns","portalRoot","portalHost","portalId","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","popperOnKeyDown","Popper","popperContainer","getPreSelection","startOpen","preventFocus","preventFocusTimeout","cancelFocusInput","calcInitialState","lastPreSelectChange","setBlur","preventOpenOnFocus","clearPreventFocusTimeout","setFocus","inputFocusTimeout","onChangeRaw","strictParsing","sendFocusBackToInput","showDateSelect","allowSameDay","focusSelectedMonth","onInputClick","componentNode","inputOk","handleSelect","onInputError","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","modifyHolidays","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","onInputKeyDown","placeholderText","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","onCalendarOpen","onCalendarClose","showIcon","calendarIconClassname","toggleCalendarOnIconClick","toggleCalendar","renderDateInput","renderClearButton","renderCalendar","onPortalKeyDown","renderInputContainer","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","cookie","expires","daysHidden","daysReminder","onInstall","setType","ignoreIosVersion","vender","setSettingsByType","appMeta","iconRels","getStoreLink","appStoreLanguage","windows","kindle","parseAppId","price","storeText","inStore","show","retrieveInfo","author","lowerize","rgx","oldsafari","amazon","sprint","HTC","Sprint","ME","XP","Vista","RT","getResult","BROWSER","NAME","MAJOR","CPU","ARCHITECTURE","DEVICE","MODEL","VENDOR","TYPE","CONSOLE","MOBILE","SMARTTV","TABLET","WEARABLE","EMBEDDED","ENGINE","jQuery","Zepto","useBackButton","useDocumentTitle","useThenable","LinkingContext","ThemeProvider","isMeasurementValue","_startChild","MAX_INT_AS_BYTES","msToSec","getBrowserPerformanceAPI","_lcpEntry","_clsEntry","_performanceCursor","startTrackingWebVitals","fidCallback","clsCallback","lcpCallback","transactionStartTime","instrumentFetch","originalFetch","fetchArgs","getUrlFromResource","hasProp","parseFetchArgs","fetchData","finishedHandlerData","erroredHandlerData","SENTRY_XHR_DATA_KEY","instrumentXHR","xhrproto","originalOpen","request_headers","__sentry_own_request__","onreadystatechangeHandler","xhrInfo","status_code","readyStateArgs","setRequestHeaderArgs","originalSend","sentryXhrData","instrumentFetchRequest","shouldCreateSpan","shouldAttachHeaders","spanOrigin","shouldCreateSpanResult","__span","contentLengthNum","requestSpan","existingBaggageHeader","newBaggageHeaders","DEFAULT_TRACE_PROPAGATION_TARGETS","defaultRequestInstrumentationOptions","traceFetch","traceXHR","enableHTTPTimings","tracingOrigins","tracePropagationTargets","instrumentOutgoingRequests","shouldCreateSpanForRequest","shouldAttachHeadersWithTargets","addFetchInstrumentationHandler","createdSpan","addHTTPTimings","__sentry_xhr_span_id__","xhrCallback","initiatorType","isPerformanceResourceTiming","resourceTiming","extractNetworkProtocol","timingSpanData","getAbsoluteTime","redirectStart","fetchStart","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","resourceTimingEntryToSpanData","lastHref","instrumentHistory","isChromePackagedApp","hasHistoryApi","history","pushState","replaceState","supportsHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","BROWSER_TRACING_INTEGRATION_ID","DEFAULT_BROWSER_TRACING_OPTIONS","markBackgroundTransactions","routingInstrumentation","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","pathname","addHistoryInstrumentationHandler","enableLongTask","_experiments","getMetaContent","metaName","metaTag","_optionalChain","lastAccessLHS","shouldDisableAutoInstrumentation","clientOptions","useNestjs","_useNest","loadDependency","_module","setupOnce","pkg","GraphQLFactory","orig","resolversExplorerService","instrumentResolvers","ApolloServerBase","resolvers","resolverGroupName","resolverName","wrapResolver","extractPathForTransaction","req","customRoute","_router","_methods","instrumentMiddlewares","layer","numExtraSegments","tempCounter","instrumentRouter","__sentry_transaction","startOffset","rv","OPERATIONS","OPERATION_SIGNATURES","bulkWrite","countDocuments","createIndexes","deleteMany","deleteOne","distinct","dropIndex","findOneAndDelete","findOneAndReplace","findOneAndUpdate","indexExists","insertMany","insertOne","mapReduce","rename","replaceOne","updateMany","updateOne","_operations","operations","_describeOperations","describeOperations","_useMongoose","useMongoose","_instrumentOperations","Collection","_patchOperation","getSpanContext","_getSpanContextFromOperationArguments","lastArg","maybePromiseOrCursor","maybeCursor","dbName","collectionName","shouldDescribe","mySqlConfig","connect","wrappingTarget","finishSpan","sql","_usePgNative","usePgNative","Client","possibleClient","_sentryInstrumented","clientData","engineConfig","_engineConfig","activeProvider","clientVersion","$use","_hasSetTracePropagationTargets","_collectWebVitals","enableInteractions","_getCurrentHub","instrumentRouting","clientOptionsTracePropagationTargets","_createRouteTransaction","onStartRouteTransaction","statusType","_registerInteractionListener","beforeNavigate","isPageloadTransaction","expandedContext","sentryTrace","baggage","modifiedContext","finalContext","_latestRouteName","_latestRouteSource","sourceFromAttributes","sourceFromData","sourceFromMetadata","idleTransaction","sendAutoFinishSignal","registerBeforeFinishCallback","addPerformanceEntries","inflightInteractionTransaction","registerInteractionTransaction","currentTransaction","setFinishReason","addExtensionMethodsT","getActiveTransactionT","extractTraceparentDataT","spanStatusfromHttpCodeT","TransactionT","SpanT","hasTracingEnabledT","stripUrlQueryAndFragmentT","TRACEPARENT_REGEXP_T","IdleTransactionT","startIdleTransactionT","SpanStatusT","forceTouchAvailable","baseProps","ForceTouchFallback","minDeltaX","activeOffsetX","failOffsetX","minDeltaY","activeOffsetY","failOffsetY","validatePanGestureHandlerProps","transformPanGestureHandlerProps","nativeViewProps","NATIVE_WRAPPER_PROPS_FILTER","createNativeWrapper","ComponentWrapper","gestureHandlerProps","_gestureHandlerRef","RawButton","BaseButton","lastActive","onActiveStateChange","rippleColor","AnimatedBaseButton","btnStyles","RectButton","BorderlessButton","TOUCHABLE_STATE","GenericTouchable","onMoveIn","onMoveOut","moveToState","STATE","handlePressIn","shouldCallOnPress","longPressDetected","pressOutTimeout","handleGoToUndetermined","pressInTimeout","longPressTimeout","onLongPressDetected","handleMoveOutside","coreProps","accessibilityHint","extraButtonProps","childStyle","getChildStyleOpacityWithDefault","_from","extraChildStyle","extraUnderlayStyle","RNScrollView","RNSwitch","RNTextInput","RNDrawerLayoutAndroid","positions","Swipeable","overshootFriction","dragX","rowTranslation","leftWidth","rowWidth","rightOffset","rightWidth","overshootLeft","overshootRight","transX","showLeftAction","leftActionTranslate","MIN_VALUE","showRightAction","rightActionTranslate","handleRelease","rowState","leftThreshold","rightThreshold","startOffsetX","currentOffset","animateRow","useNativeAnimations","animationOptions","onSwipeableLeftOpen","onSwipeableRightOpen","onSwipeableClose","onSwipeableOpen","onSwipeableLeftWillOpen","onSwipeableRightWillOpen","onSwipeableWillClose","onSwipeableWillOpen","updateAnimatedEvent","UNSAFE_componentWillUpdate","renderLeftActions","renderRightActions","leftActions","rightActions","onRowLayout","onTapHandlerStateChange","childrenContainerStyle","DrawerLayout","drawerPosition","drawerWidth","drawerType","dragXValue","touchX","touchXValue","drawerTranslation","containerWidth","dragOffsetFromOnStartPosition","openValue","gestureOptions","onDrawerSlide","drawerWillShow","onDrawerStateChanged","emitStateChanged","hideStatusBar","statusBarAnimation","drawerShown","drawerLockMode","closeDrawer","gestureStartX","dragOffsetBasedOnStart","animateDrawer","showing","accessibilityIsModalView","pointerEventsView","minSwipeDistance","edgeWidth","fromLeft","gestureOrientation","panGestureHandler","nextFramePosition","willShow","updateShowing","onDrawerOpen","onDrawerClose","dynamicOverlayStyles","drawerBackgroundColor","drawerContainerStyle","drawerSlide","containerSlide","reverseContentDirection","dynamicDrawerStyles","containerStyles","drawerTranslateX","closedDrawerOffset","drawerStyles","handleContainerLayout","containerOnBack","containerInFront","importantForAccessibility","renderOverlay","drawerContainer","renderNavigationView","onGestureRef","setPanGestureRef","openingHandlerStateChange","renderDrawer","Left","Right","safeIsNaN","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","lastThis","lastResult","lastArgs","calledOnce","newArgs","cancelTimeout","timeoutID","requestTimeout","tick","getScrollbarSize","recalculate","cachedRTLResult","getRTLOffsetType","outerDiv","outerStyle","innerDiv","innerStyle","defaultItemKey","createListComponent","getItemOffset","getEstimatedTotalSize","getItemSize","getOffsetForIndexAndAlignment","getStartIndexForOffset","getStopIndexForStartIndex","initInstanceProps","shouldResetStyleCacheOnItemSizeChange","validateProps","_instanceProps","_outerRef","_resetIsScrollingTimeoutId","scrollDirection","initialScrollOffset","scrollUpdateWasRequested","_callOnItemsRendered","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","onItemsRendered","_callOnScroll","_getItemStyle","itemSize","itemStyleCache","_getItemStyleCache","isHorizontal","isRtl","offsetHorizontal","___","_onScrollHorizontal","_resetIsScrollingDebounced","_onScrollVertical","_outerRefSetter","outerRef","_resetIsScrolling","validateSharedProps","align","scrollbarSize","_callPropsCallbacks","innerRef","innerElementType","innerTagName","itemData","itemKey","outerElementType","outerTagName","useIsScrolling","_getRangeToRender","stopIndex","estimatedTotalSize","willChange","overscanCount","overscanBackward","overscanForward","FixedSizeList","instanceProps","lastItemOffset","maxOffset","minOffset","middleOffset","numVisibleItems","createMemoryHistory","interrupt","backIndex","pathWithHash","nextIndex","lastItemIndex","interrupted","onPopState","_window$history$state3","currentIndex","ServerContext","findMatchingState","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","series","useLinking","getStateFromPathDefault","getPathFromStateDefault","getActionFromStateDefault","enabledRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","thenable","previousIndexRef","previousStateRef","pendingPopStatePathRef","previousIndex","rootState","getPathForRoute","stateForPath","pendingPath","previousFocusedState","focusedState","historyDelta","GoogleMapMap","shouldComponentUpdate","registerChild","MarkerDispatcher","_EventEmitter","gmapInstance","getChildren","getMousePosition","mouse_","getUpdateCounter","updateCounter_","objA","objB","keysA","keysB","mainStyle","GoogleMapMarkers","_getState","dispatcher","updateCounter","_onChangeHandler","dimensionsCache_","prevChildCount","_onMouseChangeHandler","_onChildClick","onChildClick","hoverChildProps_","hoverKey_","_onChildMouseDown","onChildMouseDown","_onChildMouseEnter","hoverKey","childProps","onChildMouseEnter","_onChildMouseLeave","onChildMouseLeave","_onMouseAllow","allowMouse_","_onMouseChangeHandlerRaf","mp","distances","hoverDistance","getHoverDistance","childIndex","latLng","distanceToMouse","_getDimensions","experimental","mainElementStyle","$geoService","geoService","$onMouseAllow","$prerender","prerender","insideMapPanes","fromLatLngToDivPixel","fromLatLngToCenterPixel","stylePtPos","seLatLng","seLat","seLng","sePt","containerPt","fromLatLngToContainerPixel","$markerHolderClassName","$hover","$getDimensions","$dimensionKey","loader_","loadPromise_","resolveCustomPromise_","_customPromise","bootstrapURLKeys","heatmapLibrary","restKeys","Loader","LatLng","Transform","tileSize","minZoom","maxZoom","_minZoom","_maxZoom","latRange","zoomScale","scaleZoom","LN2","latlng","worldSize","lngX","latY","unproject","yLat","xLng","atan","locationPoint","centerPoint","pointLocation","bearing","_zoom","zoomV","tileZoom","zoomFraction","Geo","hasSize_","hasView_","transform_","setViewSize","setMapCanvasProjection","mapCanvasProjection","maps_","mapCanvasProjection_","canProject","hasSize","ptLatLng","fromContainerPixelToLatLng","ptXY","ptxy","ptRes","getWidth","getHeight","getZoom","roundFactor","bndT","bndR","bndB","bndL","topLeftCorner","bottomRightCorner","nativeRaf","webkitRequestAnimationFrame","mozRequestAnimationFrame","log2","detectBrowserResult_","detectBrowser","isExplorer","fnToString","addPassiveEventListener","passiveSupported","_window","stylesCreated","requestFrame","cancelFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","resetTriggers","__resizeTriggers__","firstElementChild","contract","lastElementChild","expandChild","scrollListener","__resizeRAF__","__resizeLast__","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","animationstring","IS_REACT_16","unstable_renderSubtreeIntoContainer","latLng2Obj","_checkMinZoom","GoogleMap","_getMinZoom","geoService_","tilesPerWidth","tilesPerHeight","maxTilesPerDim","_computeMinZoom","_mapDomResizeCallback","resetSizeOnIdle_","originalCenter","defaultCenter","currentCenter","map_","setCenter","resetBoundsOnResize","_setLayers","layerTypes","layerType","layers_","setMap","_renderPortal","_getHoverDistance","markersDispatcher_","_initMap","initialized_","propsCenter","defaultZoom","_onBoundsChanged","googleMapLoader","mounted_","centerLatLng","propsOptions","heatmap","visualization","HeatmapLayer","_ref2$weight","_ref3$options","mapPlainObjects","draggableOptions","minZoom_","preMapOptions","overviewMapControl","streetViewControl","rotateControl","mapTypeControl","featureType","stylers","defaultDraggableOption_","mapOptions","googleMapDom_","versionMatch","mapsVersion","this_","onAdd","K_MAX_WIDTH","K_MAX_HEIGHT","overlayViewDivStyle","getPanes","overlayMouseTarget","getProjection","onRemove","renderedOverlay","draw","debounced","googleApiLoadedCalled_","_onGoogleApiLoaded","_onChildMouseMove","fireMouseEventOnIdle_","overlay_","onTilesLoaded","_onTilesLoaded","zoomAnimationInProgress_","_onZoomAnimationStart","zoomControlClickTime_","_setViewSize","currMinZoom","_onZoomAnimationEnd","dragTime_","mouseInMap_","_onDrag","idleListener","_onDragEnd","_onMapTypeIdChange","getMapTypeId","onGoogleApiLoaded","onDrag","onDragEnd","onMapTypeIdChange","onZoomAnimationStart","onZoomAnimationEnd","childMouseDownArgs_","_onChildMouseUp","onChildMouseUp","childMouseUpTime_","onChildMouseMove","fullscreen","webkitIsFullScreen","mozFullScreen","msFullscreenElement","mapDom","_onWindowResize","_onMapMouseMove","currTime","mouseMoveTime_","boundingRect_","mousePosX","mousePosY","_onClick","_this$props12","_onMapClick","_onMapMouseDownNative","_onMapMouseDown","_onMapMouseDownCapture","_onKeyDownCapture","_isCenterDefined","callExtBoundsChange","gmC","onBoundsChange","bounds","arrayA","arrayB","eps","prevBounds_","marginBounds","centerIsObject_","nw","_registerChild","tempParentDiv","innerHTML","prevCenter","panTo","setZoom","layerKey","shouldUnregisterMapOnUnmount","scrollwheel","clearInstanceListeners","mapMarkerPrerender","GoogleMapMarkersPrerender","onMouseDownCapture","yesIWantToUseGoogleMapApiInternals","mousePos","CSSTransitions","MSTransition","OTransition","NativeSafeAreaProvider","onInsetsChange","getInset","createContextElement","getSupportedTransitionEvent","_supportedTransitionEvent","_supportedEnv","side","getSupportedEnv","SafeAreaInsetsContext","SafeAreaFrameContext","SafeAreaProvider","initialSafeAreaInsets","others","parentInsets","parentFrame","setInsets","setFrame","nextFrame","nextInsets","curFrame","curInsets","NO_INSETS_ERROR","Consumer","TRACEPARENT_REGEXP","traceparent","tracingContextFromHeaders","traceparentData","propagationContextFromHeaders","generateSentryTraceHeader","sampledString","__webpack_amd_options__","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isPureReactComponent","__self","_owner","ReactCurrentDispatcher","ReactCurrentBatchConfig","Profiler","StrictMode","Suspense","_currentValue","_currentValue2","_threadCount","_defaultValue","_globalName","_context","createFactory","lazy","_payload","_init","startTransition","unstable_act","useDeferredValue","useInsertionEffect","useTransition","AsyncMode","ConcurrentMode","ContextConsumer","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","setAttributeNS","xlinkHref","prepareStackTrace","_valueTracker","defaultChecked","_wrapperState","initialChecked","controlled","namespaceURI","MSApp","execUnsafeLocalFunction","nodeValue","gridArea","gridRowSpan","gridColumnSpan","menuitem","keygen","correspondingUseElement","alternate","dehydrated","sibling","unstable_scheduleCallback","unstable_cancelCallback","unstable_shouldYield","unstable_requestPaint","unstable_now","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_NormalPriority","unstable_LowPriority","unstable_IdlePriority","clz32","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","eventTimes","blockedOn","domEventName","eventSystemFlags","targetContainers","isDehydrated","containerInfo","_reactName","_targetInst","isPersistent","getModifierState","movementX","movementY","dataTransfer","elapsedTime","pseudoElement","Esc","Spacebar","Up","Down","Del","Win","Apps","Scroll","MozPrintableKey","Alt","Control","Meta","Shift","tangentialPressure","tiltX","tiltY","twist","wheelDelta","deltaZ","deltaMode","oninput","HTMLIFrameElement","contentEditable","focusedElem","selectionRange","rangeCount","anchorOffset","focusOffset","setStart","setEnd","animationend","animationiteration","animationstart","transitionend","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","getChildContext","__reactInternalMemoizedMergedChildContext","deletions","pendingProps","treeContext","retryLane","memoizedProps","childLanes","firstContext","lanes","memoizedValue","interleaved","updateQueue","firstBaseUpdate","lastBaseUpdate","effects","lane","_reactInternals","componentWillReceiveProps","getSnapshotBeforeUpdate","componentWillMount","_stringRef","revealOrder","_workInProgressVersionPrimary","baseQueue","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","getSnapshot","lastEffect","stores","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","componentDidCatch","componentStack","pingCache","baseLanes","cachePool","componentWillUpdate","pendingContext","dgst","_reactRetry","subtreeFlags","isBackwards","rendering","renderingStartTime","tailMode","wasMultiple","onclick","createElementNS","Oj","_reactRootContainer","onCommitFiberUnmount","isHidden","__reactInternalSnapshotBeforeUpdate","callbackNode","expirationTimes","expiredLanes","callbackPriority","finishedWork","finishedLanes","mutableReadLanes","onCommitFiberRoot","onRecoverableError","onPostCommitFiberRoot","pendingChildren","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","reportError","_internalRoot","unmount","unstable_scheduleHydration","usingClientEntryPoint","findFiberByHostInstance","bundleType","rendererPackageName","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","supportsFiber","inject","createRoot","unstable_strictMode","flushSync","hydrateRoot","hydratedSources","_getVersion","unstable_batchedUpdates","sortIndex","priorityLevel","scheduling","isInputPending","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","installMessageChannelImplementation","installReadyStateChangeImplementation","payloadCreator","metaCreator","_util","defaultState","_clone2","ignoreKeys","pickAction","executeHandler","_clone","_instanceof","nativeMap","nativeSet","nativePromise","circular","includeNonEnumerable","allParents","allChildren","useBuffer","__isArray","__isRegExp","__getRegExpFlags","__isDate","keyChild","valueChild","entryChild","attrs","allPropertyNames","__objToStr","clonePrototype","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","autoType","_v2","_v","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","nsecs","tmh","rnds8","rnds","byteToHex","bth","Axios","mergeConfig","createInstance","axios","instanceConfig","CancelToken","isCancel","spread","InterceptorManager","dispatchRequest","interceptors","interceptor","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","normalizedName","isAxiosError","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","requestURL","secure","toGMTString","resolvePromise","setSDKVersion","DOMStorageWrapper","domStorage_","prefix_","prefixedName_","storedVal","MemoryStorage","cache_","isInMemoryStorage","createStoragefor","domStorageName","domStorage","PersistentStorage","SessionStorage","logClient","LUIDGenerator","sha1","Sha1","sha1Bytes","buildLogMessage_","varArgs","firstLog_","enableLogging","logger_","persistent","VERBOSE","logWrapper","fatal","isInvalidJSONNumber","MIN_NAME","MAX_NAME","nameCompare","aAsInt","tryParseInt","bAsInt","stringCompare","requireKey","ObjectToUniqueKey","splitStringBySize","segsize","dataSegs","doubleToIEEE754String","hexByteString","hexByte","INTEGER_REGEXP_","INTEGER_32_MIN","INTEGER_32_MAX","intVal","exceptionGuard","setTimeoutNonBlocking","AppCheckTokenProvider","appName_","addTokenChangeListener","notifyForInvalidToken","FirebaseAuthTokenProvider","firebaseOptions_","authProvider_","auth_","removeTokenChangeListener","EmulatorTokenProvider","OWNER","PROTOCOL_VERSION","FORGE_DOMAIN_RE","APP_CHECK_TOKEN_PARAM","WEBSOCKET","LONG_POLLING","RepoInfo","webSocketOnly","nodeAdmin","includeNamespaceInQueryParams","_domain","internalHost","isCacheableHost","isCustomHost","newHost","toURLString","repoInfoConnectionURL","repoInfo","connURL","repoInfoNeedsQueryParam","StatsCollection","counters_","incrementCounter","collections","reporters","statsManagerGetCollection","hashString","PacketReceiver","onMessage_","pendingResponses","currentResponseNum","closeAfterResponse","closeAfter","responseNum","handleResponse","requestNum","_loop_1","toProcess","this_1","_loop_2","FIREBASE_LONGPOLL_START_PARAM","BrowserPollConnection","connId","applicationId","transportSessionId","lastSessionId","bytesSent","bytesReceived","everConnected_","log_","stats_","urlFn","onDisconnect","curSegmentNum","onDisconnect_","myPacketOrderer","isClosed_","connectTimeoutTimer_","onClosed_","called_1","wrappedFn_1","executeWhenDOMReady","scriptTagHolder","FirebaseIFrameScriptHolder","incrementIncomingBytes_","sendNewPolls","pN","uniqueCallbackIdentifier","connectURL","startLongPoll","addDisconnectPingFrame","forceAllow","forceAllow_","forceDisallow","forceDisallow_","UI","markConnectionHealthy","shutdown_","myDisconnFrame","dataStr","base64data","MAX_URL_DATA_SIZE","enqueueSegment","pw","commandCB","onMessageCB","outstandingRequests","pendingSegs","currentSerial","myIFrame","createIFrame_","iframeContents","contentDocument","alive","myID","myPW","newRequest_","theURL","curDataString","theSeg","addLongPollTag_","segnum","totalsegs","doNewRequest","keepaliveTimeout","loadCB","doNodeLongPoll","newScript_1","rstate","WebSocketImpl","MozWebSocket","WebSocket","WebSocketConnection","keepaliveTimer","totalFrames","connectionURL_","mySock","onopen","onclose","handleIncomingFrame","isOldAndroid","oldAndroidMatch","previouslyFailed","appendFrame_","fullMess","jsonMess","handleNewFrameCount_","frameCount","extractFrameCount_","mess","resetKeepAlive","remainingData","sendString_","responsesRequiredToBeHealthy","healthyTimeout","TransportManager","initTransports_","isWebSocketsAvailable","isSkipPollConnection","transports_","transports","ALL_TRANSPORTS","transport","initialTransport","upgradeTransport","Connection","repoInfo_","applicationId_","appCheckToken_","authToken_","onReady_","onKill_","connectionCount","pendingDataMessages","state_","transportManager_","conn","conn_","nextTransportId_","primaryResponsesRequired_","onMessageReceived","connReceiver_","onConnectionLost","disconnReceiver_","tx_","rx_","secondaryConn_","isHealthy_","healthyTimeoutMS","healthyTimeout_","everConnected","onConnectionLost_","onSecondaryConnectionLost_","onPrimaryMessageReceived_","onSecondaryMessageReceived_","sendRequest","dataMsg","sendData_","tryCleanupConnection","onSecondaryControl_","controlData","cmd","upgradeIfSecondaryHealthy_","secondaryResponsesRequired_","parsedData","proceedWithUpgrade_","onControl_","onDataMessage_","onPrimaryResponse_","onHandshake_","onConnectionShutdown_","onReset_","sendPingOnPrimaryIfNecessary_","handshake","onConnectionEstablished_","tryStartUpgrade_","startUpgrade_","closeConnections_","ServerActions","pathString","refreshAppCheckToken","onDisconnectPut","onDisconnectMerge","onDisconnectCancel","reportStats","allowedEvents_","listeners_","validateEventType_","getInitialEvent","OnlineMonitor","online_","currentlyOnline","MAX_PATH_DEPTH","MAX_PATH_LENGTH_BYTES","pathOrString","pieceNum","pieces_","copyTo","pieceNum_","newEmptyPath","pathGetFront","pathGetLength","pathPopFront","pathGetBack","pathSlice","begin","pathParent","pieces","pathChild","childPathObj","childPieces","pathIsEmpty","newRelativePath","outerPath","innerPath","pathCompare","cmp","pathEquals","pathContains","ValidationPath","errorPrefix_","parts_","byteLength_","validationPathCheckValid","validationPath","validationPathToErrorString","__EMPTY_NODE","MAX_NODE$2","VisibilityMonitor","visibilityChange","visible_","RECONNECT_MIN_DELAY","PersistentConnection","onDataUpdate_","onConnectStatus_","onServerInfoUpdate_","authTokenProvider_","appCheckTokenProvider_","authOverride_","nextPersistentConnectionId_","interruptReasons_","listens","outstandingPuts_","outstandingGets_","outstandingPutCount_","outstandingGetCount_","onDisconnectRequestQueue_","connected_","reconnectDelay_","maxReconnectDelay_","securityDebugCallback_","establishConnectionTimer_","requestCBHash_","requestNumber_","realtime_","forceTokenRefresh_","invalidAuthTokenCount_","invalidAppCheckTokenCount_","firstConnection_","lastConnectionAttemptTime_","lastConnectionEstablishedTime_","onVisible_","onOnline_","onResponse","curReqNum","initConnection_","_queryObject","outstandingGet","sendGet_","currentHashFn","queryId","_queryIdentifier","_queryParams","loadsAllData","listenSpec","hashFn","sendListen_","warnOnListenWarnings_","removeListen_","warnings","indexSpec","getIndex","indexPath","tryAuth","reduceReconnectDelayIfAdminCredential_","tryAppCheck","token_1","authMethod","cred","onAuthRevoked_","onAppCheckRevoked_","unlisten","sendUnlisten_","queryObj","sendOnDisconnect_","putInternal","sendPut_","queued","errorReason","reqNum","onDataPush_","onListenRevoked_","onSecurityDebugPacket_","handleTimestamp_","sendConnectStats_","restoreState_","scheduleConnect_","establishConnection_","online","onRealtimeDisconnect_","cancelSentTransactions_","shouldReconnect_","timeSinceLastConnectAttempt","reconnectDelay","onDataMessage","onDisconnect_1","canceled_1","connection_1","closeFn","sendRequestFn","error_1","nextConnectionId_","serverTimeOffset","normalizedPathString","statusCode","explanation","clientName","NamedNode","getCompare","indexedValueChanged","oldNode","newNode","oldWrapped","newWrapped","minPost","MIN","KeyIndex","isDefinedOn","maxPost","makePost","indexValue","KEY_INDEX","SortedMapIterator","startKey","isReverse_","resultGenerator_","nodeStack_","LLRBNode","SortedMap","EMPTY_NODE","min_","fixUp_","removeMin_","isRed_","moveRedLeft_","smallest","rotateRight_","moveRedRight_","rotateLeft_","colorFlip_","checkMaxDepth_","blackDepth","check_","LLRBEmptyNode","comparator_","root_","getPredecessorKey","rightParent","resultGenerator","NAME_ONLY_COMPARATOR","NAME_COMPARATOR","__childrenNodeConstructor","nodeFromJSON$1","MAX_NODE$1","priorityHashText","validatePriorityNode","priorityNode","isLeafNode","getPriority","LeafNode","value_","priorityNode_","lazyHash_","updatePriority","newPriorityNode","getImmediateChild","childName","getChild","hasChild","getPredecessorChildName","childNode","updateImmediateChild","newChildNode","updateChild","front","numChildren","forEachChild","exportFormat","toHash","compareToLeafNode_","otherLeaf","otherLeafType","thisLeafType","otherIndex","VALUE_TYPE_ORDER","thisIndex","withIndex","isIndexed","_defaultIndexMap","PriorityIndex","aPriority","bPriority","indexCmp","PRIORITY_INDEX","LOG_2","Base12Num","current_","bits_","nextBitIsOne","buildChildSet","keyFn","mapSortFn","buildBalancedTree","low","namedNode","base12","buildPennant","childTree","attachPennant","pennant","isOne","buildFrom12Array","fallbackObject","IndexMap","indexes_","indexSet_","indexKey","sortedMap","hasIndex","indexDefinition","addIndex","existingChildren","sawIndexedValue","indexName","newIndexSet","newIndexes","addToIndexes","indexedChildren","existingSnap","newChildren","removeFromIndexes","ChildrenNode","children_","indexMap_","Default","newIndexMap","newPriority","newImmediateChild","numKeys","allIntegerKeys","toHash_1","childHash","resolveIndex_","predecessor","getFirstChildName","getFirstChild","getLastChildName","getLastChild","wrappedNode","startPost","endPost","MAX_NODE","otherChildrenNode","thisIter","otherIter","thisCurrent","otherCurrent","MaxNode","MAX","setMaxNode","USE_HINZE","nodeFromJSON","childData","children_1","childrenHavePriority_1","childSet","sortedChildSet","setNodeFromJSON","PathIndex","indexPath_","extractChild","snap","aChild","bChild","valueNode","ValueIndex","VALUE_INDEX","PUSH_CHARS","nextPushId","lastPushTime","lastRandChars","duplicateTime","timeStampChars","successor","keyAsInt","i_1","sourcePlusOne","changeValue","snapshotNode","changeChildAdded","changeChildRemoved","changeChildChanged","oldSnap","IndexedFilter","index_","newChild","affectedPath","optChangeAccumulator","oldChild","trackChildChange","updateFullNode","newSnap","filtersNodes","getIndexedFilter","RangedFilter","indexedFilter_","startPost_","getStartPost_","endPost_","getEndPost_","getStartPost","getEndPost","hasStart","startName","getIndexStartName","getIndexStartValue","hasEnd","endName","getIndexEndName","getIndexEndValue","LimitedFilter","rangedFilter_","limit_","getLimit","reverse_","isViewFromLeft","fullLimitUpdateChild_","indexCompare_1","foundStartPost","childSnap","changeAccumulator","indexCmp_1","oldEventCache","newChildNamedNode","windowBoundary","inRange","oldChildSnap","nextChild","getChildAfterChild","compareNext","newEventCache","QueryParams","limitSet_","startSet_","startNameSet_","startAfterSet_","endSet_","endNameSet_","endBeforeSet_","viewFrom_","indexStartValue_","indexStartName_","indexEndValue_","indexEndName_","hasStartAfter","hasEndBefore","hasLimit","hasAnchoredLimit","queryParamsStartAt","queryParams","newParams","queryParamsEndAt","queryParamsOrderBy","queryParamsToRestQueryStringParameters","queryParamsGetQueryObject","viewFrom","ReadonlyRestClient","listens_","getListenId_","listenId","thisListen","queryStringParameters","restRequest_","SnapshotHolder","rootNode_","updateSnapshot","newSnapshotNode","newSparseSnapshotTree","sparseSnapshotTreeRemember","sparseSnapshotTree","sparseSnapshotTreeForget","tree","sparseSnapshotTreeForEachTree","prefixPath","sparseSnapshotTreeForEachChild","OperationType","StatsListener","collection_","last_","newStats","StatsReporter","server_","statsToReport_","statsListener_","reportStats_","reportedStats","haveStatsToReport","newOperationSourceServerTaggedQuery","fromUser","fromServer","tagged","emptyChildrenSingleton","AckUserWrite","affectedTree","revert","ACK_USER_WRITE","operationForChild","subtree","ListenComplete","LISTEN_COMPLETE","Overwrite","OVERWRITE","Merge","MERGE","CacheNode","node_","fullyInitialized_","filtered_","isFullyInitialized","isFiltered","isCompleteForPath","isCompleteForChild","EventGenerator","query_","eventGeneratorGenerateEventsForType","eventGenerator","registrations","eventCache","filteredChanges","change","aWrapped","bWrapped","eventGeneratorCompareChanges","materializedChange","prevName","eventGeneratorMaterializeSingleChange","respondsTo","newViewCache","serverCache","viewCacheUpdateEventSnap","viewCache","eventSnap","viewCacheUpdateServerSnap","serverSnap","viewCacheGetCompleteEventSnap","viewCacheGetCompleteServerSnap","ImmutableTree","findRootMostMatchingPathAndValue","relativePath","childExistingPathAndValue","findRootMostValueAndPath","toSet","setTree","fold","fold_","pathSoFar","findOnPath","findOnPath_","pathToFollow","foreachOnPath","foreachOnPath_","currentRelativePath","foreach","foreach_","foreachChild","CompoundWrite","writeTree_","compoundWriteAddWrite","compoundWrite","rootmost","rootMostPath","newWriteTree","compoundWriteAddWrites","newWrite","compoundWriteRemoveWrite","compoundWriteHasCompleteWrite","compoundWriteGetCompleteNode","compoundWriteGetCompleteChildren","compoundWriteChildCompoundWrite","shadowingNode","compoundWriteIsEmpty","compoundWriteApply","applySubtreeWrite","writeTree","priorityWrite_1","writeTreeChildWrites","newWriteTreeRef","writeTreeRemoveWrite","writeId","allWrites","writeToRemove","removedWriteWasVisible","removedWriteOverlapsWithOtherWrites","currentWrite","writeTreeRecordContainsPath_","visibleWrites","writeTreeLayerTree_","writeTreeDefaultFilter_","lastWriteId","writeTreeResetTree_","writeRecord","treeRoot","writePath","deepNode","writeTreeCalcCompleteEventCache","treePath","completeServerCache","writeIdsToExclude","includeHiddenWrites","subMerge","writeTreeRefCalcCompleteEventCache","writeTreeRef","writeTreeRefCalcCompleteEventChildren","completeServerChildren","completeChildren","topLevelSet","merge_1","writeTreeCalcCompleteEventChildren","writeTreeRefCalcEventCacheAfterServerOverwrite","existingEventSnap","existingServerSnap","childMerge","writeTreeCalcEventCacheAfterServerOverwrite","writeTreeRefShadowingWrite","writeTreeShadowingWrite","writeTreeRefCalcIndexedSlice","completeServerData","toIterate","writeTreeCalcIndexedSlice","writeTreeRefCalcCompleteChild","existingServerCache","writeTreeCalcCompleteChild","writeTreeRefChild","ChildChangeAccumulator","changeMap","oldChange","oldType","getChanges","NO_COMPLETE_CHILD_SOURCE","NoCompleteChildSource_","getCompleteChild","WriteTreeCompleteChildSource","writes_","viewCache_","optCompleteServerCache_","serverNode","viewProcessorApplyOperation","viewProcessor","oldViewCache","writesCache","completeCache","filterServerNode","overwrite","viewProcessorApplyUserOverwrite","viewProcessorApplyServerOverwrite","changedChildren","curViewCache","viewProcessorCacheHasChild","viewProcessorApplyUserMerge","viewProcessorApplyServerMerge","ackUserWrite","serverChildren","viewProcessorRevertUserWrite","ackPath","changedChildren_1","changedChildren_2","mergePath","serverCachePath","viewProcessorAckUserWrite","oldServerNode","viewProcessorGenerateEventCacheAfterServerEvent","viewProcessorListenComplete","isLeafOrEmpty","oldCompleteSnap","viewProcessorMaybeAddValueEvent","changePath","oldEventSnap","completeEventChildren","completeNode","oldEventNode","updatedPriority","childChangePath","newEventChild","eventChildUpdate","changedSnap","newServerCache","oldServerSnap","serverFilter","newServerNode","viewProcessorApplyMerge","viewMergeTree","childMergeTree","isUnknownDeepMerge","referenceConstructor$1","initialViewCache","eventRegistrations_","indexFilter","processor_","newViewProcessor","initialServerCache","initialEventCache","eventGenerator_","viewGetCompleteServerCache","viewIsEmpty","viewRemoveEventRegistration","eventRegistration","cancelError","cancelEvents","path_1","maybeEvent","createCancelEvent","hasAnyCallback","viewApplyOperation","viewGenerateEventsForChanges_","eventRegistrations","moves","eventGeneratorGenerateEventsForChanges","referenceConstructor","SyncPoint","views","syncPointApplyOperation","syncPoint","optCompleteServerCache","syncPointGetView","serverCacheComplete","eventCacheComplete","syncPointAddEventRegistration","viewAddEventRegistration","initialChanges","viewGetInitialEvents","syncPointRemoveEventRegistration","hadCompleteView","syncPointHasCompleteView","viewQueryId","_repo","syncPointGetQueryViews","e_3","e_3_1","syncPointGetCompleteServerCache","e_4","e_4_1","syncPointViewForQuery","syncPointGetCompleteView","syncPointViewExistsForQuery","e_5","e_5_1","syncTreeNextQueryTag_","SyncTree","listenProvider_","syncPointTree_","pendingWriteTree_","tagToQueryMap","queryToTagMap","syncTreeApplyUserOverwrite","syncTree","writeTreeAddOverwrite","syncTreeApplyOperationToSyncPoints_","syncTreeApplyUserMerge","writeTreeAddMerge","changeTree","syncTreeAckUserWrite","writeTreeGetWrite","affectedTree_1","syncTreeApplyServerOverwrite","syncTreeRemoveEventRegistration","maybeSyncPoint","removedAndEvents","removingDefault","covered","parentSyncPoint","newViews","maybeChildSyncPoint","childMap","views_1","childViews","syncTreeCollectDistinctViewsForSubTree_","newQuery","syncTreeCreateListenerForView_","startListening","syncTreeQueryForListening_","syncTreeTagForQuery_","queryToRemove","tagToRemove","syncTreeMakeQueryKey_","removedQuery","removedQueryKey","removedQueryTag","syncTreeRemoveTags_","syncTreeAddEventRegistration","foundAncestorDefaultView","pathToSyncPoint","sp","childSyncPoint","viewAlreadyExists","queriesToStop","queries_1","childQueries","queryToStop","syncTreeSetupListener_","syncTreeCalcCompleteEventCache","syncTreeGetServerValue","serverCacheNode","viewGetCompleteNode","syncTreeApplyOperationHelper_","syncPointTree","syncTreeApplyOperationDescendantsHelper_","childOperation","childServerCache","childWritesCache","viewGetServerCache","syncTreeQueryKeyForTag_","syncTreeParseQueryKey_","queryPath","syncTreeApplyTaggedOperation_","syncTreeApplyTaggedListenComplete","syncTreeApplyListenComplete","errorForServerCode","splitIndex","ExistingValueProvider","DeferredValueProvider","syncTree_","generateWithValues","resolveDeferredLeafValue","existingVal","serverValues","resolveScalarDeferredValue","resolveComplexDeferredValue","unused","existingNode","resolveDeferredValueTree","resolveDeferredValue","resolveDeferredValueSnapshot","rawPri","leafNode","childrenNode","Tree","childCount","treeSubTree","pathObj","treeGetValue","treeSetValue","treeUpdateParents","treeHasChildren","treeForEachChild","treeForEachDescendant","includeSelf","childrenFirst","treeGetPath","childEmpty","treeIsEmpty","childExists","treeUpdateChild","INVALID_KEY_REGEX_","INVALID_PATH_REGEX_","MAX_LEAF_SIZE_","isValidPathString","isValidPriority","validateFirebaseDataArg","validateFirebaseData","hasDotValue_1","hasActualChild_1","validationPathPush","validationPathPop","validateFirebaseMergeDataArg","errorPrefix$1","mergePaths","curPath","prevPath","validateFirebaseMergePaths","validatePriority","validateKey","validatePathString","validateRootPathString","validateWritablePath","validateUrl","parsedUrl","isValidRootPathString","EventQueue","eventLists_","recursionDepth_","eventQueueQueueEvents","eventQueue","eventDataList","currList","getPath","eventQueueRaiseEventsAtPath","eventQueueRaiseQueuedEventsMatchingPredicate","eventQueueRaiseEventsForChangedPath","changedPath","sentAll","eventList","eventListRaise","eventFn","getEventRunner","INTERRUPT_REASON","MAX_TRANSACTION_RETRIES","Repo","forceRestClient_","appCheckProvider_","dataUpdateCount","eventQueue_","nextWriteId_","interceptServerDataCallback_","transactionQueueTree_","persistentConnection_","repoStart","repo","authOverride","isMerge","repoOnDataUpdate","repoOnConnectStatus","connectStatus","repoUpdateInfo","repoOnServerInfoUpdate","statsReporter_","creatorFunction","statsManagerGetOrCreateReporter","infoData_","infoSyncTree_","infoEvents","serverSyncTree_","repoServerTime","repoGenerateServerValues","taggedChildren","syncTreeApplyTaggedQueryMerge","taggedSnap","syncTreeApplyTaggedQueryOverwrite","syncTreeApplyServerMerge","repoRerunTransactions","repoLog","resolvedOnDisconnectTree","repoAbortTransactions","repoRunOnDisconnectEvents","repoGetNextWriteId","repoSetWithPriority","newNodeUnresolved","clearEvents","repoCallOnCompleteCallback","repoOnDisconnectCancel","repoOnDisconnectSet","repoRemoveEventCallbackForQuery","repoInterrupt","repoGetLatestState","excludeSets","repoSendReadyTransactions","repoPruneCompletedTransactionsBelowNode","repoBuildTransactionQueue","setsToIgnore","currentWriteId","latestState","snapToSend","latestHash","retryCount","currentOutputSnapshotRaw","dataToSend","pathToSend","currentOutputSnapshotResolved","unwatcher","abortReason","repoSendTransactionQueue","rootMostTransactionNode","repoGetAncestorTransactionNode","abortTransaction","currentInputSnapshot","newDataNode","oldWriteId","newNodeResolved","applyLocally","repoRerunTransactionQueue","transactionNode","transactionQueue","repoAggregateTransactionQueuesForNode","nodeQueue","treeForEachAncestor","repoAbortTransactionsOnNode","lastSent","parseRepoInfo","parseDatabaseURL","scheme","subdomain","colonInd","slashInd","questionMarkInd","pathStringDecoded","piece","decodePath","kv","decodeQuery","hostWithoutPort","dotInd","DataEvent","exportVal","CancelEvent","CallbackContext","snapshotCallback","cancelCallback","onValue","expDataSnapshot","previousChildName","hasCancelCallback","userCallback","OnDisconnect$1","OnDisconnect","setWithPriority","repoOnDisconnectSetWithPriority","childrenToMerge","repoOnDisconnectUpdate","QueryImpl","_orderByCalled","ReferenceImpl","sameRepo","samePath","sameQueryIdentifier","pathToUrlEncodedString","validateNoPreviousOrderByCall","validateQueryEndpoints","startNode","endNode","tooManyArgsError","wrongArgTypeError","validateLimit","DataSnapshot$1","DataSnapshot","childRef","_checkNotDeleted","_root","parsedURL","changedKey","changedValue","writeId_1","repoUpdate","cached","repoGetValue","ValueEventRegistration","callbackContext","ChildEventRegistration","eventToCheck","cancelCallbackOrListenOptions","onlyOnce","userCallback_1","onceCallback","dataSnapshot","repoAddEventCallbackForQuery","onChildAdded","onChildChanged","onChildMoved","onChildRemoved","expCallback","QueryConstraint","QueryEndAtConstraint","QueryEndBeforeConstraint","queryParamsEndBefore","QueryStartAtConstraint","QueryStartAfterConstraint","queryParamsStartAfter","QueryLimitToFirstConstraint","_limit","newLimit","queryParamsLimitToFirst","QueryLimitToLastConstraint","queryParamsLimitToLast","QueryOrderByChildConstraint","parsedPath","QueryOrderByKeyConstraint","QueryOrderByPriorityConstraint","QueryOrderByValueConstraint","QueryEqualToValueConstraint","queryConstraints","queryImpl","queryConstraints_1","queryConstraints_1_1","syncPointSetReferenceConstructor","syncTreeSetReferenceConstructor","FIREBASE_DATABASE_EMULATOR_HOST_VAR","repos","useRestClient","repoManagerDatabaseFromApp","dbUrl","databaseURL","isEmulator","dbEmulatorHost","authTokenProvider","appRepos","repoManagerCreateRepo","Database$1","Database","_repoInternal","_instanceStarted","_rootInternal","repoManagerDeleteRepo","apiName","connectDatabaseEmulator","tokenProvider","repoManagerApplyEmulatorSettings","goOnline","SERVER_TIMESTAMP","TransactionResult$1","TransactionResult","transactionUpdate","queueNode","priorityForNode","repoStartTransaction","objectToMerge","newObjectToMerge","_database","getRef","cancelCallbackOrContext","getCancelAndContextArgs_","expSnapshot","validateEventType","failureCallbackOrContext","limitToFirst","orderByChild","orderByKey","orderByPriority","orderByValue","equalTo","cancelOrContext","getRoot","validateBoolean","transactionResult","setPriority","expPromise","thennablePushRef","pushRef","expRef","goOffline","ServerValue","TIMESTAMP","forceWebSockets","setSecurityDebugCallback","showDelta","longestName","paddedStat","repoStats","statsIncrementCounter","reporter","repoStatsIncrementCounter","interceptServerData","repoInterceptServerData","initStandalone","customAuthImpl","ComponentContainer","DataConnection","simpleListen","echo","onEcho","RealTimeConnection","ConnectionTarget","TEST_ACCESS","hijackHash","newHash","oldPut","queryIdentifier","forceRestClient","repoManagerForceRestClient","registerDatabase","theta","phi1","lambda1","phi2","asin","lambda2","squareMeters","targetUnit","meters","metersPerSecond","_decimal$toString$spl2","post","deg","min0","sec0","decimals","imprecise","_sec$split2","secPreDec","_sec$split2$","secDec","lowerIndex","middleIndex","upperIndex","p1lon","p2lat","p3lon","minLon","maxLon","radLat","radLon","radDist","MAX_LAT_RAD","MIN_LAT_RAD","MAX_LON_RAD","MIN_LON_RAD","deltaLon","numberOfPoints","pointLat","pointLon","bearingFn","destLat","detLon","originLat","originLon","cosSigma","sigma","sinAlpha","cosSqAlpha","cos2SigmaM","sinSigma","lambdaP","startLat","startLon","endLat","endLon","ellipsoidParams","U1","U2","sinU1","cosU1","sinU2","cosU2","lambda","iterLimit","sinLambda","cosLambda","uSq","polygon","isInside","totalPolys","wkt","coordText","_coordText$split2","placeholderReplaceRegex","placeholderReferenceRegex","LocalizedStrings","customLanguageInterface","_opts","getInterfaceLanguage","pseudo","pseudoMultipleLanguages","logsEnabled","_interfaceLanguage","_language","setContent","_Object$keys","defaultLang","_defaultLanguage","_defaultLanguageFirstLevelKeys","validateTranslationKeys","_pseudoAllValues","strArr","randomPseudo","bestLanguage","getBestMatchingLanguage","defaultLanguage","localizedStrings","_fallbackValues","defaultStrings","strings","_availableLanguages","omitWarning","browserLanguage","auxLang","translationKeys","reservedNames","possible","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","AMAZON","APPLE","ASUS","BLACKBERRY","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","enumerize","enums","str1","str2","rgxMapper","arrays","strMapper","windowsVersionMap","EDGE","_navigator","_ua","_uach","userAgentData","_rgxmap","mergedRegexes","_isSelfNav","_browser","brave","isBrave","_cpu","_device","mobile","_engine","_os","prefixProperties","requiredPrefixes","capitalizedProperty","prefixedProperty","_capitalizeString","metaData","addIfNew","_hyphenateStyleName2","_hyphenateStyleName","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","_assign","_invariant","MIXINS_KEY","ReactComponent","injectedMixins","ReactClassInterface","statics","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","ReactClassComponent","autoBindKey","bindAutoBindMethods","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","astralCodePoint","ReactPropTypesSecret","bigint","defaultStylesConfig","createStylesConfig","hoistingEnabled","whitespaceCollapsingEnabled","modelRegistry","HTMLModelRegistry","userSelectedFontSize","TStylesMerger","ignoredTags","ignoreNode","visitors","dataFlowParams","baseStyles","compileStyleDeclaration","normalizeDocument","isDomElement","parseDocument","buildTTreeFromDoc","translateDocument","hoistedTDoc","hoist","buildTTree","modelRecords","hoistNode","groupText","wrapperInit","wrapper","wrapperChildren","cnode","userConfig","CSSPropertiesValidationRegistry","declaration","CSSNativeParseRun","compileInlineCSS","inlineCSS","CSSInlineParseRun","CSSParseRun","parseInlineCSS","normalizeProp","reduceProps","rawName","camelCaseName","shouldRegisterInlineProperty","getValidatorForProperty","reg","rawTransformed","validator","walk","ValueParser","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","comma","colon","star","uLower","uUpper","plus","isUnicodeRange","escapePos","whitespacePos","parenthesesOpenPos","balanced","after","sourceEndIndex","sourceIndex","unclosed","stringifyNode","customResult","minus","dot","EXP","nextCode","nextNextCode","likeNumber","isRegex","objectKeys","camelCase","nativeDirectionalStyleKeys","extraStylesRegistry","includeFontPadding","writingDirection","transformMatrix","fillProp","innerKey","innerValue","lookupRecord","makeRegistry","validators","ignoredPropertiesRegistry","allowedPropertiesRegistry","isInlinePropertyAllowed","nativeTranslatableBlockRetainModel","ShortCardinalCSSpropertyValidator","LongBorderStyleCSSPropertyValidator","ShortFlexCSSPropertyValidator","ShortFontCSSValidator","nativeTranslatableTextFlowModel","webBlockRetainModel","ShortDualNativepropertyValidator","nativeTranslatableTextRetainModel","LongColorCSSPropertyValidator","LongFontFamilyPropertyValidator","LongFontSizeCSSValidator","LongEnumerationListCSSPropertyValidator","webTextFlowModel","LongAspectRatioPropertyValidator","LongFloatNumberCSSPropertyValidator","nativeUntranslatableBlockRetainModel","LongBorderWidthCSSPropertyValidator","LongCSSToReactNativeValidator","nativeTranslatableBlockFlowModel","SEPARATOR_REGEX","normalizedFont","normalizedVal","ASPECT_RATIO_REGEX","WHITESPACE_REGEX","pickFirst","COLOR_REGEX","resp","expanded","_curry3","_isArrayLike","_xwrap","_iterableReduce","_methodReduce","symIterator","_arrayReduce","_isString","XWrap","thisObj","_checkForMethod","toIndex","print","printTableStyles","tnodeSnapshot","parentLeftPrefix","isChild","isLast","totalPrefixLeft","childrenPrint","tagPrint","unregisteredPrint","indexPrint","idPrint","classesPrint","dataPrint","anchorPrint","srcPrint","pstyles","nativeStylesPrint","oStyles","webStylesPrint","detailsPrint","tnodePropertiesString","COLLAPSIBLE_AROUND_SEGMENT_BREAK_REGEX","CONSECUTIVE_SEGMENT_BREAKS_REGEX","ZERO_WIDTH_SPACES_AROUND_SEGMENT_BREAKS_REGEX","SPACE_DISCARDING_CHARSET_REGEX","SEGMENT_BREAK_REGEX","SUBSEQUENT_WHITESPACE_REGEX","TDocumentCtor","parseChildren","mapNodeList","nodeList","nextMap","translated","translateNode","isDomText","getElementModelFromTagName","TEmptyCtor","phrasing","translateElement","defaultContextBase","baseHref","getDefaultDocumentContext","htmlModel","TBlockImpl","titleChild","extractContextFromHead","RssHandler","DefaultHandler","DomUtils","createDomStream","parseDOM","elementCb","FeedHandler_1","JUMP_OFFSET_BASE","decode_data_html_1","decode_data_xml_1","getDecoder","decodeTree","lastIdx","strIdx","excess","treeIdx","cp","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","mid","midVal","htmlDecoder","xmlDecoder","entities_1","foreignNames_1","unencodedElements","singleTag","renderNode","renderComment","renderCdata","elementNames","foreignModeIntegrationPoints","foreignElements","attributeNames","formatAttributes","selfClosingTags","renderTag","renderText","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","encode_1","encode_2","decode_2","decode_json_1","prevElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","siblings","removeElement","prepend","prependChild","replaceElement","replacement","currNext","uniqueSort","removeSubsets","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","stringify_1","legacy_1","feedRoot","getOneElement","isValidFeed","media","getMediaElements","addConditionally","pubDate","updated","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","expression","OriginalDomHandler","isIgnored","ignoredTagsCount","onText","onElement","onDocument","emptyProcessedPropsReg","mapMixedStyleRecordToCSSProcessedPropsReg","regStyles","styleDeclaration","inlineStyle","ownInlinePropsReg","userTagOwnProps","userIdOwnProps","userClassesOwnPropsList","dynamicPropsFromAttributes","userAgentTagProps","mergedOwnProps","customize","internalHTMLElementModels","mergeDeepWithKey","mergeDeepRight","lObj","rObj","lVal","rVal","_isObject","mergeWithKey","_has","defaultAOnPress","_objectAssign","mergeRight","TDefault","Custom","useRendererConfig","useDefaultContainerProps","InternalRenderer","nativeStyle","internalTextRenderers","BRRenderer","WBRRenderer","customRenderers","getCustomRendererForTNode","getDefaultRendererForTNode","internalRenderers","isLonelyBreak","shouldCollapse","renderEmptyLineBreak","isNativeInternalTextRenderer","IMGRenderer","ULRenderer","OLRenderer","ARenderer","absoluteTo","_URI","URI","_urlSupplied","escapeRegEx","filterArrayValues","arrayContains","_type","arraysEqual","trimSlashes","escapeForDumbFirefox36","strictEncodeURIComponent","_parts","urn","preventInvalidHostname","duplicateQueryParameters","escapeQuerySpace","protocol_expression","idn_expression","punycode_expression","ip4_expression","ip6_expression","find_uri_expression","findUri","parens","leading_whitespace_expression","ascii_tab_whitespace","defaultPorts","http","https","ftp","gopher","wss","hostProtocols","invalid_hostname_characters","domAttributes","getDomAttribute","iso8859","unicode","reserved","urnpath","encodeQuery","escaped","_part","generateAccessor","_group","generateSegmentedPathFunction","_sep","_codingFuncName","_innerCodingFuncName","actualCodingFunc","generateSimpleAccessor","build","generatePrefixAccessor","decodeUrnPath","recodePath","recodeUrnPath","encodeReserved","parseAuthority","parseHost","bracketPos","firstColon","firstSlash","nextColon","ensureValidHostname","ensureValidPort","parseUserinfo","_string","parseQuery","splits","requireAbsolutePath","buildAuthority","buildHost","buildUserinfo","buildQuery","buildQueryParameter","addQuery","setQuery","removeQuery","hasQuery","withinArray","nonEmptySegments","commonPath","withinString","_end","_trim","_parens","_attributeOpen","ignoreHtml","attributeOpen","parensEnd","parensMatch","parensMatchEnd","ignore","hasHostname","rejectEmptyHostname","toASCII","removeAll","unconflicted","URITemplate","deferBuild","_deferred_build","_object","what","ip","ip4","ip6","sld","idn","_protocol","_port","_hostname","authority","userinfo","tld","directory","decodePathSegment","mutatedDirectory","normalizePath","segmentCoded","setSearch","addSearch","removeSearch","hasSearch","normalizeProtocol","normalizeQuery","normalizeFragment","normalizeHostname","normalizePort","_was_relative","_pos","_leadingParents","normalizePathname","normalizeSearch","normalizeHash","readable","toUnicode","qp","basedir","relativeTo","relativeParts","baseParts","basePath","parents","one_map","two_map","one_query","two_query","resizeModeFromFit","mapObjectFit","precedent","topMostMarginBottom","bottomMostMarginTop","_equals","_arrayFromIterator","_includesWith","_functionName","_objectIs","_uniqContentEquals","aIterator","bIterator","stackA","stackB","aItem","typeA","sticky","extendedStackA","extendedStackB","_isArguments","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","checkArgsLength","sourceLoaderContext","resolvedHTML","loadState","ERROR_STATE","loadHTMLResource","useUriSourceLoader","RenderTTree","trenderEngine","updateNumber","useTTreeChangeEffect","useInlineSourceLoader","rendererProps","specialRenderersConfig","hasSpecialInternalRenderer","boxModelStyle","pickBorderBox","otherStyle","omitBorderBox","borderBoxProps","domNodeToHTMLString","strChildren","convertedNode","strAttributes","renderOpeningTag","xtend","smart","own","dangerous","jsx","jsxs","inst","cE","ucE","hasTouchableProperty","prepare","originX","originY","clean","remeasure","WebShape","ClipPath","Defs","Ellipse","Line","Polygon","Polyline","RadialGradient","Rect","Stop","TSpan","TextPath","Use","Mask","ForeignObject","Marker","Pattern","assertThisInitialized","objectWithoutPropertiesLoose","PRESS_RETENTION_OFFSET","SvgTouchableMixin","pressRetentionOffset","touchKeys","touchVals","numTouchKeys","cleanedProps","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arrayLikeToArray","singleMatcher","multiMatcher","decodeComponents","encodedURI","replaceMap","customDecodeURIComponent","separatorIndex","react_1","throw","unwrapExports","getCjsExportFromNamespace","commonjsRequire","lottie","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","getDescriptor","createProxyFunction","audioControllerFactory","audios","audioFactory","_volume","_isMuted","addAudio","setRate","createAudio","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","defaultCurveSegments","degToRads","roundCorner","roundValues","bmRnd","styleDiv","webkitTransformOrigin","webkitBackfaceVisibility","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","BMCompleteEvent","BMCompleteLoopEvent","currentLoop","totalLoops","BMSegmentStartEvent","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","addBrightnessToRGB","addHueToRGB","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","_typeof$5","dataManager","hasMask","masksProperties","ty","layers","refId","shapes","__used","chars","completeData","__complete","checkColors","checkChars","checkPathProperties","checkShapes","completeLayers","assetLoader","loadAnimation","loadData","completeAnimation","ImagePreloader","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","getBBox","_imageLoaded","assetData","assetsPath","_footageLoaded","testImageLoaded","createFootageData","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","_elementHelper","imageLoaded","footageLoaded","setCacheType","BaseEvent","triggerEvent","_cbs","markerParser","ProjectInterface","compositions","prepareFrame","currentFrame","compInterface","registerComposition","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","animType","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","getNamedItem","includeLayers","fontManager","addChars","addFonts","initExpressions","loadNextSegment","loadSegments","imagesLoaded","checkLoaded","preloadImages","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","goToAndStop","frameModifier","goToAndPlay","playSegments","advanceTime","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","getAssetsPath","getAssetData","getDuration","updateDocumentData","getElementByPath","animationManager","registerAnimation","searchAnimations","getElementsByClassName","unfreeze","getRegisteredAnimations","BezierFactory","getBezierEasing","_p","_mSampleValues","_precomputed","_precompute","_getTForX","_calcSampleValues","pooling","double","poolFactory","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","segmentLength","partialLength","getSegmentsLength","_length","getNewSegment","getPointInSegment","buildBezierData","pointOnLine2D","pointOnLine3D","bez","PropertyFactory","offsetTime","propType","pv","keyframesMetadata","bezierData","__fnct","_lastKeyframeIndex","_lastAddedLength","_lastPoint","keyframeMetadata","comp","renderedFrame","_caching","interpolateValue","_mdf","frameId","effectsSequence","lock","setVValue","_isFirstFrame","addDynamicProperty","vel","addEffect","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","_maxLength","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","shapePool","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","ShapePropertyFactory","interpolateShape","localShapeCollection","convertEllToPath","convertToPath","convertStarToPath","convertPolygonToPath","convertRectToPath","getShapeProp","getConstructorFunction","getKeyframedConstructorFunction","Matrix","shear","_identityCalculated","_identity","getInverseMatrix","applyToPointArray","isIdentity","skewFromAxis","setTransform","applyToPoint","applyToX","applyToY","applyToZ","applyToTriplePoints","applyToPointStringified","toCSS","to2dCSS","cloneFromProps","inversePoints","inversePoint","_typeof$3","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","useWebWorker","setIDPrefix","__getFactory","myScript","bodymovin","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","releasePathsData","processShapes","totalShapeLength","addShapes","addPaths","addSegment","addSegmentFromArray","processPath","TransformPropertyFactory","appliedTransformations","pz","rx","ry","rz","_isDirty","applyToMatrix","precalculateMatrix","autoOriented","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","polynomialCoefficients","singlePoint","PolynomialBezier","pointEqual","extrema","intersectData","boundingBox","splitData","boxIntersect","intersectsImpl","crossProduct","lineIntersection","polarOffset","pointDistance","ZigZagModifier","setPoint","getPerpendicularVector","getProjectingAngle","zigZagCorner","zigZagSegment","normalAngle","linearOffset","offsetSegment","joinLines","tangentAngle","getIntersection","intersections","pruneSegmentIntersection","pruneIntersections","offsetSegmentSplit","inflectionPoints","OffsetPathModifier","getFontProperties","fStyle","fWeight","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","changeGroupRender","_render","ix","reloadShapes","mProps","derivative","shapeSegment","shapeSegmentInverted","amplitude","frequency","pointsType","miterLimit","lineJoin","FontManager","fFamily","fClass","measureText","getComputedTextLength","typekitLoaded","_warned","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","isZeroWidthJoiner","isCombinedCharacter","helper","monoCase","sansCase","fPath","fOrigin","getCharData","getFontByName","fName","RenderableElement","initRenderable","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectElements","GroupEffect","BaseElement","FrameElement","FootageElement","initFrame","footageData","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","BaseRenderer","TransformElement","MaskElement","storedData","maskElement","viewData","solidPath","inv","lastPath","expan","lastOperator","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","checkMasks","layerInterface","maskManager","registerMaskInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","baseElement","layerElement","layerId","effectsManager","prepareProperties","_isParent","getBaseElement","getFootageData","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","progressiveLoad","buildElementParenting","setAsParent","setHierarchy","addPendingElement","pendingElements","setupGlobalData","animationItem","compSize","initTransform","_matMdf","_opMdf","mat","renderTransform","hierarchy","globalToLocal","mHelper","getMaskProperty","getMaskelement","filtersFactory","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects","idPrefix","SVGEffects","createFilter","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","matteMasks","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","getMatte","createAlphaToLuminanceFilter","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","caches","transformers","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","SVGFillStyleData","SVGNoStyleData","GradientProperty","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","cst","ost","maskId","buildShapeString","SVGElementsRenderer","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lineWidths","sz","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","setShapesAsAnimated","createStyleElement","addToAnimatedContents","createGroupElement","createTransformElement","createShapeElement","setElementStyles","renderShape","setCurrentData","searchKeyframes","getKeyframeValue","buildFinalText","anIndexes","animatorJustifyOffset","totalChars","canResizeFont","setMinimumFontSize","TextSelectorProp","_currentTextLength","finalS","finalE","getMult","textProperty","getTextSelectorProp","TextAnimatorDataProperty","TextAnimatorProperty","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","tLength","defaultPropsArray","textAnimator","renderType","buildNewText","createPathShape","applyTextPropertiesToMatrix","buildColor","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","runExpressions","frameNum","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","buildShapeData","glyph","_debug","bbox","findIndexByInd","appendElementInPos","tp","setElements","destroyElements","duplicate","popTransform","popOpacity","getTransform","getOpacity","setOpacity","addTransformSequence","processSequence","processSequences","getNewKey","lumaLoader","createCanvas","loadLumaCanvas","getLumaCanvas","CVEffects","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","styledShapes","trNodes","CVShapeElement","transformsManager","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","HCameraElement","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","currentTransform","exitLayer","ctxTransform","ctxOpacity","transformHelper","dashResetter","preTransforms","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","_shouldRender","renderShapeTransform","drawLayer","coOp","strokeStyle","grd","lineWidth","lineCap","setLineDash","lineDashOffset","pts","closePath","renderPath","renderFill","renderStroke","renderGradientFill","renderStyledShape","createLinearGradient","createRadialGradient","addColorStop","tHelper","globalAlpha","mozTransformOrigin","isDashed","checkBlendMode","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","calculateF","calculateBoundingBox","expandStrokeBoundingBox","currentBoxContains","compW","compH","setup","perspectiveElem","webkitPerspective","imageElem","ddd","addTo3dContainer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","build3dContainers","resizerElem","_createBaseContainerElements","CompExpressionInterface","pixelAspect","frameDuration","displayStartTime","numLayers","Expressions","pushExpression","popExpression","registerExpressionProperty","MaskManagerInterface","_mask","ExpressionPropertyInterface","getVelocityAtTime","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","TransformExpressionInterface","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","LayerExpressionInterface","getMatrix","applyPoint","invertPoint","toWorld","toWorldVec","fromWorld","fromWorldVec","toComp","fromComp","sampleImage","anchor_point","inPoint","outPoint","propertyGroupFactory","PropertyInterface","EffectsExpressionInterface","numProperties","np","setGroupProperty","ShapePathInterface","propertyIndex","ShapeExpressionInterface","cix","startPoint","endPoint","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","roundness","copies","TextExpressionInterface","sourceText","_typeof$2","FootageInterface","dataInterfaceFactory","outlineInterface","dataInterface","interfaces","footage","getInterface","_typeof$1","seedRandom","seedrandom","entropy","int32","quick","initialize$2","SHAPE","ExpressionManager","$bm_isInstanceOfArray","isNumerable","$bm_neg","easeInBez","easeOutBez","easeInOutBez","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","createPath","initiateExpression","noOp","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","wiggle","loopInDuration","loopOutDuration","textIndex","textTotal","selectorValue","lookAt","applyEase","nearestKey","framesToTime","timeToFrames","randSeed","posterizeTime","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","_transformCachingAtTime","vertices","inTangents","outTangents","isClosed","pointOnPath","_segmentsLength","vectorOnPath","tangentOnPath","normalOnPath","shapeValue","initialize$1","addDecorator","getExpressionValue","calculateExpression","SVGComposableEffect","createMergeNode","linearFilterValue","SVGTintFilter","filterManager","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","SVGTritoneFilter","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feGaussianBlur","feOffset","feFlood","masker","pathMasker","getTotalLength","getTableValue","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","setElementAsMask","REACT_LOTTIE_PLAYER_VERSION","LOTTIE_WEB_VERSION","PlayerState","PlayerEvent","parseSrc","Loading","Playing","Paused","Stopped","Frozen","Load","InstanceSaved","Ready","Play","Pause","Freeze","Loop","Complete","Frame","unmounted","handleBgChange","triggerDownload","click","XMLSerializer","serializeToString","toDataURL","playerState","seeker","getVersions","lottieWebVersion","lottiePlayerVersion","createLottie","onBackgroundChange","setBackground","toggleDebug","colorChangedEvent","keepLastFrame","setPlayerSpeed","setPlayerDirection","styleInject","insertAt","css_248z","stylesheet","ColorPicker","colorComponents","parseColor","Seeker","inputRef","showLabels","ControlButtonStyle","Controls","activeFrame","mouseDown","transparentTheme","onChangeEnd","slot","clipRule","fillRule","NAN","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMin","toNumber","isBinary","wait","lastCallTime","lastInvokeTime","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","isInvoking","leadingEdge","scriptElements","scriptUrl","searchParams","__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__","isArrayish","conversions","fromModel","toModel","wrappedFn","conversion","wrapRounded","wrapRaw","deriveBFS","graph","models","buildGraph","adjacents","adjacent","wrapConversion","defaultTheme","withTheme","overrides","ThemedComponent","_previous","_reactThemeProviderForwardedRef","_merge","ResultComponent","arg0","getSideChannel","arrayPrefixGenerators","brackets","pushToArray","valueOrArray","toISO","addQueryPrefix","allowDots","charsetSentinel","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","sideChannel","tmpSc","findFlag","keyValue","valuesJoined","objKeys","valueSideChannel","normalizeStringifyOptions","joined","callBound","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","$wm","listGet","listHas","listSet","EvalError","URIError","origSymbol","hasSymbolSham","symObj","syms","$Object","concatty","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","$hasOwn","callBind","$indexOf","setFunctionLength","$apply","$call","$reflectApply","$max","originalFunction","applyBind","hasDescriptors","gOPD","$floor","loose","functionLengthIsConfigurable","functionLengthIsWritable","gopd","nonEnumerable","nonWritable","nonConfigurable","hasPropertyDescriptors","hasArrayLengthDefineBug","mapSizeDescriptor","mapSize","mapForEach","setSizeDescriptor","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","sepRegex","intStr","utilInspect","inspectCustom","inspectSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","customInspect","indent","numericSeparator","inspectString","bigIntStr","baseIndent","getIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","singleLineValues","indentedJoin","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isBigInt","isBoolean","protoTag","trailer","lowbyte","lineJoiner","symMap","allowSparse","arrayLimit","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","leaf","cleanRoot","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","encodedVal","parseValues","classNames","appendClass","newClass","MILLISECONDS_IN_MINUTE","addMinutes","MILLISECONDS_IN_HOUR","addHours","subDays","subWeeks","subMonths","subQuarters","subYears","getQuarter","getYear","dirtySeconds","dirtyMinutes","dirtyHours","setQuarter","dirtyQuarter","setYear","dirtyYear","dirtyDatesArray","datesArray","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","differenceInCalendarYears","startOfMonth","startOfYear","cleanDate","endOfDay","endOfWeek","endOfMonth","endOfYear","dirtyLeftDate","dirtyRightDate","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameYear","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","dirtyDateToCompare","dateToCompare","isWithinInterval","parseISO","_options$additionalDi","additionalDigits","dateStrings","dateString","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","splitDateString","parseYearResult","restDateString","century","parseYear","dateRegex","isWeekDate","parseDateUnit","dayOfWeek","_year","validateWeekDate","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseDate","timeRegex","parseTimeUnit","validateTime","parseTime","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","isNodeFound","ignoreClass","correspondingElement","passiveEventSupport","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","handlerOptions","onClickOutsideHOC","__outsideClickHandler","__clickOutsideHandlerProp","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","eventTypes","findHighest","composed","disableOnClickOutside","instanceRef","wrappedRef","getClass","EventManager","oneSignalEventEmitter","eventListenerArrayMap","setupListeners","generateEventListener","handlerArray","typedPayload_1","invariant_1","_concat","set1","set2","len1","_curryN","received","combined","argsIdx","combinedIdx","curryN","origFn","adjust","_idx","_list","_isTransformer","_dispatchable","methodNames","transducer","_reduced","XAll","_xfBase","_map","functor","_reduce","XMap","_xmap","nth","pathsArray","_isInteger","pathAr","pluck","allPass","preds","always","and","XAny","anyPass","ap","applyF","applyX","_aperture","XAperture","getCopy","aperture","vals","applySpec","applyTo","ascend","assoc","assocPath","nAry","binary","_isFunction","liftN","lifted","lift","both","curry","_makeFlat","flatt","jlen","ilen","_flatCat","rxf","preservingReduced","monad","_cloneRegExp","refFrom","refTo","deep","copiedValue","composeK","_pipeP","pipeP","composeP","pipeWith","headList","tailList","composeWith","_indexOf","inf","_includes","_quote","pad","_toISOString","XFilter","filterable","_toString","recur","mapPairs","repr","constructN","$1","$2","$3","$4","$5","$6","$7","$8","$9","converge","XReduceBy","valueFn","valueAcc","reduceBy","elt","countBy","defaultTo","descend","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","difference","firstLen","secondLen","toFilterOut","differenceWith","dissoc","dissocPath","XDrop","drop","XTake","take","dropLast","XDropLast","_dropLast","dropLastWhile","XDropLastWhile","retained","_dropLastWhile","XDropRepeatsWith","seenFirstValue","sameAsLast","_xdropRepeatsWith","dropRepeatsWith","dropRepeats","XDropWhile","dropWhile","either","takeLast","eqBy","eqProps","evolve","transformations","transformation","XFind","XFindIndex","XFindLast","findLast","XFindLastIndex","forEachObjIndexed","keyList","fromPairs","groupBy","groupWith","nextidx","gte","identical","ifElse","onTrue","onFalse","inc","indexBy","innerJoin","insertAll","elts","uniqBy","appliedItem","uniq","intersection","list1","list2","lookupList","filteredList","intersperse","objOf","_stepCatArray","_stepCatString","_stepCatObject","into","_stepCat","invertObj","invoker","juxt","_isNumber","toFunctorFn","lensIndex","lensPath","lensProp","lte","mapAccum","mapAccumRight","mathMod","maxBy","mean","median","memoizeWith","mFn","mergeAll","mergeDeepLeft","mergeDeepWith","mergeLeft","minBy","move","positiveFrom","positiveTo","nthArg","_of","called","_assertPromise","otherwise","Identity","over","fst","snd","_createPartialApplicator","partialRight","partition","pathEq","pathOr","pathSatisfies","propPath","pickAll","pipeK","useWith","propEq","propIs","propOr","propSatisfies","reduceWhile","reduced","times","scan","traversable","sortBy","sortWith","splitAt","splitEvery","splitWhen","symmetricDifference","symmetricDifferenceWith","takeLastWhile","XTakeWhile","takeWhile","XTap","tap","andThen","toLower","toPairs","toPairsIn","transduce","transpose","outerlist","innerlist","beginRx","endRx","tryer","catcher","unapply","unary","uncurryN","endIdx","currentDepth","unfold","uniqWith","unless","whenFalseFn","unnest","valuesIn","Const","when","whenTrueFn","testObj","whereEq","without","xor","xprod","zip","zipObj","zipWith","thunkify","fnArgs","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","getWindow","isShadowRoot","ShadowRoot","getUAString","uaData","isLayoutViewport","includeScale","isFixedStrategy","clientRect","addVisualOffsets","getWindowScroll","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","getLayoutRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getContainingBlock","basePlacements","clippingParents","viewport","popper","variationPlacements","placements","modifierPhases","visited","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","mergeByName","cleanupFn","noopFn","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","_Object$assign","commonStyles","roundOffsetsByDPR","getOppositePlacement","getOppositeVariationPlacement","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","mathMax","mathMin","getSideOffsets","preventedOffsets","isAnySideFullyClipped","createPopper","_options$scroll","_options$resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","initialStyles","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","optionsWithDefaults","updateStateModifier","popperOptions","popperInstanceRef","popperInstance","defaultCreatePopper","NOOP","NOOP_PROMISE","_ref$placement","_ref$strategy","_ref$modifiers","setPopperElement","setArrowElement","_usePopper","childrenProps","_createForOfIteratorHelper","normalCompletion","didErr","_e2","Setter","_utcDate","ValueSetter","_Setter","validateValue","subPriority","DateToSystemTimezoneSetter","_Setter2","timestampIsSet","convertedDate","validate","EraParser","_Parser","numericPatterns","timezonePatterns","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","dirtyWeek","setUTCWeek","ISOWeekParser","dirtyISOWeek","setUTCISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","DayOfYearParser","setUTCDay","dirtyDay","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","_options$locale2","_options$locale2$opti","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","subFnOptions","setters","firstCharacter","longFormatter","usedTokens","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","incompatibleTokens","incompatibleToken","usedToken","fullToken","_ret","uniquePrioritySetters","setterArray","useTransitionProgress","TransitionProgressContext","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","isNewBackTitleImplementation","ENABLE_SCREENS","enableScreens","screensEnabled","enableFreeze","NativeScreen","activityState","InnerScreen","ScreenContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","SearchBar","ScreenStackHeaderSubview","shouldUseActivityState","addLeadingZeros","signedYear","dayPeriodEnumValue","numberOfDigits","dayPeriodEnum","lightFormatters","signedWeekYear","getUTCDayOfYear","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","dirtyDelimiter","absOffset","dirtyFormatStr","formatStr","formatterOptions","cleanEscapedString","startOfISOWeek","startOfISOWeekYear","getISOWeekYear","getISOWeek","_startTransaction","configInstrumenter","transactionInstrumenter","maxSpans","startIdleTransaction","onScope","addTracingExtensions","useKeyboardDismissable","styleObj","statusBarTranslucent","keyboardDismissHandlers","keyboardDismissHandlerManager","backHandler","useBackHandler","setBottom","startCoordinates","combineContextAndProps","ariaAttr","FormControlContext","useFormControlContext","describedBy","hasFeedbackText","feedbackId","hasHelpText","helpTextId","cleanProps","addExtensionMethods","packageToIntegrationMapping","mongodb","Mongo","mongoose","mysql","Mysql","Postgres","mappedPackages","_autoloadDatabaseIntegrations","DEBOUNCE_DURATION","debounceTimerID","lastCapturedEventType","lastCapturedEventTargetId","addClickKeypressInstrumentationHandler","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","originalRemoveEventListener","globalListener","getEventTarget","shouldSkipDOMEvent","_sentryId","isSimilarToLastCapturedEvent","addXhrInstrumentationHandler","DEFAULT_RETRY_AFTER","headerDelay","StyledView","RNView","StyledImage","RNImage","fallbackElement","fallbackSource","ignoreFallback","finalSource","renderedSource","setSource","setAlternate","fallbackSourceFlag","setfallbackSourceFlag","onImageLoadError","StyledScrollView","_contentContainerStyle","resolved_ContentContainerStyle","StyledFlatList","RNFlatList","FlatListComponent","justify","basis","grow","valueProp","valueState","CloseIcon","InfoIcon","INSET","POSITIONS","initialAnimationOffset","transitionConfig","ToastContext","toastInfo","setToastInfo","setToast","removeToast","hideAll","visibleToasts","setVisibleToasts","hideToast","CustomToast","getPositions","hasToastOnOverlay","toast","onCloseComplete","ToastProvider","themeProps","toastIndex","prevVisibleToasts","toastPosition","toastData","positionArray","newPositionArray","accessibilityAnnouncement","positionToastArray","useToast","closeAll","ToastRef","edgeBitmaskMap","edges","edgeBitmask","edge","appliedStyle","totalLines","StyledNBSwitch","isChecked","onToggle","formControlContext","combinedProps","_onTrackColor","_offTrackColor","_onThumbColor","_offThumbColor","StyledKeyboardAvoidingView","RNKeyboardAvoidingView","NavigationContainerInner","linking","documentTitle","isLinkingEnabled","refContainer","REACT_NAVIGATION_DEVTOOLS","isResolved","linkingContext","onReadyRef","NavigationContainer","override","sourceValue","overrideValue","restOverrides","DEFAULT_IGNORE_ERRORS","DEFAULT_IGNORE_TRANSACTIONS","INTEGRATION_NAME","inboundFiltersIntegration","processEvent","_hint","internalOptions","allowUrls","denyUrls","ignoreErrors","disableErrorDefaults","ignoreTransactions","disableTransactionDefaults","ignoreInternal","_mergeOptions","_isSentryError","_shouldDropEvent","originalFunctionToString","SETUP_CLIENTS","functionToStringIntegration","applySdkMetadata","exceptionFromError","parseStackFrames","extractMessage","eventFromError","popSize","reactMinifiedRegexp","getPopSize","eventFromUnknownInput","attachStacktrace","isUnhandledRejection","domException","getNonErrorObjectExceptionValue","__serialized__","ignoreOnError","shouldIgnoreOnError","__sentry_wrapped__","sentryWrapped","wrappedArguments","SENTRY_SDK_SOURCE","sendClientReports","_flushOutcomes","eventFromException","eventFromMessage","eventFromString","captureUserFeedback","feedback","_isEnabled","tunnel","sent_at","createUserFeedbackEnvelopeItem","createUserFeedbackEnvelope","getSdkMetadata","_sendEnvelope","_prepareEvent","outcomes","_clearOutcomes","_dsn","discarded_events","clientReportItem","createClientReportEnvelope","instrumentConsole","validSeverityLevels","severityLevelFromString","MAX_ALLOWED_STRING_LENGTH","breadcrumbsIntegration","addConsoleInstrumentationHandler","_getConsoleBreadcrumbHandler","_getDomBreadcrumbHandler","_getXhrBreadcrumbHandler","_getFetchBreadcrumbHandler","_getHistoryBreadcrumbHandler","_getSentryBreadcrumbHandler","dedupeIntegration","previousEvent","currentEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","lineno","colno","currentFingerprint","previousFingerprint","globalHandlersIntegration","stackTraceLimit","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","_installGlobalOnErrorHandler","globalHandlerLog","_getUnhandledRejectionError","_installGlobalOnUnhandledRejectionHandler","httpContextIntegration","preprocessEvent","referrer","Referer","applyAggregateErrorsToEvent","exceptionFromErrorImplementation","maxValueLimit","exceptions","aggregateExceptionsFromError","prevExceptions","exceptionId","newExceptions","applyExceptionGroupFieldsForParentException","newException","newExceptionId","applyExceptionGroupFieldsForChildException","childError","is_exception_group","exception_id","parent_id","linkedErrorsIntegration","DEFAULT_EVENT_TARGET","browserApiErrorsIntegration","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","originalCallback","wrapOptions","globalObject","wrappedEventHandler","UNKNOWN_FUNCTION","createFrame","in_app","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","winjsRegex","defaultStackLineParsers","subMatch","extractSafariExtensionDetails","defaultStackParser","isSafariExtension","isSafariWebExtension","makePromiseBuffer","taskProducer","drain","capturedSetTimeout","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","bufferSize","rateLimits","filteredEnvelopeItems","envelopeItemDataCategory","getEventForEnvelopeItem","filteredEnvelope","recordEnvelopeLoss","textEncoder","__sentry__baseTransport__","cachedFetchImpl","makeFetchTransport","nativeFetch","getNativeFetchImplementation","pendingBodySize","pendingCount","requestSize","requestOptions","referrerPolicy","keepalive","fetchOptions","XHR_READYSTATE_DONE","makeXHRTransport","__SENTRY_RELEASE__","SENTRY_RELEASE","autoSessionTracking","initAndBind","startSessionTracking","browserInit","regular","accent","surface","onSurface","backdrop","createTheming","TouchableRipple","_background","disabledProp","_underlayColor","centered","calculatedRippleColor","touchY","ripple","containers","MaterialCommunityIcons","isErrorLogged","accessibilityElementsHidden","defaultIcon","MaterialCommunityIcon","isImageSource","getIconId","currentIcon","setCurrentIcon","previousIcon","setPreviousIcon","isValidIcon","opacityPrev","opacityNext","rotatePrev","rotateNext","customColor","IconComponent","CrossFadeIcon","buttonSize","accessibilityTraits","accessibilityComponentType","StyleContext","isTextInputFocused","forceFocus","IconAdornment","topPosition","contextState","TextInputIcon","forceTextInputFocus","onPressWithFocusControl","iconButton","AdornmentType","AdornmentSide","InputMode","AffixContext","textStyle","AffixAdornment","affix","maxFontSizeMultiplier","TextInputAffix","ADORNMENT_SIZE","ADORNMENT_OFFSET","getAdornmentConfig","adornmentConfig","adornment","Affix","getAdornmentStyleAdjustmentForNativeInput","leftAffixWidth","rightAffixWidth","inputOffset","isLeftSide","inputModeAdornemntOffset","Outlined","paddingKey","captalize","isAffix","mergedStyles","currentStyle","TextInputAdornment","onAffixChange","inputAdornmentComponent","commonProps","labelContainer","InputLabel","parentState","labelBackground","onLayoutAnimatedText","hasActiveOutline","placeholderStyle","baseLabelTranslateX","baseLabelTranslateY","placeholderOpacity","wiggleOffsetX","labelScale","paddingOffset","placeholderColor","errorColor","labelTranslationXOffset","labelTranslationX","labeled","labelLayout","measured","LabelBackground","hasFocus","outlinedLabel","calculateLabelTopPosition","labelHeight","optionalPadding","customHeight","calculateInputHeight","finalHeight","calculatePadding","calculateTextAreaPadding","calculateInputPadding","dense","refFontSize","interpolatePlaceholder","calculateFlatAffixTopPosition","affixHeight","calculateOutlinedIconAndAffixTopPosition","labelYOffset","TextInputOutlined","underlineColor","_underlineColor","customOutlineColor","activeOutlineColor","onLeftAffixLayoutChange","onRightAffixLayoutChange","fontSizeStyle","viewStyle","inputTextColor","labelWidth","labelHalfWidth","labelHalfHeight","inputHeight","paddingSettings","inputOutlinedDense","inputOutlined","paddingOut","fontHeight","refFontHeight","adjustPaddingOut","leftLayout","rightLayout","leftAffixTopPosition","rightAffixTopPosition","iconTopPosition","adornmentStyleAdjustmentForNativeInput","affixTopPosition","adornmentProps","Outline","TextInputFlat","activeUnderlineColor","isPaddingHorizontalPassed","calculateFlatInputHorizontalPadding","Flat","underlineColorCustom","minInputHeight","MIN_HEIGHT","inputFlatDense","inputFlat","paddingFlat","topResult","bottomResult","adjustPaddingFlat","flatHeight","Underline","densePatchContainer","patchContainer","errorProp","validInputValue","setPlaceholder","uncontrolledValue","setUncontrolledValue","setLabelLayout","setLeftLayout","setRightLayout","handleChangeText","handleLayoutAnimatedText","isFocusable","visuallyHiddenProps","useCheckbox","validationState","isLabelPressed","useToggle","checkboxGroupNames","useCheckboxGroupItem","toggleState","addValue","removeValue","useCheckboxGroup","fieldProps","useLabel","filterDOMProps","groupProps","mergeProps","useCheckboxGroupWeb","CheckboxGroupContext","_checkbox","selectedValues","existingValue","toggleValue","useCheckboxGroupState","CheckIcon","SizedIcon","checkboxGroupContext","mergedRef","groupItemInputProps","contextCombinedProps","CheckboxComponent","mergedWrapperRef","CheckTemp","defaultArrowHeight","defaultArrowWidth","getDiagonalLength","PopperProvider","usePopperContext","PopperContent","placementProp","setOverlayRef","restElements","actualPlacement","arrowHeight","arrowWidth","getContainerStyle","PopperArrow","additionalStyles","getArrowStyles","triangleStyle","arrowStyles","diagonalLength","Arrow","PopoverContext","popoverContentId","headerId","bodyId","setHeaderMounted","setBodyMounted","headerMounted","bodyMounted","isOpenProp","setIsOpen","uniqueId","handleOpen","arrowDefaultColor","finalFocusRefCurrentVal","restChildren","PopoverTemp","PopoverMain","ActionSheetContext","hideDragIndicator","disableOverlay","startIcon","rightIcon","leftIcon","endIcon","spinner","isLoading","spinnerPlacement","isLoadingText","spinnerElement","boxChildren","pan","sheetHeight","handleCloseRef","handleCloseCallback","handleCloseCurrent","panResponder","_evt","ActionsheetTemp","ActionsheetMain","ChevronDownIcon","SelectContext","_selectedItem","selectProps","flatListData","tempFix","dropdownIcon","dropdownCloseIcon","dropdownOpenIcon","_actionSheet","selectedItemArray","selectedItem","commonInput","SelectTemp","SelectMain","isSentryRequestUrl","hubOrClient","isHub","checkDsn","removeTrailingSlash","checkTunnel","REPLAY_SESSION_KEY","REPLAY_EVENT_NAME","UNABLE_TO_SEND_REPLAY","DEFAULT_FLUSH_MIN_DELAY","DEFAULT_FLUSH_MAX_DELAY","NETWORK_BODY_MAX_SIZE","CONSOLE_ARG_MAX_SIZE","REPLAY_MAX_EVENT_BUFFER_SIZE","MIN_REPLAY_DURATION","MAX_REPLAY_DURATION","_optionalChain$5","NodeType$1","_2","shadowRoot","isNativeShadowDom","stringifyStylesheet","stringifyRule","importStringified","isCSSImportRule","statement","layerName","supportsText","mediaText","escapeImportStatement","isCSSStyleRule","cssStringified","fixSafariColons","NodeType","Mirror","idNodeMap","nodeMetaMap","_3","getMeta","_4","_5","rhsFn","lhs","getIds","removeNodeFromMap","hasNode","shouldMaskInput","maskInputOptions","maskInputValue","maskInputFn","ORIGINAL_ATTRIBUTE_NAME","getInputType","getInputValue","tagNameRegex","IGNORED_NODE","genId","canvasService","canvasCtx","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","quote1","path1","quote2","path2","path3","filePath","maybeQuote","extractOrigin","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","isSVGElement","ownerSVGElement","getHref","transformAttribute","maskAttributeFn","collectCharacters","regEx","descriptorsStr","inParens","getAbsoluteSrcsetString","ignoreAttribute","distanceToMatch","matchPredicate","ELEMENT_NODE","createMatchPredicate","eIndex","elementClassMatchesRegex","e2","needMaskingText","maskTextClass","maskTextSelector","unmaskTextClass","unmaskTextSelector","maskAllText","autocomplete","maskDistance","unmaskDistance","serializeNode","mirror","blockClass","blockSelector","unblockSelector","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","rootId","docId","getRootId","compatMode","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName","styleSheets","_cssText","forceMask","__context","getImageData","originalGetImageData","is2DCanvasBlank","rr_dataURL","quality","canvasDataURL","blankCanvas","recordInlineImage","currentSrc","rr_mediaState","rr_mediaCurrentTime","rr_scrollLeft","rr_scrollTop","rr_width","rr_height","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","parentTagName","isStyle","isScript","isTextarea","_6","_7","_8","serializeTextNode","CDATA_SECTION_NODE","COMMENT_NODE","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","comment","headFavicon","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","isShadowHost","headWhitespace","bypassOptions","childN","serializedChildNode","isElement$1","isShadow","iframeEl","fired","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","_optionalChain$4","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle$1","hookSetter","isRevoked","patch","__rrweb_original__","cachedRequestAnimationFrameImplementation","nowTimestamp","_9","_10","_11","_12","_13","_14","getWindowHeight","getWindowWidth","isBlocked","checkAncestors","blockedPredicate","isUnblocked","blockDistance","unblockDistance","isAncestorRemoved","legacy_isTouchEvent","isSerializedIframe","isSerializedStylesheet","hasShadowRoot","_18","StyleSheetMirror","styleIDMap","idStyleMap","generateId","getShadowHost","shadowHost","_19","_20","_21","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","onRequestAnimationFrame","requestAnimationFrameImplementation","getRequestAnimationFrameImplementation","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","_optionalChain$3","_len5","_key5","isNodeInLinkedList","DoubleLinkedList","__ln","moveKey","MutationBuffer","frozen","locked","texts","removes","mapRemoves","movedMap","addedSet","movedSet","droppedSet","processMutations","processMutation","adds","addedIds","addList","getNextId","pushAdd","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","childSn","attachIframe","observeAttachShadow","attachLinkElement","isParentRemoved","isAncestorInSet","candidate","tailNode","unhandledNode","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","mutationCb","unattachedDoc","createHTMLDocument","isInputMasked","pname","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","processedNodeManager","inOtherBuffer","canvasManager","unlock","addsSet","_isParentRemoved","_isAncestorInSet","callbackWrapper","_optionalChain$2","_len6","_key6","mutationBuffers","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","__rrMutationObserver","angularZoneSymbol","Zone","__symbol__","onMutation","attributeOldValue","characterData","characterDataOldValue","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","currentPointerType","eventKey","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","TouchStart","TouchEnd","initScrollObserver","scrollCb","scrollLeftTop","INPUT_TAGS","lastInputValueMap","initInputObserver","inputCb","ignoreSelector","userTriggeredOnInput","userTriggered","cbWithDedup","lastInputValue","currentWindow","propertyDescriptor","hookProperties","HTMLOptionElement","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","getIdAndStyleId","styleMirror","styleId","ownerNode","initAdoptedStyleSheetObserver","hostId","patchTarget","originalPropertyDescriptor","sheets","_15","_16","adoptStyleSheets","initObservers","mutationObserver","mousemoveHandler","mousemoveCb","callbackThreshold","mousemoveCallback","timeBaseline","wrappedCb","totalOffset","DragEvent","Drag","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","viewportResizeCb","lastH","lastW","initViewportResizeObserver","mediaInteractionHandler","mediaInteractionCb","playbackRate","initMediaInteractionObserver","styleSheetObserver","styleSheetRuleCb","CSSStyleSheet","argumentsList","deleteRule","replaceSync","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","styleDeclarationCb","ignoreCSSAttributes","CSSStyleDeclaration","_17","initStyleDeclarationObserver","fontObserver","collectFonts","fontCb","originalFontFace","FontFace","family","fontFace","fontSource","restoreHandler","initFontObserver","selectionObserver","selectionCb","collapsed","updateSelection","isCollapsed","ranges","getRangeAt","startContainer","endContainer","endOffset","initSelectionObserver","customElementObserver","customElementCb","initCustomElementObserver","pluginHandlers","plugin","CrossOriginIframeMirror","generateIdFn","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","_optionalChain$1","_len7","_key7","IframeManagerNoop","crossOriginIframeMirror","crossOriginIframeRootIdMap","addLoadListener","IframeManager","iframes","crossOriginIframeMap","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","replaceIdOnNode","patchRootIdOnNode","IncrementalSnapshot","Mutation","DomContentLoaded","Plugin","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","iframeMirror","ShadowDomManagerNoop","ShadowDomManager","shadowDoms","restoreHandlers","patchAttachShadow","iframeElement","CanvasManagerNoop","StylesheetManager","trackedLinkElements","adoptedStyleSheetCb","linkEl","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","ProcessedNodeManager","nodeMap","periodicallyClear","thisBuffer","wrapEvent","eWithTime","_takeFullSnapshot","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","getCanvasManager","inEmittingFrame","passEmitsToParent","radio","checkbox","lastFullSnapshotEvent","NodeList","DOMTokenList","_len4","polyfill","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","takeFullSnapshot","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","__RRWEB_EXCLUDE_IFRAME__","getMirror","nodeMirror","getCanvasManagerFn","_getCanvasManager","__RRWEB_EXCLUDE_SHADOW_DOM__","slimDOM","initialOffset","canvasMutationCb","CustomElement","ReplayEventTypeIncrementalSnapshot","timestampToMs","timestampToS","addBreadcrumbEvent","replay","triggerUserActivity","checkAndHandleExpiredSession","addUpdate","throttledAddEvent","INTERACTIVE_SELECTOR","getClosestInteractive","getClickTargetNode","getTargetNode","isEventWithTarget","onWindowOpen","originalWindowOpen","_len8","_key8","ClickDetector","slowClickConfig","_addBreadcrumbEvent","_lastMutation","_lastScroll","_clicks","_threshold","_scollTimeout","_replay","_ignoreSelector","addListeners","cleanupWindowOpen","nowInSeconds","_teardown","_checkClickTimeout","SLOW_CLICK_TAGS","ignoreElement","isClickBreadcrumb","newClick","clickBreadcrumb","clickCount","_scheduleCheckClicks","registerMutation","registerScroll","registerClick","_handleMultiClick","_getClicks","_checkClicks","timedOutClicks","mutationAfter","scrollAfter","_generateBreadcrumbs","hadScroll","hadMutation","isSlowClick","timeAfterClickMs","endReason","updateClickDetectorForRecordingEvent","clickDetector","isIncrementalEvent","isIncrementalMouseInteraction","createBreadcrumb","ATTRIBUTES_TO_RECORD","getAttributesToRecord","normalizedKey","handleDomListener","isClick","getDomTarget","getBaseDomBreadcrumb","handleDom","handleKeyboardEvent","updateUserActivity","isInputElement","hasModifierKey","isCharacterKey","baseBreadcrumb","getKeyboardBreadcrumb","ENTRY_TYPES","decodedBodySize","encodedBodySize","responseStatus","paint","domComplete","domContentLoadedEventStart","loadEventStart","redirectCount","createPerformanceEntry","setupPerformanceObserver","addPerformanceEntry","performanceEntries","onEntries","clearCallbacks","replayPerformanceEntries","getLargestContentfulPaint","clearCallback","__SENTRY_DEBUG__","logInfo","shouldAddBreadcrumb","addLogBreadcrumb","logInfoNextTick","EventBufferSizeExceededError","EventBufferArray","_totalSize","hasCheckout","hasEvents","addEvent","eventSize","eventsRet","getEarliestTimestamp","WorkerHandler","worker","_worker","ensureReady","_ensureReadyPromise","_getAndIncrementId","EventBufferCompressionWorker","_earliestTimestamp","_sendEventToWorker","_finishRequest","EventBufferProxy","_fallback","_compression","_used","_ensureWorkerIsLoadedPromise","_ensureWorkerIsLoaded","ensureWorkerIsLoaded","_switchToCompressionWorker","addEventPromises","createEventBuffer","useCompression","workerUrl","customWorkerUrl","__SENTRY_EXCLUDE_REPLAY_WORKER__","_getWorkerUrl","_loadWorker","hasSessionStorage","clearSession","deleteSession","isSampled","lastActivity","segmentId","previousSessionId","saveSession","createSession","sessionSampleRate","allowBuffering","stickySession","getSessionSampleType","isExpired","initialTime","targetTime","isSessionExpired","maxReplayDuration","sessionIdleExpire","shouldRefreshSession","loadOrCreateSession","sessionOptions","traceInternals","existingSession","sessionStringFromStorage","sessionObj","fetchSession","addEventSync","shouldAddEvent","_addEvent","eventBuffer","recordingMode","eventAfterPossibleCallback","isCustomEvent","maybeApplyCallback","beforeAddRecordingEvent","timestampInMs","timeouts","sessionIdlePause","initialTimestamp","isTransactionEvent","isFeedbackEvent","handleAfterSendEvent","enforceStatusCode","getTransport","isBaseTransportSend","sendResponse","replayContext","traceIds","handleTransactionEvent","errorIds","replayId","beforeErrorSampling","sendBufferedReplayOrFlush","handleErrorEvent","handleBeforeSendEvent","exceptionValue","handleHydrationError","handleGlobalEventListener","afterSendHandler","isReplayEvent","replay_id","getSessionId","addFeedbackBreadcrumb","__rrweb__","isRrwebError","captureExceptions","isErrorEventSampled","errorSampleRate","shouldSampleForBufferEvent","createPerformanceSpans","handleHistorySpanListener","handleHistory","urls","addNetworkBreadcrumb","shouldFilterRequest","handleXhrSpanListener","handleXhr","getBodySize","formDataStr","_serializeFormData","parseContentLengthHeader","getBodyString","mergeWarning","_meta","newMeta","existingWarnings","makeNetworkReplayBreadcrumb","dropUndefinedKeys","buildSkippedNetworkRequestOrResponse","bodySize","buildNetworkRequestOrResponse","normalizedBody","exceedsSizeLimit","isProbablyJson","_strIsProbablyJson","truncatedBody","e3","normalizeNetworkBody","getAllowedHeaders","allowedHeaders","filteredHeaders","formData","urlMatches","fullUrl","baseURI","fixedUrl","getFullUrl","stringMatchesSomePattern","captureFetchBreadcrumbToReplay","request_body_size","requestBodySize","response_body_size","responseBodySize","captureDetails","networkDetailAllowUrls","networkDetailDenyUrls","networkCaptureBodies","networkRequestHeaders","getHeadersFromOptions","getRequestHeaders","_getFetchRequestArgBody","bodyStr","_getRequestInfo","networkResponseHeaders","getAllHeaders","bodyText","_tryCloneResponse","_getResponseText","txt","_tryGetResponseText","_parseFetchResponseBody","getResponseData","_getResponseInfo","_prepareFetchData","allHeaders","captureXhrBreadcrumbToReplay","getResponseHeaders","requestWarning","responseWarning","outerHTML","_parseXhrResponse","_getXhrResponseBody","_prepareXhrData","enrichXhrBreadcrumb","reqSize","resSize","_getBodySize","handleNetworkBreadcrumbs","_isXhrBreadcrumb","_isXhrHint","_isFetchBreadcrumb","_isFetchHint","enrichFetchBreadcrumb","beforeAddNetworkBreadcrumb","handleFetch","handleFetchSpanListener","_LAST_BREADCRUMB","handleScopeListener","newBreadcrumb","isBreadcrumbWithCategory","normalizedArgs","normalizedArg","normalizeConsoleBreadcrumb","handleScope","hasHooks","createMemoryEntry","memoryEntry","jsHeapSizeLimit","totalJSHeapSize","usedJSHeapSize","memory","getHandleRecordingEmit","hadFirstEvent","_isCheckout","setInitialState","shouldRecordCanvas","isRecordingCanvas","useCompressionOption","blockAllMedia","networkDetailHasUrls","networkRequestHasHeaders","networkResponseHasHeaders","createOptionsEvent","addSettingsEvent","earliestEvent","sendReplayRequest","recordingData","segment_id","eventContext","preparedRecordingData","payloadWithSequence","replayHeaders","prepareRecordingData","baseEvent","replay_start_timestamp","error_ids","trace_ids","replay_type","replayEvent","eventHint","_integrations","preparedEvent","prepareReplayEvent","createEnvelope","createEventEnvelopeHeaders","getSdkMetadataForEnvelopeHeader","createReplayEnvelope","TransportStatusCodeError","updateRateLimits","isRateLimited","RateLimitError","sendReplay","replayData","retryConfig","_retryCount","THROTTLED","durationSeconds","isThrottled","wasThrottled","ReplayContainer","_ref35","recordingOptions","__init","__init2","__init3","__init4","__init5","__init6","_lastActivity","_isPaused","_hasInitializedCoreListeners","_recordingOptions","_debouncedFlush","callbackReturnValue","maxTimerId","cancelTimers","flushMinDelay","flushMaxDelay","_throttledAddEvent","slowClickTimeout","slowClickIgnoreSelectors","initializeSampling","_initializeSessionForSampling","_initializeRecording","_handleException","startBuffering","startRecording","canvasOptions","_stopRecording","_onMutationHandler","stopRecording","forceFlush","_removeListeners","_checkSession","continueRecording","flushImmediate","activityTime","hasStoppedRecording","_updateUserActivity","_updateSessionActivity","_maybeSaveSession","cbResult","conditionalFlush","cancelFlush","_clearContext","lastTransaction","_addListeners","_refreshSession","_handleVisibilityChange","_handleWindowBlur","_handleWindowFocus","_handleKeyboardEvent","feedbackEvent","includeReplay","addGlobalListeners","_performanceCleanupCallback","_doChangeToForegroundTasks","_doChangeToBackgroundTasks","_createCustomBreadcrumb","_addPerformanceEntries","_updateInitialTimestampFromEventBuffer","_popEventContext","_runFlush","addMemoryEntry","tooShort","minReplayDuration","tooLong","_flushLock","mutationLimit","overMutationLimit","mutationBreadcrumbLimit","getOption","defaultSelectors","deprecatedClassOption","deprecatedSelectorOption","allSelectors","MEDIA_SELECTORS","DEFAULT_NETWORK_HEADERS","Replay","__initStatic","maskAttributes","unmask","unblock","maskFn","privacyOptions","_ref36","getPrivacyOptions","_ref37","maskAttribute","_initialOptions","_getMergedNetworkHeaders","_isInitialized","_setup","_initialize","getReplayId","_maybeLoadFromReplayCanvasIntegration","finalOptions","initialOptions","replaysSessionSampleRate","replaysOnErrorSampleRate","loadReplayOptionsFromClient","canvasIntegration","getIntegrationByName","createMetricEnvelope","metricBucketItems","tagEntries","maybeTags","serializeMetricBuckets","createMetricEnvelopeItem","ALREADY_SEEN_ERROR","_integrationsInitialized","_numProcessing","_outcomes","_hooks","_transport","transportOptions","_process","_captureEvent","eventMessage","promisedEvent","sendSession","metricsAggregator","_isClientDoneProcessing","clientFinished","transportFlushed","forceInitialize","_setupIntegrations","getIntegrationById","integrationId","integrationName","addIntegration","isAlreadyInstalled","sdkInfo","packages","enhanceEventWithSdkInfo","envelopeHeaders","eventItem","createEventEnvelope","envelopeItem","createSessionEnvelope","Factory","StyledComponent","calculatedProps","localTheme","propsReceived","usePropsWithComponentTheme","tokenizedFontSize","StyledAs","pseudoIconProp","clonedIcon","isDomUsable","blinkAnim","tokenisedStartColor","blink","skeletonStyle","skeleton","computedChildren","SkeletonTemp","SkeletonMain","isAttached","ButtonTemp","ButtonMain","filterAndCalculateProps","remainingProps","filterShadowProps","DEBUG_STYLES","cols","spacingX","spacingY","minChildWidth","useThemeProps","cellSpacing","cellSpacingX","cellSpacingY","rowSlices","rowIndex","addOnPressFunctionality","linkToHREF","isExternal","linkProps","platformLinkProps","useLink","linkTextProps","HybridProvider","isTextColorAccessible","escapeKeyListener","lastHandler","defaultInitialWindowMetricsBasedOnPlatform","defaultInitialWindowMetrics","NativeBaseProvider","propsTheme","enableRem","InitializeToastRef"],"mappings":"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CACN,SACA,IACA,YACA,KACA,cACA,KACA,eACA,KACA,aACA,KACA,UACA,KACA,UACA,MAEF3C,QAAS,CACP,UACA,IACA,aACA,KACA,eACA,KACA,gBACA,KACA,cACA,KACA,WACA,KACA,WACA,MAEFumB,OAAQ,CACN,SACA,cACA,cACA,cACA,eACA,YACA,iBACA,iBACA,iBACA,sBACA,uBACA,cACA,mBACA,mBACA,mBACA,eACA,oBACA,oBACA,oBACA,yBACA,0BACA,aACA,kBACA,kBACA,kBACA,UACA,UACA,WAEFywC,OAAQ,CACN,QACA,IACA,SACA,IACA,UACA,WACA,OACA,OACA,YACA,WACA,OACA,YACA,OACA,OACA,gBACA,WACA,YACA,aAEFC,QAAS,CACP,aACA,eACA,eACA,iBACA,WACA,gBACA,OACA,WACA,aACA,YACA,cACA,YACA,SAEFr8D,SAAU,CAAC,WAAY,SAAU,MAAO,QAAS,SAAU,QAC3Ds8D,QAAS,CAAC,eAAgB,eAAgB,gBAC1CrT,WAAY,CAAC,KAAM,kBAAmB,YAGjC,SAASnB,EAAcv0D,GAC5B,OAAOgpE,IAAOhpE,EAAKoyD,IACpB,CACM,SAAS6W,EAAgBv7E,GAK9B,IAJA,IAAIsC,EAAS,GACTk5E,EACF,iEAEO37E,EAAI,EAAGA,EAAIG,EAAQH,IAC1ByC,GAAUk5E,EAAWlvE,OAAOwF,KAAKC,MAFZypE,GAEkB1pE,KAAK6G,WAE9C,OAAOrW,CACR,CAED,SAASm5E,EAAYnpE,EAAUw1C,GAC7B,MAAM8J,EAAW,GAMjB,OALAlzD,OAAOqU,KAAKT,GAAKkB,SAAS9S,IACpBonD,EAAOx3C,SAAS5P,KAClBkxD,EAAIlxD,GAAO4R,EAAI5R,GAChB,IAEIkxD,CACR,CACM,SAASyT,EAAuBx1C,EAAai4B,GAClD,MAAO,CACL+e,EAAc4U,EAAY5rD,EAAQi4B,IAClC+e,EAAc6U,IAAK7rD,EAAQi4B,IAE9B,CAOM,SAAS6zB,EAAgB9rD,EAAai4B,GAC3C,MAAO,CACL+e,EAAc18B,IAAKta,EAAQi4B,IAC3B+e,EAAc6U,IAAK7rD,EAA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SACL,OAAK,SACL,OAAK,UACL,OAAK,QACL,OAAK,QACL,OAAK,QACL,OAAK,SACL,OAAK,QACL,OAAK,WACL,OAAK,SACL,OAAK,SACL,OAAK,UACL,OAAK,UACL,OAAK,SACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,OAAK,SACL,OAAK,UACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,WACL,OAAK,SACL,OAAK,UACL,OAAK,UACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,OAAK,QACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,WACL,OAAK,SACL,OAAK,UACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,OAAK,WACL,OAAK,UACL,OAAK,UACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,WACL,OAAK,SACL,OAAK,UACL,OAAK,UACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,OAAK,QACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,WACL,OAAK,SACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,OAAK,WACL,OAAK,UACL,OAAK,SACL,IAAM,SACN,IAAK,QACL,IAAK,OACL,IAAK,OACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,SACL,SAAK,WACL,SAAK,SACL,SAAK,QACL,SAAK,QACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,SACL,SAAK,QACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,OACL,SAAK,OACL,SAAK,OACL,SAAK,YACL,SAAK,OACL,SAAK,QACL,SAAK,UACL,SAAK,QACL,SAAK,YACL,SAAK,QACL,SAAK,QACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,SACL,SAAK,QACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,OACL,SAAK,OACL,SAAK,OACL,SAAK,YACL,SAAK,OACL,SAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,QACL,SAAK,YACL,SAAK,QACL,SAAK,QACL,SAAK,QACL,SAAK,UACL,SAAK,aACL,SAAK,UACL,SAAK,QACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,YACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,WACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,OACL,SAAK,SACL,SAAK,QACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,QACL,SAAK,QACL,SAAK,OACL,SAAK,QACL,SAAK,QACL,SAAK,QACL,SAAK,WACL,SAAK,QACL,SAAK,SACL,SAAK,UACL,SAAK,OACL,SAAK,UACL,SAAK,OACL,SAAK,OACL,SAAK,QACL,SAAK,QACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,SACL,SAAK,SACL,SAAK,QACL,SAAK,WACL,SAAK,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AAK,SACL,SAAK,SACL,SAAK,YACL,SAAK,SACL,SAAK,kBACL,SAAK,WACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,eAAM,QACN,OAAK,UACL,SAAK,QACL,SAAK,UACL,IAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,OACL,eAAM,SACN,OAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,SACL,SAAK,SACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,cACL,SAAK,iBACL,SAAK,UACL,SAAK,cACL,SAAK,wBACL,SAAK,sBACL,SAAK,UACL,SAAK,sBACL,SAAK,uBACL,SAAK,qBACL,SAAK,uBACL,SAAK,QACL,SAAK,eACL,eAAM,SACN,SAAK,WACL,SAAK,QACL,OAAK,QACL,OAAK,WACL,SAAK,WACL,OAAK,UACL,SAAK,QACL,SAAK,SACL,eAAM,QACN,OAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,qBACL,SAAK,yBACL,SAAK,UACL,eAAM,SACN,SAAK,YACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,gBACL,SAAK,SACL,SAAK,QACL,OAAK,SACL,SAAK,UACL,SAAK,iBACL,SAAK,QACL,eAAM,QACN,SAAK,sBACL,SAAK,SACL,eAAM,SACN,SAAK,WACL,SAAK,SACL,SAAK,SACL,IAAK,OACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,QACL,SAAK,SACL,eAAM,QACN,SAAK,QACL,eAAM,SACN,SAAK,QACL,SAAK,cACL,SAAK,SACL,SAAK,mBACL,SAAK,YACL,SAAK,QACL,SAAK,WACL,eAAM,SACN,SAAK,OACL,SAAK,WACL,SAAK,UACL,IAAK,QACL,SAAK,UACL,SAAK,kBACL,SAAK,WACL,SAAK,gBACL,SAAK,SACL,SAAK,WACL,SAAK,WACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,OAAK,WACL,OAAK,UACL,SAAK,QACL,SAAK,SACL,SAAK,aACL,OAAK,WACL,SAAK,UACL,SAAK,OACL,SAAK,QACL,SAAK,QACL,SAAK,SACL,SAAK,OACL,SAAK,OACL,SAAK,UACL,eAAM,SACN,SAAK,SACL,SAAK,aACL,SAAK,WACL,SAAK,UACL,OAAK,SACL,SAAK,UACL,SAAK,QACL,eAAM,QACN,eAAM,SACN,eAAM,SACN,SAAK,WACL,SAAK,UACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,QACL,eAAM,QACN,eAAM,SACN,eAAM,SACN,SAAK,SACL,IAAK,OACL,SAAK,WACL,SAAK,WACL,SAAK,SACL,SAAK,WACL,SAAK,qBACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,sBACL,SAAK,oBACL,SAAK,sBACL,SAAK,WACL,SAAK,mBACL,SAAK,oBACL,SAAK,UACL,SAAK,eACL,SAAK,kBACL,SAAK,UACL,SAAK,oBACL,SAAK,mBACL,SAAK,qBACL,SAAK,oBACL,SAAK,kBACL,SAAK,oBACL,SAAK,UACL,SAAK,kBACL,SAAK,cACL,SAAK,SACL,SAAK,OACL,SAAK,aACL,SAAK,QACL,SAAK,SACL,eAAM,QACN,SAAK,OACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,eAAM,SACN,SAAK,YACL,SAAK,YACL,SAAK,QACL,SAAK,WACL,SAAK,OACL,SAAK,QACL,SAAK,QACL,SAAK,gBACL,SAAK,WACL,eAAM,QACN,SAAK,OACL,eAAM,SACN,SAAK,OACL,SAAK,SACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,mBACL,KAAM,YACN,eAAM,QACN,SAAK,YACL,OAAK,SACL,SAAK,aACL,SAAK,QACL,SAAK,WACL,SAAK,cACL,SAAK,UACL,SAAK,YACL,SAAK,OACL,eAAM,UACN,SAAK,YACL,SAAK,SACL,SAAK,SACL,eAAM,UACN,eAAM,SACN,SAAK,SACL,eAAM,SACN,SAAK,UACL,eAAM,UACN,eAAM,WACN,SAAK,kBACL,eAAM,uBACN,SAAK,oBACL,SAAK,QACL,SAAK,SACL,SAAK,SACL,eAAM,SACN,eAAM,SACN,SAAK,UACL,eAAM,4BACN,eAAM,sBACN,SAAK,UACL,eAAM,YACN,SAAK,WACL,SAAK,YACL,SAAK,mBACL,eAAM,wBACN,SAAK,qBACL,eAAM,oBACN,SAAK,YACL,eAAM,sBACN,SAAK,YACL,eAAM,UACN,SAAK,cACL,SAAK,UACL,eAAM,YACN,SAAK,WACL,eAAM,qBACN,eAAM,UACN,SAAK,cACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,YACL,SAAK,UACL,eAAM,SACN,OAAK,WACL,SAAK,OACL,SAAK,UACL,OAAK,WACL,OAAK,UACL,SAAK,QACL,SAAK,WACL,eAAM,QACN,OAAK,WACL,SAAK,UACL,SAAK,QACL,SAAK,YACL,eAAM,SACN,SAAK,UACL,SAAK,UACL,SAAK,OACL,eAAM,SACN,OAAK,WACL,OAAK,WACL,SAAK,WACL,OAAK,SACL,SAAK,UACL,SAAK,cACL,SAAK,SACL,SAAK,oBACL,SAAK,SACL,SAAK,QACL,eAAM,QACN,SAAK,QACL,SAAK,OACL,OAAK,OACL,SAAK,WACL,SAAK,OACL,SAAK,SACL,SAAK,WACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,eAAM,SACN,SAAK,QACL,IAAM,SACN,eAAM,QACN,SAAK,cACL,eAAM,SACN,SAAK,aACL,OAAK,QACL,SAAK,WACL,SAAK,SACL,SAAK,sBACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,aACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,SAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,uBACL,SAAK,qBACL,SAAK,uBACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,mBACL,SAAK,UACL,SAAK,qBACL,SAAK,oBACL,SAAK,sBACL,SAAK,qBACL,SAAK,mBACL,SAAK,qBACL,SAAK,mBACL,SAAK,mBACL,SAAK,UACL,SAAK,iBACL,SAAK,UACL,SAAK,YACL,SAAK,QACL,SAAK,gBACL,SAAK,WACL,SAAK,SACL,SAAK,WACL,SAAK,WACL,SAAK,OACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,QACL,eAAM,QACN,SAAK,YACL,SAAK,UACL,SAAK,WACL,eAAM,SACN,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,aACL,SAAK,eACL,SAAK,aACL,SAAK,eACL,SAAK,UACL,eAAM,SACN,SAAK,WACL,SAAK,WACL,SAAK,aACL,SAAK,SACL,SAAK,WACL,SAAK,gBACL,SAAK,YACL,SAAK,QACL,SAAK,WACL,SAAK,WACL,SAAK,aACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,KAAM,QACN,SAAK,QACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,eAAM,QACN,SAAK,cACL,SAAK,UACL,eAAM,eACN,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,eAAM,SACN,SAAK,SACL,eAAM,SACN,SAAK,WACL,OAAK,WACL,SAAK,SACL,SAAK,aACL,SAAK,UACL,SAAK,WACL,OAAK,UACL,SAAK,QACL,SAAK,WACL,eAAM,QACN,OAAK,WACL,SAAK,UACL35E,EAAK,WACL,SAAK,eACL,SAAK,SACL,SAAK,qBACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,eAAM,SACN,SAAK,eACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,aACL,SAAK,YACL,SAAK,YACL,SAAK,UACL,SAAK,YACL,SAAK,UACL,eAAM,SACN,SAAK,WACL,OAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,QACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,IAAK,SACL,SAAK,sBACL,SAAK,WACL,SAAK,WACL,eAAM,QACN,eAAM,SACN,eAAM,SACN,SAAK,WACL,SAAK,UACL,SAAK,WACL,eAAM,QACN,eAAM,SACN,eAAM,SACN,eAAM,QACN,SAAK,OACL,eAAM,SACN,eAAM,SACN,SAAK,SACL,SAAK,SACL,SAAK,SACL,OAAK,WACL,SAAK,UACL,SAAK,QACL,eAAM,QACN,eAAM,SACN,eAAM,SACN,SAAK,SACL,SAAK,SACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,SACL,SAAK,SACL,SAAK,WACL,SAAK,aACL,eAAM,SACN,OAAK,WACL,SAAK,WACL,SAAK,WACL,eAAM,QACN,SAAK,QACL,OAAK,UACL,SAAK,QACL,OAAK,UACL,eAAM,QACN,OAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,aACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,kBACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,UACL,SAAK,YACL,SAAK,aACL,SAAK,WACL,SAAK,YACL,SAAK,UACL,eAAM,SACN,SAAK,QACL,SAAK,WACL,SAAK,aACL,SAAK,SACL,IAAK,SACL,OAAK,UACL,eAAM,SACN,IAAK,WACL,OAAK,WACL,OAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,aACL,SAAK,aACL,SAAK,QACL,SAAK,WACL,SAAK,YACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,eAAM,QACN,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,UAAM,QACN,eAAM,YACN,SAAK,SACL,eAAM,SACN,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,WACL,eAAM,SACN,SAAK,UACL,KAAM,SACN,SAAK,UACL,SAAK,aACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,QACL,SAAK,WACL,SAAK,aACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,eAAM,SACN,SAAK,UACL,SAAK,UACL,SAAK,WACL,OAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,SACL,SAAK,YACL,OAAK,SACL,eAAM,QACN,SAAK,SACL,SAAK,cACL,SAAK,QACL,SAAK,QACL,SAAK,SACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,OACL,SAAK,SACL,SAAK,SACL,SAAK,UACL,SAAK,aACL,SAAK,WACL,SAAK,YACL,SAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,SAAK,eACL,SAAK,YACL,eAAM,SACN,SAAK,WACL,SAAK,UACL,SAAK,UACL,eAAM,SACN,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,YACL,SAAK,gBACL,SAAK,gBACL,SAAK,mBACL,SAAK,YACL,SAAK,QACL,SAAK,aACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,eAAM,SACN,SAAK,oBACL,SAAK,YACL,SAAK,UACL,SAAK,UACL,OAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,QACL,SAAK,mBACL,SAAK,UACL,OAAK,QACL,SAAK,UACL,SAAK,YACL,SAAK,WACL,eAAM,QACN,SAAK,UACL,SAAK,WACL,SAAK,UACL,OAAK,WACL,SAAK,WACL,SAAK,SACL,SAAK,aACL,SAAK,WACLs5F,EAAK,WACL,eAAM,SACN,SAAK,SACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,aACL,SAAK,WACL,eAAM,SACN,SAAK,SACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,iBACL,SAAK,YACL,SAAK,SACL,SAAK,aACL,OAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,OAAK,UACL,SAAK,YACL,SAAK,QACL,SAAK,SACL,SAAK,kBACL,eAAM,QACN,SAAK,OACL,OAAK,WACL,SAAK,eACL,SAAK,WACL,SAAK,OACL,SAAK,aACL,SAAK,QACL,SAAK,gBACL,SAAK,WACL,SAAK,UACL,SAAK,eACL,SAAK,WACL,SAAK,WACL,SAAK,SACL,SAAK,QACL,SAAK,SACL,SAAK,UACL,eAAM,SACN,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,YACL,SAAK,eACL,IAAK,WACL,SAAK,YACL,SAAK,YACL,SAAK,aACL,SAAK,iBACL,SAAK,UACL,SAAK,SACL,SAAK,QACL,OAAK,QACL,OAAK,SACL,SAAK,SACL,IAAK,SACL,SAAK,QACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,eAAM,QACN,SAAK,UACLmgR,GAAM,UACN,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,eAAM,SACN,SAAK,cACL,SAAK,UACL,SAAK,aACL,OAAK,SACL,SAAK,WACL,OAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,OAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,eAAM,SACN,SAAK,eACL,SAAK,WACL,SAAK,UACL,SAAK,cACL,SAAK,WACL,SAAK,UACL,SAAK,QACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,YACL,SAAK,aACL,eAAM,SACN,SAAK,WACL,eAAM,QACN,SAAK,UACL,SAAK,SACL,SAAK,QACL,SAAK,QACL,SAAK,QACL,SAAK,UACL,SAAK,aACL,SAAK,SACL,SAAK,UACL,eAAM,SACN,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,YACL,SAAK,WACL,eAAM,SACN,SAAK,WACL,SAAK,YACL,SAAK,wBACL,SAAK,WACL,SAAK,UACL,SAAK,cACL,SAAK,SACL,SAAK,WACL,eAAM,QACN,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,eAAM,SACN,SAAK,WACL,eAAM,SACN,SAAK,WACL,SAAK,WACL,OAAK,WACL,OAAK,UACL,SAAK,QACL,SAAK,SACL,OAAK,UACL,eAAM,QACN,OAAK,WACL,SAAK,SACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,eAAM,SACN,SAAK,SACL,OAAK,WACL,eAAM,SACN,SAAK,UACL,SAAK,YACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,OAAK,SACL,SAAK,UACL,SAAK,QACL,eAAM,QACN,SAAK,UACL,eAAM,SACN,eAAM,SACN,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,aACL,SAAK,WACL,SAAK,QACL,eAAM,QACN,SAAK,WACL,SAAK,SACL,SAAK,SACL,eAAM,SACN,eAAM,SACN,SAAK,WACL,SAAK,UACL,SAAK,eACL,SAAK,SACL,SAAK,WACL,SAAK,aACL,SAAK,WACL,SAAK,UACL,SAAK,eACL,OAAK,UACL,SAAK,YACL,SAAK,WACL,SAAK,kBACL,SAAK,WACL,SAAK,YACL,SAAK,kBACL,SAAK,QACL,SAAK,WACL,SAAK,SACL,eAAM,UACN,SAAK,UACL,SAAK,UACL,IAAK,SACL,IAAK,SACL,SAAK,UACL,SAAK,YACL,SAAK,YACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,SACL,SAAK,YACL,SAAK,aACL,SAAK,SACL,SAAK,QACL,SAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,YACL,SAAK,aACL,eAAM,SACN,SAAK,WACL,SAAK,UACL,SAAK,WACL,eAAM,QACN,SAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,eACL,SAAK,UACL,SAAK,aACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,eAAM,SACN,SAAK,WACL,SAAK,YACL,SAAK,WACL,SAAK,YACL,IAAK,SACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,UACL,SAAK,WACL,eAAM,SACN,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,YACL,SAAK,WACL,SAAK,iBACL,SAAK,aACL,SAAK,YACL,eAAM,SACN,SAAK,UACL,OAAK,UACL,SAAK,SACL,SAAK,YACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,UACL,eAAM,QACN,SAAK,QACL,OAAK,UACL,SAAK,WACL,SAAK,UACL,SAAK,YACL,SAAK,SACL,SAAK,WACL,eAAM,SACN,eAAM,SACN,SAAK,OACL,SAAK,UACL,eAAM,QACN,eAAM,QACN,SAAK,UACL,SAAK,UACL,eAAM,QACN,eAAM,QACN,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,eAAM,SACN,eAAM,SACN,eAAM,UACN,SAAK,UACL,SAAK,YACL,SAAK,SACL,SAAK,WACL,SAAK,WACL,eAAM,aACN,SAAK,SACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,SAAK,WACL,eAAM,UACN,SAAK,SACL,eAAM,QACN,SAAK,oBACL,SAAK,UACL,SAAK,QACL,SAAK,SACL,SAAK,SACL,eAAM,UACN,SAAK,eACL,SAAK,SACL,eAAM,SACN,OAAK,QACL,eAAM,WACN,eAAM,aACN,SAAK,YACL,SAAK,YACL,SAAK,YACL,SAAK,YACL,eAAM,WACN,eAAM,UACN,SAAK,YACL,SAAK,gBACL,eAAM,WACN,eAAM,WACN,eAAM,SACN,SAAK,SACL,eAAM,eACN,SAAK,SACL,eAAM,eACN,OAAK,WACL,SAAK,OACL,IAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,eAAM,SACN,SAAK,WACL,eAAM,SACN,UAAM,SACN,SAAK,YACL,SAAK,WACL,eAAM,SACN,UAAM,SACN,eAAM,YACN,SAAK,WACL,eAAM,YACN,eAAM,UACN,SAAK,UACL,SAAK,WACL,SAAK,WACL,OAAK,WACL,OAAK,UACL,SAAK,QACL,SAAK,WACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,eAAM,QACN,SAAK,SACL,OAAK,WACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,QACL,SAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,SACL,eAAM,SACN,SAAK,SACL,SAAK,UACL,SAAK,QACL,SAAK,QACL,SAAK,SACL,OAAK,SACL,OAAK,SACL,SAAK,WACL,SAAK,SACL,SAAK,YACL,SAAK,QACL,OAAK,WACL,SAAK,SACL,OAAK,WACL,SAAK,aACL,OAAK,SACL,SAAK,UACL,OAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,QACL,IAAK,WACL,IAAK,WACL,SAAK,WACL,SAAK,YACL,eAAM,QACN,SAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,OACL,SAAK,UACL,SAAK,YACL,IAAK,SACL,SAAK,aACL,SAAK,YACL,SAAK,WACL,SAAK,UACL,SAAK,YACL,SAAK,YACL,SAAK,aACL,eAAM,SACN,OAAK,UACL,SAAK,QACL,SAAK,eACL,SAAK,UACL,SAAK,SACL,SAAK,WACL,SAAK,UACL,SAAK,aACL,SAAK,aACL,SAAK,aACL,SAAK,WACL,eAAM,SACN,SAAK,QACL,SAAK,WACL,eAAM,QACN,eAAM,SACN,SAAK,WACL,eAAM,SACN,SAAK,YACL,IAAK,UACL,SAAK,WACL,SAAK,SACL,eAAM,SACN,SAAK,WACL,SAAK,aACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,WACL,SAAK,YACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,YACL,SAAK,mBACL,SAAK,oBACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,IAAK,SACL,IAAK,SACL,SAAK,UACL,SAAK,YACL,SAAK,YACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,SACL,SAAK,YACL,SAAK,SACL,SAAK,SACL,SAAK,WACL,eAAM,QACN,SAAK,WACL,SAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,SAAK,QACL,SAAK,eACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,eAAM,SACN,SAAK,WACL,SAAK,YACL,IAAK,SACL,SAAK,WACL,SAAK,aACL,SAAK,WACL,eAAM,SACN,SAAK,WACL,SAAK,kBACL,SAAK,aACL,SAAK,YACL,SAAK,OACL,SAAK,WACL,SAAK,QACL,SAAK,eACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,aACL,SAAK,gBACL,SAAK,aACL,SAAK,aACL,SAAK,QACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,OAAK,SACL,IAAK,SACL,SAAK,SACL,SAAK,SACL,eAAM,QACN,SAAK,UACL,SAAK,WACL,SAAK,SACL,OAAK,QACL,SAAK,UACL,SAAK,aACL,SAAK,WACL,SAAK,SACL,SAAK,UACL,SAAK,SACL,SAAK,UACL,SAAK,UACL,SAAK,YACL,SAAK,YACL,SAAK,WACL,SAAK,aACL,SAAK,WACL,SAAK,QACL,SAAK,SACL,eAAM,UACN,SAAK,WACL,IAAK,QACL,SAAK,SACL,SAAK,WACL,eAAM,SACN,SAAK,cACL,eAAM,WACN,eAAM,WACN,eAAM,SACN,SAAK,SACL,SAAK,WACL,SAAK,cACL,SAAK,WACL,SAAK,YACL,SAAK,YACL,SAAK,eACL,SAAK,cACL,SAAK,YACL,SAAK,YACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,SACL,OAAK,SACL,OAAK,SACL,OAAK,SACL,SAAK,cACL,SAAK,WACL,SAAK,YACL,SAAK,YACL,SAAK,YACL,SAAK,YACL,SAAK,YACL,SAAK,YACL,SAAK,eACL,SAAK,cACL,SAAK,YACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,OAAK,UACL,SAAK,WACL,SAAK,QACL,SAAK,WACL,SAAK,WACL,SAAK,QACL,SAAK,WACL,eAAM,QACN,SAAK,UACL,SAAK,aACL,OAAK,UACL,OAAK,UACL,SAAK,aACL,SAAK,WACL,SAAK,WACL,SAAK,WACL,eAAM,SACN,SAAK,YACL,SAAK,WACL,SAAK,SACL,SAAK,SACL,SAAK,WACL,SAAK,aACL,SAAK,YACL,SAAK,UACL,SAAK,YACL,SAAK,aACL,eAAM,SACN,SAAK,SACL,SAAK,UACL,SAAK,WACL,SAAK,SACL,OAAK,WACL,SAAK,UACL,SAAK,WACL,OAAK,UACL,SAAK,QACL,SAAK,WACL,SAAK,WACL,eAAM,QACN,OAAK,WACL,SAAK,UACL,SAAK,aACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,eAAM,SACN,SAAK,YACL,SAAK,UACL,SAAK,aACL,SAAK,WACL,SAAK,UACL,SAAK,UACL,eAAM,SACN,SAAK,UACL,SAAK,WACL,OAAK,SACL,SAAK,YACL,SAAK,SACL,SAAK,UACL,SAAK,WACL,eAAM,WACN,eAAM,WACN,eAAM,WACN,eAAM,WACN,SAAK,QACL,SAAK,WACL,SAAK,UACL,SAAK,WACL,eAAM,QACN,eAAM,SACN,eAAM,SACN,SAAK,YACL,SAAK,UACL,SAAK,WACL,SAAK,WACL,SAAK,OACL,eAAM,QACN,eAAM,SACN,eAAM,SACN,eAAM,QACN,SAAK,OACL,SAAK,SACL,eAAM,SACN,eAAM,SACN,OAAK,WACL,SAAK,SACL,SAAK,UACL,SAAK,QACL,OAAK,QACL,eAAM,QACN,SAAK,SACL,eAAM,SACN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AAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,KAAM,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,IAAK,EAAG,EAAG,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,GAAI,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,KAAM,EAAG,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,MAAO,GAAI,GAAI,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,KAAM,EAAG,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,GAAI,KAAM,KAAM,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,MAAO,EAAG,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,GAAI,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,GAAI,KAAM,KAAM,EAAG,EAAG,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,KAAM,EAAG,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,GAAI,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,EAAG,EAAG,KAAM,EAAG,EAAG,KAAM,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,EAAG,KAAM,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,GAAI,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,MAAO,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,KAAM,EAAG,EAAG,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,KAAM,KAAM,EAAG,EAAG,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,KAAM,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,MAAO,EAAG,MAAO,EAAG,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,MAAO,EAAG,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,MAAO,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,KAAM,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,MAAO,EAAG,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,GAAI,MAAO,GAAI,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,EAAG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,EAAG,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,MAAO,EAAG,MAAO,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,GAAI,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,EAAG,MAAO,EAAG,EAAG,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,EAAG,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,EAAG,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,EAAG,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,I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","file":"static/js/2.cced29b6.chunk.js","sourcesContent":["'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","'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","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nexport const BASE_ENDPOINT =\n 'https://content-firebaseappcheck.googleapis.com/v1beta';\n\nexport const EXCHANGE_RECAPTCHA_TOKEN_METHOD = 'exchangeRecaptchaToken';\nexport const EXCHANGE_DEBUG_TOKEN_METHOD = 'exchangeDebugToken';\n\nexport const TOKEN_REFRESH_TIME = {\n /**\n * The offset time before token natural expiration to run the refresh.\n * This is currently 5 minutes.\n */\n OFFSET_DURATION: 5 * 60 * 1000,\n /**\n * This is the first retrial wait after an error. This is currently\n * 30 seconds.\n */\n RETRIAL_MIN_WAIT: 30 * 1000,\n /**\n * This is the maximum retrial wait, currently 16 minutes.\n */\n RETRIAL_MAX_WAIT: 16 * 60 * 1000\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { CONSTANTS } from './constants';\n\n/**\n * Throws an error if the provided assertion is falsy\n */\nexport const assert = function (assertion: unknown, message: string): void {\n if (!assertion) {\n throw assertionError(message);\n }\n};\n\n/**\n * Returns an Error object suitable for throwing.\n */\nexport const assertionError = function (message: string): Error {\n return new Error(\n 'Firebase Database (' +\n CONSTANTS.SDK_VERSION +\n ') INTERNAL ASSERT FAILED: ' +\n message\n );\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nconst stringToByteArray = function (str: string): number[] {\n // TODO(user): Use native implementations if/when available\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (\n (c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00\n ) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes: number[]): string {\n // TODO(user): Use native implementations if/when available\n const out: string[] = [];\n let pos = 0,\n c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u =\n (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(\n ((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)\n );\n }\n }\n return out.join('');\n};\n\ninterface Base64 {\n byteToCharMap_: { [key: number]: string } | null;\n charToByteMap_: { [key: string]: number } | null;\n byteToCharMapWebSafe_: { [key: number]: string } | null;\n charToByteMapWebSafe_: { [key: string]: number } | null;\n ENCODED_VALS_BASE: string;\n readonly ENCODED_VALS: string;\n readonly ENCODED_VALS_WEBSAFE: string;\n HAS_NATIVE_SUPPORT: boolean;\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string;\n encodeString(input: string, webSafe?: boolean): string;\n decodeString(input: string, webSafe: boolean): string;\n decodeStringToByteArray(input: string, webSafe: boolean): number[];\n init_(): void;\n}\n\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\nexport const base64: Base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE:\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_!\n : this.byteToCharMap_!;\n\n const output = [];\n\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(\n byteToCharMap[outByte1],\n byteToCharMap[outByte2],\n byteToCharMap[outByte3],\n byteToCharMap[outByte4]\n );\n }\n\n return output.join('');\n },\n\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input: string, webSafe?: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input: string, webSafe: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input: string, webSafe: boolean): number[] {\n this.init_();\n\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_!\n : this.charToByteMap_!;\n\n const output: number[] = [];\n\n for (let i = 0; i < input.length; ) {\n const byte1 = charToByteMap[input.charAt(i++)];\n\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw Error();\n }\n\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n\n/**\n * URL-safe base64 encoding\n */\nexport const base64Encode = function (str: string): string {\n const utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nexport const base64urlEncodeWithoutPadding = function (str: string): string {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nexport const base64Decode = function (str: string): string | null {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Do a deep-copy of basic JavaScript Objects or Arrays.\n */\nexport function deepCopy(value: T): T {\n return deepExtend(undefined, value) as T;\n}\n\n/**\n * Copy properties from source to target (recursively allows extension\n * of Objects and Arrays). Scalar values in the target are over-written.\n * If target is undefined, an object of the appropriate type will be created\n * (and returned).\n *\n * We recursively copy all child properties of plain Objects in the source- so\n * that namespace- like dictionaries are merged.\n *\n * Note that the target can be a function, in which case the properties in\n * the source Object are copied onto it as static properties of the Function.\n *\n * Note: we don't merge __proto__ to prevent prototype pollution\n */\nexport function deepExtend(target: unknown, source: unknown): unknown {\n if (!(source instanceof Object)) {\n return source;\n }\n\n switch (source.constructor) {\n case Date:\n // Treat Dates like scalars; if the target date object had any child\n // properties - they will be lost!\n const dateValue = source as Date;\n return new Date(dateValue.getTime());\n\n case Object:\n if (target === undefined) {\n target = {};\n }\n break;\n case Array:\n // Always copy the array source and overwrite the target.\n target = [];\n break;\n\n default:\n // Not a plain Object - treat it as a scalar.\n return source;\n }\n\n for (const prop in source) {\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\n continue;\n }\n (target as Record)[prop] = deepExtend(\n (target as Record)[prop],\n (source as Record)[prop]\n );\n }\n\n return target;\n}\n\nfunction isValidKey(key: string): boolean {\n return key !== '__proto__';\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nexport class Deferred {\n promise: Promise;\n reject: (value?: unknown) => void = () => {};\n resolve: (value?: unknown) => void = () => {};\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as (value?: unknown) => void;\n this.reject = reject as (value?: unknown) => void;\n });\n }\n\n /**\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(\n callback?: (error?: unknown, value?: unknown) => void\n ): (error: unknown, value?: unknown) => void {\n return (error, value?) => {\n if (error) {\n this.reject(error);\n } else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => {});\n\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { base64urlEncodeWithoutPadding } from './crypt';\n\n// Firebase Auth tokens contain snake_case claims following the JWT standard / convention.\n/* eslint-disable camelcase */\n\nexport type FirebaseSignInProvider =\n | 'custom'\n | 'email'\n | 'password'\n | 'phone'\n | 'anonymous'\n | 'google.com'\n | 'facebook.com'\n | 'github.com'\n | 'twitter.com'\n | 'microsoft.com'\n | 'apple.com';\n\ninterface FirebaseIdToken {\n // Always set to https://securetoken.google.com/PROJECT_ID\n iss: string;\n\n // Always set to PROJECT_ID\n aud: string;\n\n // The user's unique ID\n sub: string;\n\n // The token issue time, in seconds since epoch\n iat: number;\n\n // The token expiry time, normally 'iat' + 3600\n exp: number;\n\n // The user's unique ID. Must be equal to 'sub'\n user_id: string;\n\n // The time the user authenticated, normally 'iat'\n auth_time: number;\n\n // The sign in provider, only set when the provider is 'anonymous'\n provider_id?: 'anonymous';\n\n // The user's primary email\n email?: string;\n\n // The user's email verification status\n email_verified?: boolean;\n\n // The user's primary phone number\n phone_number?: string;\n\n // The user's display name\n name?: string;\n\n // The user's profile photo URL\n picture?: string;\n\n // Information on all identities linked to this user\n firebase: {\n // The primary sign-in provider\n sign_in_provider: FirebaseSignInProvider;\n\n // A map of providers to the user's list of unique identifiers from\n // each provider\n identities?: { [provider in FirebaseSignInProvider]?: string[] };\n };\n\n // Custom claims set by the developer\n [claim: string]: unknown;\n\n uid?: never; // Try to catch a common mistake of \"uid\" (should be \"sub\" instead).\n}\n\nexport type EmulatorMockTokenOptions = ({ user_id: string } | { sub: string }) &\n Partial;\n\nexport function createMockUserToken(\n token: EmulatorMockTokenOptions,\n projectId?: string\n): string {\n if (token.uid) {\n throw new Error(\n 'The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.'\n );\n }\n // Unsecured JWTs use \"none\" as the algorithm.\n const header = {\n alg: 'none',\n type: 'JWT'\n };\n\n const project = projectId || 'demo-project';\n const iat = token.iat || 0;\n const sub = token.sub || token.user_id;\n if (!sub) {\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\n }\n\n const payload: FirebaseIdToken = {\n // Set all required fields to decent defaults\n iss: `https://securetoken.google.com/${project}`,\n aud: project,\n iat,\n exp: iat + 3600,\n auth_time: iat,\n sub,\n user_id: sub,\n firebase: {\n sign_in_provider: 'custom',\n identities: {}\n },\n\n // Override with user options\n ...token\n };\n\n // Unsecured JWTs use the empty string as a signature.\n const signature = '';\n return [\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\n signature\n ].join('.');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { CONSTANTS } from './constants';\n\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nexport function getUA(): string {\n if (\n typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string'\n ) {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nexport function isMobileCordova(): boolean {\n return (\n typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())\n );\n}\n\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nexport function isNode(): boolean {\n try {\n return (\n Object.prototype.toString.call(global.process) === '[object process]'\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Detect Browser Environment\n */\nexport function isBrowser(): boolean {\n return typeof self === 'object' && self.self === self;\n}\n\n/**\n * Detect browser extensions (Chrome and Firefox at least).\n */\ninterface BrowserRuntime {\n id?: unknown;\n}\ndeclare const chrome: { runtime?: BrowserRuntime };\ndeclare const browser: { runtime?: BrowserRuntime };\nexport function isBrowserExtension(): boolean {\n const runtime =\n typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nexport function isReactNative(): boolean {\n return (\n typeof navigator === 'object' && navigator['product'] === 'ReactNative'\n );\n}\n\n/** Detects Electron apps. */\nexport function isElectron(): boolean {\n return getUA().indexOf('Electron/') >= 0;\n}\n\n/** Detects Internet Explorer. */\nexport function isIE(): boolean {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n\n/** Detects Universal Windows Platform apps. */\nexport function isUWP(): boolean {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nexport function isNodeSdk(): boolean {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n\n/** Returns true if we are running in Safari. */\nexport function isSafari(): boolean {\n return (\n !isNode() &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n );\n}\n\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nexport function isIndexedDBAvailable(): boolean {\n return 'indexedDB' in self && indexedDB != null;\n}\n\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nexport function validateIndexedDBOpenable(): Promise {\n return new Promise((resolve, reject) => {\n try {\n let preExist: boolean = true;\n const DB_CHECK_NAME =\n 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nexport function areCookiesEnabled(): boolean {\n if (!navigator || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n */\nexport function getGlobal(): typeof globalThis {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AppCheckError {\n ALREADY_ACTIVATED = 'already-activated',\n USE_BEFORE_ACTIVATION = 'use-before-activation',\n FETCH_NETWORK_ERROR = 'fetch-network-error',\n FETCH_PARSE_ERROR = 'fetch-parse-error',\n FETCH_STATUS_ERROR = 'fetch-status-error',\n STORAGE_OPEN = 'storage-open',\n STORAGE_GET = 'storage-get',\n STORAGE_WRITE = 'storage-set',\n RECAPTCHA_ERROR = 'recaptcha-error'\n}\n\nconst ERRORS: ErrorMap = {\n [AppCheckError.ALREADY_ACTIVATED]:\n 'You are trying to activate AppCheck for FirebaseApp {$appName}, ' +\n 'while it is already activated. ' +\n 'AppCheck can only be activated once.',\n [AppCheckError.USE_BEFORE_ACTIVATION]:\n 'AppCheck is being used before activate() is called for FirebaseApp {$appName}. ' +\n 'Please make sure you call activate() before instantiating other Firebase services.',\n [AppCheckError.FETCH_NETWORK_ERROR]:\n 'Fetch failed to connect to a network. Check Internet connection. ' +\n 'Original error: {$originalErrorMessage}.',\n [AppCheckError.FETCH_PARSE_ERROR]:\n 'Fetch client could not parse response.' +\n ' Original error: {$originalErrorMessage}.',\n [AppCheckError.FETCH_STATUS_ERROR]:\n 'Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.',\n [AppCheckError.STORAGE_OPEN]:\n 'Error thrown when opening storage. Original error: {$originalErrorMessage}.',\n [AppCheckError.STORAGE_GET]:\n 'Error thrown when reading from storage. Original error: {$originalErrorMessage}.',\n [AppCheckError.STORAGE_WRITE]:\n 'Error thrown when writing to storage. Original error: {$originalErrorMessage}.',\n [AppCheckError.RECAPTCHA_ERROR]: 'ReCAPTCHA error.'\n};\n\ninterface ErrorParams {\n [AppCheckError.ALREADY_ACTIVATED]: { appName: string };\n [AppCheckError.USE_BEFORE_ACTIVATION]: { appName: string };\n [AppCheckError.FETCH_NETWORK_ERROR]: { originalErrorMessage: string };\n [AppCheckError.FETCH_PARSE_ERROR]: { originalErrorMessage: string };\n [AppCheckError.FETCH_STATUS_ERROR]: { httpStatus: number };\n [AppCheckError.STORAGE_OPEN]: { originalErrorMessage?: string };\n [AppCheckError.STORAGE_GET]: { originalErrorMessage?: string };\n [AppCheckError.STORAGE_WRITE]: { originalErrorMessage?: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'appCheck',\n 'AppCheck',\n ERRORS\n);\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Evaluates a JSON string into a javascript object.\n *\n * @param {string} str A string containing JSON.\n * @return {*} The javascript object representing the specified JSON.\n */\nexport function jsonEval(str: string): unknown {\n return JSON.parse(str);\n}\n\n/**\n * Returns JSON representing a javascript object.\n * @param {*} data Javascript object to be stringified.\n * @return {string} The JSON contents of the object.\n */\nexport function stringify(data: unknown): string {\n return JSON.stringify(data);\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { base64Decode } from './crypt';\nimport { jsonEval } from './json';\n\ninterface Claims {\n [key: string]: {};\n}\n\ninterface DecodedToken {\n header: object;\n claims: Claims;\n data: object;\n signature: string;\n}\n\n/**\n * Decodes a Firebase auth. token into constituent parts.\n *\n * Notes:\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nexport const decode = function (token: string): DecodedToken {\n let header = {},\n claims: Claims = {},\n data = {},\n signature = '';\n\n try {\n const parts = token.split('.');\n header = jsonEval(base64Decode(parts[0]) || '') as object;\n claims = jsonEval(base64Decode(parts[1]) || '') as Claims;\n signature = parts[2];\n data = claims['d'] || {};\n delete claims['d'];\n } catch (e) {}\n\n return {\n header,\n claims,\n data,\n signature\n };\n};\n\ninterface DecodedToken {\n header: object;\n claims: Claims;\n data: object;\n signature: string;\n}\n\n/**\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\n *\n * Notes:\n * - May return a false negative if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nexport const isValidTimestamp = function (token: string): boolean {\n const claims: Claims = decode(token).claims;\n const now: number = Math.floor(new Date().getTime() / 1000);\n let validSince: number = 0,\n validUntil: number = 0;\n\n if (typeof claims === 'object') {\n if (claims.hasOwnProperty('nbf')) {\n validSince = claims['nbf'] as number;\n } else if (claims.hasOwnProperty('iat')) {\n validSince = claims['iat'] as number;\n }\n\n if (claims.hasOwnProperty('exp')) {\n validUntil = claims['exp'] as number;\n } else {\n // token will expire after 24h by default\n validUntil = validSince + 86400;\n }\n }\n\n return (\n !!now &&\n !!validSince &&\n !!validUntil &&\n now >= validSince &&\n now <= validUntil\n );\n};\n\n/**\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\n *\n * Notes:\n * - May return null if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nexport const issuedAtTime = function (token: string): number | null {\n const claims: Claims = decode(token).claims;\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\n return claims['iat'] as number;\n }\n return null;\n};\n\n/**\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\n *\n * Notes:\n * - May return a false negative if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nexport const isValidFormat = function (token: string): boolean {\n const decoded = decode(token),\n claims = decoded.claims;\n\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\n};\n\n/**\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\n *\n * Notes:\n * - May return a false negative if there's no native base64 decoding support.\n * - Doesn't check if the token is actually valid.\n */\nexport const isAdmin = function (token: string): boolean {\n const claims: Claims = decode(token).claims;\n return typeof claims === 'object' && claims['admin'] === true;\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nexport function contains(obj: T, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function safeGet(\n obj: T,\n key: K\n): T[K] | undefined {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nexport function isEmpty(obj: object): obj is {} {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function map(\n obj: { [key in K]: V },\n fn: (value: V, key: K, obj: { [key in K]: V }) => U,\n contextObj?: unknown\n): { [key in K]: U } {\n const res: Partial<{ [key in K]: U }> = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res as { [key in K]: U };\n}\n\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nexport function deepEqual(a: object, b: object): boolean {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n\n const aProp = (a as Record)[k];\n const bProp = (b as Record)[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n } else if (aProp !== bProp) {\n return false;\n }\n }\n\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isObject(thing: unknown): thing is object {\n return thing !== null && typeof thing === 'object';\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\n * params object (e.g. {arg: 'val', arg2: 'val2'})\n * Note: You must prepend it with ? when adding it to a URL.\n */\nexport function querystring(querystringParams: {\n [key: string]: string | number;\n}): string {\n const params = [];\n for (const [key, value] of Object.entries(querystringParams)) {\n if (Array.isArray(value)) {\n value.forEach(arrayVal => {\n params.push(\n encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal)\n );\n });\n } else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n }\n return params.length ? '&' + params.join('&') : '';\n}\n\n/**\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\n * (e.g. {arg: 'val', arg2: 'val2'})\n */\nexport function querystringDecode(querystring: string): Record {\n const obj: Record = {};\n const tokens = querystring.replace(/^\\?/, '').split('&');\n\n tokens.forEach(token => {\n if (token) {\n const [key, value] = token.split('=');\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n });\n return obj;\n}\n\n/**\n * Extract the query string part of a URL, including the leading question mark (if present).\n */\nexport function extractQuerystring(url: string): string {\n const queryStart = url.indexOf('?');\n if (!queryStart) {\n return '';\n }\n const fragmentStart = url.indexOf('#', queryStart);\n return url.substring(\n queryStart,\n fragmentStart > 0 ? fragmentStart : undefined\n );\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * @fileoverview SHA-1 cryptographic hash.\n * Variable names follow the notation in FIPS PUB 180-3:\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\n *\n * Usage:\n * var sha1 = new sha1();\n * sha1.update(bytes);\n * var hash = sha1.digest();\n *\n * Performance:\n * Chrome 23: ~400 Mbit/s\n * Firefox 16: ~250 Mbit/s\n *\n */\n\n/**\n * SHA-1 cryptographic hash constructor.\n *\n * The properties declared here are discussed in the above algorithm document.\n * @constructor\n * @final\n * @struct\n */\nexport class Sha1 {\n /**\n * Holds the previous values of accumulated variables a-e in the compress_\n * function.\n * @private\n */\n private chain_: number[] = [];\n\n /**\n * A buffer holding the partially computed hash result.\n * @private\n */\n private buf_: number[] = [];\n\n /**\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\n * as the message schedule in the docs.\n * @private\n */\n private W_: number[] = [];\n\n /**\n * Contains data needed to pad messages less than 64 bytes.\n * @private\n */\n private pad_: number[] = [];\n\n /**\n * @private {number}\n */\n private inbuf_: number = 0;\n\n /**\n * @private {number}\n */\n private total_: number = 0;\n\n blockSize: number;\n\n constructor() {\n this.blockSize = 512 / 8;\n\n this.pad_[0] = 128;\n for (let i = 1; i < this.blockSize; ++i) {\n this.pad_[i] = 0;\n }\n\n this.reset();\n }\n\n reset(): void {\n this.chain_[0] = 0x67452301;\n this.chain_[1] = 0xefcdab89;\n this.chain_[2] = 0x98badcfe;\n this.chain_[3] = 0x10325476;\n this.chain_[4] = 0xc3d2e1f0;\n\n this.inbuf_ = 0;\n this.total_ = 0;\n }\n\n /**\n * Internal compress helper function.\n * @param buf Block to compress.\n * @param offset Offset of the block in the buffer.\n * @private\n */\n compress_(buf: number[] | Uint8Array | string, offset?: number): void {\n if (!offset) {\n offset = 0;\n }\n\n const W = this.W_;\n\n // get 16 big endian words\n if (typeof buf === 'string') {\n for (let i = 0; i < 16; i++) {\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\n // have a bug that turns the post-increment ++ operator into pre-increment\n // during JIT compilation. We have code that depends heavily on SHA-1 for\n // correctness and which is affected by this bug, so I've removed all uses\n // of post-increment ++ in which the result value is used. We can revert\n // this change once the Safari bug\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\n // most clients have been updated.\n W[i] =\n (buf.charCodeAt(offset) << 24) |\n (buf.charCodeAt(offset + 1) << 16) |\n (buf.charCodeAt(offset + 2) << 8) |\n buf.charCodeAt(offset + 3);\n offset += 4;\n }\n } else {\n for (let i = 0; i < 16; i++) {\n W[i] =\n (buf[offset] << 24) |\n (buf[offset + 1] << 16) |\n (buf[offset + 2] << 8) |\n buf[offset + 3];\n offset += 4;\n }\n }\n\n // expand to 80 words\n for (let i = 16; i < 80; i++) {\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\n }\n\n let a = this.chain_[0];\n let b = this.chain_[1];\n let c = this.chain_[2];\n let d = this.chain_[3];\n let e = this.chain_[4];\n let f, k;\n\n // TODO(user): Try to unroll this loop to speed up the computation.\n for (let i = 0; i < 80; i++) {\n if (i < 40) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5a827999;\n } else {\n f = b ^ c ^ d;\n k = 0x6ed9eba1;\n }\n } else {\n if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8f1bbcdc;\n } else {\n f = b ^ c ^ d;\n k = 0xca62c1d6;\n }\n }\n\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\n e = d;\n d = c;\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\n b = a;\n a = t;\n }\n\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\n }\n\n update(bytes?: number[] | Uint8Array | string, length?: number): void {\n // TODO(johnlenz): tighten the function signature and remove this check\n if (bytes == null) {\n return;\n }\n\n if (length === undefined) {\n length = bytes.length;\n }\n\n const lengthMinusBlock = length - this.blockSize;\n let n = 0;\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\n const buf = this.buf_;\n let inbuf = this.inbuf_;\n\n // The outer while loop should execute at most twice.\n while (n < length) {\n // When we have no data in the block to top up, we can directly process the\n // input buffer (assuming it contains sufficient data). This gives ~25%\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\n // the data is provided in large chunks (or in multiples of 64 bytes).\n if (inbuf === 0) {\n while (n <= lengthMinusBlock) {\n this.compress_(bytes, n);\n n += this.blockSize;\n }\n }\n\n if (typeof bytes === 'string') {\n while (n < length) {\n buf[inbuf] = bytes.charCodeAt(n);\n ++inbuf;\n ++n;\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0;\n // Jump to the outer loop so we use the full-block optimization.\n break;\n }\n }\n } else {\n while (n < length) {\n buf[inbuf] = bytes[n];\n ++inbuf;\n ++n;\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0;\n // Jump to the outer loop so we use the full-block optimization.\n break;\n }\n }\n }\n }\n\n this.inbuf_ = inbuf;\n this.total_ += length;\n }\n\n /** @override */\n digest(): number[] {\n const digest: number[] = [];\n let totalBits = this.total_ * 8;\n\n // Add pad 0x80 0x00*.\n if (this.inbuf_ < 56) {\n this.update(this.pad_, 56 - this.inbuf_);\n } else {\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\n }\n\n // Add # bits.\n for (let i = this.blockSize - 1; i >= 56; i--) {\n this.buf_[i] = totalBits & 255;\n totalBits /= 256; // Don't use bit-shifting here!\n }\n\n this.compress_(this.buf_);\n\n let n = 0;\n for (let i = 0; i < 5; i++) {\n for (let j = 24; j >= 0; j -= 8) {\n digest[n] = (this.chain_[i] >> j) & 255;\n ++n;\n }\n }\n return digest;\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nexport type NextFn = (value: T) => void;\nexport type ErrorFn = (error: Error) => void;\nexport type CompleteFn = () => void;\n\nexport interface Observer {\n // Called once for each value in a stream of values.\n next: NextFn;\n\n // A stream terminates by a single call to EITHER error() or complete().\n error: ErrorFn;\n\n // No events will be sent to next() once complete() is called.\n complete: CompleteFn;\n}\n\nexport type PartialObserver = Partial>;\n\n// TODO: Support also Unsubscribe.unsubscribe?\nexport type Unsubscribe = () => void;\n\n/**\n * The Subscribe interface has two forms - passing the inline function\n * callbacks, or a object interface with callback properties.\n */\nexport interface Subscribe {\n (next?: NextFn, error?: ErrorFn, complete?: CompleteFn): Unsubscribe;\n (observer: PartialObserver): Unsubscribe;\n}\n\nexport interface Observable {\n // Subscribe method\n subscribe: Subscribe;\n}\n\nexport type Executor = (observer: Observer) => void;\n\n/**\n * Helper to make a Subscribe function (just like Promise helps make a\n * Thenable).\n *\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\nexport function createSubscribe(\n executor: Executor,\n onNoObservers?: Executor\n): Subscribe {\n const proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n\n/**\n * Implement fan-out for any number of Observers attached via a subscribe\n * function.\n */\nclass ObserverProxy implements Observer {\n private observers: Array> | undefined = [];\n private unsubscribes: Unsubscribe[] = [];\n private onNoObservers: Executor | undefined;\n private observerCount = 0;\n // Micro-task scheduling by calling task.then().\n private task = Promise.resolve();\n private finalized = false;\n private finalError?: Error;\n\n /**\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\n constructor(executor: Executor, onNoObservers?: Executor) {\n this.onNoObservers = onNoObservers;\n // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n this.task\n .then(() => {\n executor(this);\n })\n .catch(e => {\n this.error(e);\n });\n }\n\n next(value: T): void {\n this.forEachObserver((observer: Observer) => {\n observer.next(value);\n });\n }\n\n error(error: Error): void {\n this.forEachObserver((observer: Observer) => {\n observer.error(error);\n });\n this.close(error);\n }\n\n complete(): void {\n this.forEachObserver((observer: Observer) => {\n observer.complete();\n });\n this.close();\n }\n\n /**\n * Subscribe function that can be used to add an Observer to the fan-out list.\n *\n * - We require that no event is sent to a subscriber sychronously to their\n * call to subscribe().\n */\n subscribe(\n nextOrObserver?: NextFn | PartialObserver,\n error?: ErrorFn,\n complete?: CompleteFn\n ): Unsubscribe {\n let observer: Observer;\n\n if (\n nextOrObserver === undefined &&\n error === undefined &&\n complete === undefined\n ) {\n throw new Error('Missing Observer.');\n }\n\n // Assemble an Observer object when passed as callback functions.\n if (\n implementsAnyMethods(nextOrObserver as { [key: string]: unknown }, [\n 'next',\n 'error',\n 'complete'\n ])\n ) {\n observer = nextOrObserver as Observer;\n } else {\n observer = {\n next: nextOrObserver as NextFn,\n error,\n complete\n } as Observer;\n }\n\n if (observer.next === undefined) {\n observer.next = noop as NextFn;\n }\n if (observer.error === undefined) {\n observer.error = noop as ErrorFn;\n }\n if (observer.complete === undefined) {\n observer.complete = noop as CompleteFn;\n }\n\n const unsub = this.unsubscribeOne.bind(this, this.observers!.length);\n\n // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n try {\n if (this.finalError) {\n observer.error(this.finalError);\n } else {\n observer.complete();\n }\n } catch (e) {\n // nothing\n }\n return;\n });\n }\n\n this.observers!.push(observer as Observer);\n\n return unsub;\n }\n\n // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n private unsubscribeOne(i: number): void {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n\n delete this.observers[i];\n\n this.observerCount -= 1;\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n }\n\n private forEachObserver(fn: (observer: Observer) => void): void {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n }\n\n // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n for (let i = 0; i < this.observers!.length; i++) {\n this.sendOne(i, fn);\n }\n }\n\n // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n private sendOne(i: number, fn: (observer: Observer) => void): void {\n // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n if (this.observers !== undefined && this.observers[i] !== undefined) {\n try {\n fn(this.observers[i]);\n } catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n }\n\n private close(err?: Error): void {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n if (err !== undefined) {\n this.finalError = err;\n }\n // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n this.observers = undefined;\n this.onNoObservers = undefined;\n });\n }\n}\n\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function async(fn: Function, onError?: ErrorFn): Function {\n return (...args: unknown[]) => {\n Promise.resolve(true)\n .then(() => {\n fn(...args);\n })\n .catch((error: Error) => {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n\n/**\n * Return true if the object passed in implements any of the named methods.\n */\nfunction implementsAnyMethods(\n obj: { [key: string]: unknown },\n methods: string[]\n): boolean {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n for (const method of methods) {\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction noop(): void {\n // do nothing\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Check to make sure the appropriate number of arguments are provided for a public function.\n * Throws an error if it fails.\n *\n * @param fnName The function name\n * @param minCount The minimum number of arguments to allow for the function call\n * @param maxCount The maximum number of argument to allow for the function call\n * @param argCount The actual number of arguments provided.\n */\nexport const validateArgCount = function (\n fnName: string,\n minCount: number,\n maxCount: number,\n argCount: number\n): void {\n let argError;\n if (argCount < minCount) {\n argError = 'at least ' + minCount;\n } else if (argCount > maxCount) {\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\n }\n if (argError) {\n const error =\n fnName +\n ' failed: Was called with ' +\n argCount +\n (argCount === 1 ? ' argument.' : ' arguments.') +\n ' Expects ' +\n argError +\n '.';\n throw new Error(error);\n }\n};\n\n/**\n * Generates a string to prefix an error message about failed argument validation\n *\n * @param fnName The function name\n * @param argName The name of the argument\n * @return The prefix to add to the error thrown for validation.\n */\nexport function errorPrefix(fnName: string, argName: string): string {\n return `${fnName} failed: ${argName} argument `;\n}\n\n/**\n * @param fnName\n * @param argumentNumber\n * @param namespace\n * @param optional\n */\nexport function validateNamespace(\n fnName: string,\n namespace: string,\n optional: boolean\n): void {\n if (optional && !namespace) {\n return;\n }\n if (typeof namespace !== 'string') {\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\n throw new Error(\n errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.'\n );\n }\n}\n\nexport function validateCallback(\n fnName: string,\n argumentName: string,\n // eslint-disable-next-line @typescript-eslint/ban-types\n callback: Function,\n optional: boolean\n): void {\n if (optional && !callback) {\n return;\n }\n if (typeof callback !== 'function') {\n throw new Error(\n errorPrefix(fnName, argumentName) + 'must be a valid function.'\n );\n }\n}\n\nexport function validateContextObject(\n fnName: string,\n argumentName: string,\n context: unknown,\n optional: boolean\n): void {\n if (optional && !context) {\n return;\n }\n if (typeof context !== 'object' || context === null) {\n throw new Error(\n errorPrefix(fnName, argumentName) + 'must be a valid context object.'\n );\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { assert } from './assert';\n\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\n// so it's been modified.\n\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\n// pair).\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\n\n/**\n * @param {string} str\n * @return {Array}\n */\nexport const stringToByteArray = function (str: string): number[] {\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n\n // Is this the lead surrogate in a surrogate pair?\n if (c >= 0xd800 && c <= 0xdbff) {\n const high = c - 0xd800; // the high 10 bits.\n i++;\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\n c = 0x10000 + (high << 10) + low;\n }\n\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (c < 65536) {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Calculate length without actually converting; useful for doing cheaper validation.\n * @param {string} str\n * @return {number}\n */\nexport const stringLength = function (str: string): number {\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 128) {\n p++;\n } else if (c < 2048) {\n p += 2;\n } else if (c >= 0xd800 && c <= 0xdbff) {\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\n p += 4;\n i++; // skip trail surrogate.\n } else {\n p += 3;\n }\n }\n return p;\n};\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * The amount of milliseconds to exponentially increase.\n */\nconst DEFAULT_INTERVAL_MILLIS = 1000;\n\n/**\n * The factor to backoff by.\n * Should be a number greater than 1.\n */\nconst DEFAULT_BACKOFF_FACTOR = 2;\n\n/**\n * The maximum milliseconds to increase to.\n *\n *

Visible for testing\n */\nexport const MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\n\n/**\n * The percentage of backoff time to randomize by.\n * See\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\n * for context.\n *\n *

Visible for testing\n */\nexport const RANDOM_FACTOR = 0.5;\n\n/**\n * Based on the backoff method from\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\n */\nexport function calculateBackoffMillis(\n backoffCount: number,\n intervalMillis: number = DEFAULT_INTERVAL_MILLIS,\n backoffFactor: number = DEFAULT_BACKOFF_FACTOR\n): number {\n // Calculates an exponentially increasing value.\n // Deviation: calculates value from count and a constant interval, so we only need to save value\n // and count to restore state.\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\n\n // A random \"fuzz\" to avoid waves of retries.\n // Deviation: randomFactor is required.\n const randomWait = Math.round(\n // A fraction of the backoff value to add/subtract.\n // Deviation: changes multiplication order to improve readability.\n RANDOM_FACTOR *\n currBaseValue *\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\n // if we add or subtract.\n (Math.random() - 0.5) *\n 2\n );\n\n // Limits backoff to max to avoid effectively permanent backoff.\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Provide English ordinal letters after a number\n */\nexport function ordinal(i: number): string {\n if (!Number.isFinite(i)) {\n return `${i}`;\n }\n return i + indicator(i);\n}\n\nfunction indicator(i: number): string {\n i = Math.abs(i);\n const cent = i % 100;\n if (cent >= 10 && cent <= 20) {\n return 'th';\n }\n const dec = i % 10;\n if (dec === 1) {\n return 'st';\n }\n if (dec === 2) {\n return 'nd';\n }\n if (dec === 3) {\n return 'rd';\n }\n return 'th';\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nexport interface Compat {\n _delegate: T;\n}\n\nexport function getModularInstance(\n service: Compat | ExpService\n): ExpService {\n if (service && (service as Compat)._delegate) {\n return (service as Compat)._delegate;\n } else {\n return service as ExpService;\n }\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return

{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar clipboardAvailable;\n\nvar Clipboard = /*#__PURE__*/function () {\n function Clipboard() {}\n\n Clipboard.isAvailable = function isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n\n return clipboardAvailable;\n };\n\n Clipboard.getString = function getString() {\n return Promise.resolve('');\n };\n\n Clipboard.setString = function setString(text) {\n var success = false;\n var body = document.body;\n\n if (body) {\n // add the text to a hidden node\n var node = document.createElement('span');\n node.textContent = text;\n node.style.opacity = '0';\n node.style.position = 'absolute';\n node.style.whiteSpace = 'pre-wrap';\n node.style.userSelect = 'auto';\n body.appendChild(node); // select the text\n\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range); // attempt to copy\n\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {} // remove selection and node\n\n\n selection.removeAllRanges();\n body.removeChild(node);\n }\n\n return success;\n };\n\n return Clipboard;\n}();\n\nexport { Clipboard as default };","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nvar Alert = /*#__PURE__*/function () {\n function Alert() {}\n\n Alert.alert = function alert() {};\n\n return Alert;\n}();\n\nexport default Alert;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport Dimensions from '../Dimensions';\nvar DeviceInfo = {\n Dimensions: {\n get windowPhysicalPixels() {\n var _Dimensions$get = Dimensions.get('window'),\n width = _Dimensions$get.width,\n height = _Dimensions$get.height,\n fontScale = _Dimensions$get.fontScale,\n scale = _Dimensions$get.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale: scale,\n fontScale: fontScale\n };\n },\n\n get screenPhysicalPixels() {\n var _Dimensions$get2 = Dimensions.get('screen'),\n width = _Dimensions$get2.width,\n height = _Dimensions$get2.height,\n fontScale = _Dimensions$get2.fontScale,\n scale = _Dimensions$get2.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale: scale,\n fontScale: fontScale\n };\n }\n\n },\n\n get locale() {\n if (canUseDOM) {\n if (navigator.languages) {\n return navigator.languages[0];\n } else {\n return navigator.language;\n }\n }\n },\n\n get totalMemory() {\n // $FlowIssue deviceMemory not defined in navigator\n return canUseDOM ? navigator.deviceMemory : undefined;\n },\n\n get userAgent() {\n return canUseDOM ? navigator.userAgent : '';\n }\n\n};\nexport default DeviceInfo;","/**\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 * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {}\n /* unused onError */\n );\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration: duration,\n create: {\n type: type,\n property: property\n },\n update: {\n type: type\n },\n delete: {\n type: type,\n property: property\n }\n };\n}\n\nvar Presets = {\n easeInEaseOut: create(300, 'easeInEaseOut', 'opacity'),\n linear: create(500, 'linear', 'opacity'),\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 * 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 */\n\nvar 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: configureNext,\n\n /**\n * Helper for creating a config for `configureNext`.\n */\n create: 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: function checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets: Presets,\n easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n linear: configureNext.bind(null, Presets.linear),\n spring: configureNext.bind(null, Presets.spring)\n};\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\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 */\nimport NativeEventEmitter from '../../vendor/react-native/NativeEventEmitter';\nexport default NativeEventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar _vibrate = function vibrate(pattern) {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\n\nvar Vibration = {\n cancel: function cancel() {\n _vibrate(0);\n },\n vibrate: function vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n\n _vibrate(pattern);\n }\n};\nexport default Vibration;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nvar Button = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var accessibilityLabel = props.accessibilityLabel,\n color = props.color,\n disabled = props.disabled,\n onPress = props.onPress,\n testID = props.testID,\n title = props.title;\n return /*#__PURE__*/React.createElement(TouchableOpacity, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n disabled: disabled,\n focusable: !disabled,\n onPress: onPress,\n ref: forwardedRef,\n style: [styles.button, color && {\n backgroundColor: color\n }, disabled && styles.buttonDisabled],\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, disabled && styles.textDisabled]\n }, title));\n});\nButton.displayName = 'Button';\nvar styles = StyleSheet.create({\n button: {\n backgroundColor: '#2196F3',\n borderRadius: 2\n },\n text: {\n color: '#fff',\n fontWeight: '500',\n padding: 8,\n textAlign: 'center',\n textTransform: 'uppercase'\n },\n buttonDisabled: {\n backgroundColor: '#dfdfdf'\n },\n textDisabled: {\n color: '#a1a1a1'\n }\n});\nexport default Button;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\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\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, [\"color\", \"disabled\", \"onChange\", \"onValueChange\", \"style\", \"value\"]);\n\n function handleChange(event) {\n var value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange && onChange(event);\n onValueChange && onValueChange(value);\n }\n\n var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked, // custom color\n value && color && {\n backgroundColor: color,\n borderColor: color\n }, disabled && styles.fakeControlDisabled, value && disabled && styles.fakeControlCheckedAndDisabled]\n });\n var nativeControl = createElement('input', {\n checked: value,\n disabled: disabled,\n onChange: handleChange,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityDisabled: disabled,\n style: [styles.root, style, disabled && styles.cursorDefault]\n }), fakeControl, nativeControl);\n});\nCheckBox.displayName = 'CheckBox';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n fakeControl: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderColor: '#657786',\n borderRadius: 2,\n borderStyle: 'solid',\n borderWidth: 2,\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n },\n fakeControlChecked: {\n backgroundColor: '#009688',\n backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n backgroundRepeat: 'no-repeat',\n borderColor: '#009688'\n },\n fakeControlDisabled: {\n borderColor: '#CCD6DD'\n },\n fakeControlCheckedAndDisabled: {\n backgroundColor: '#AAB8C2',\n borderColor: '#AAB8C2'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n opacity: 0,\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nvar Picker = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var children = props.children,\n enabled = props.enabled,\n onValueChange = props.onValueChange,\n selectedValue = props.selectedValue,\n style = props.style,\n testID = props.testID,\n itemStyle = props.itemStyle,\n mode = props.mode,\n prompt = props.prompt,\n other = _objectWithoutPropertiesLoose(props, [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"]);\n\n var hostRef = React.useRef(null);\n\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n } // $FlowFixMe\n\n\n var supportedProps = _objectSpread({\n children: children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID: testID,\n value: selectedValue\n }, other);\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n}); // $FlowFixMe\n\nPicker.Item = PickerItem;\nvar styles = StyleSheet.create({\n initial: {\n fontFamily: 'System',\n fontSize: 'inherit',\n margin: 0\n }\n});\nexport default Picker;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createElement from '../createElement';\nexport default function PickerItem(props) {\n var color = props.color,\n label = props.label,\n testID = props.testID,\n value = props.value;\n var style = {\n color: color\n };\n return createElement('option', {\n style: style,\n testID: testID,\n value: value\n }, label);\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\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? 0 : _props$progress,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? 'transparent' : _props$trackColor,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"]);\n\n var percentageProgress = progress * 100;\n var progressRef = React.useRef(null);\n React.useEffect(function () {\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n\n if (progressRef.current != null) {\n progressRef.current.setNativeProps({\n style: {\n width: width\n }\n });\n }\n }, [indeterminate, percentageProgress, progressRef]);\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValue: {\n max: 100,\n min: 0,\n now: indeterminate ? null : percentageProgress\n },\n ref: ref,\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n ref: progressRef,\n style: [styles.progress, indeterminate && styles.animation, {\n backgroundColor: color\n }]\n }));\n});\nProgressBar.displayName = 'ProgressBar';\nvar styles = StyleSheet.create({\n track: {\n forcedColorAdjust: 'none',\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\n forcedColorAdjust: 'none',\n height: '100%',\n zIndex: -1\n },\n animation: {\n animationDuration: '1s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n translateX: '-100%'\n }]\n },\n '100%': {\n transform: [{\n translateX: '400%'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","/**\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 * @format\n */\n'use strict';\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\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\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\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(function () {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(function () {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","/**\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 */\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\n\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\n\nYellowBox.ignoreWarnings = function () {};\n\nexport default YellowBox;","/**\n * Copyright (c) 2016-present, Nicolas Gallagher.\n *\n * This 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 */\nvar LogBox = {\n ignoreLogs: function ignoreLogs() {},\n ignoreAllLogs: function ignoreAllLogs() {},\n uninstall: function uninstall() {},\n install: function install() {}\n};\nexport default LogBox;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","var promiseMock = function promiseMock() {\n return Promise.resolve(false);\n};\n\nexport default {\n PERMISSIONS: {},\n RESULTS: {},\n checkPermission: promiseMock,\n check: promiseMock,\n requestPermission: promiseMock,\n request: promiseMock,\n requestMultiple: promiseMock\n};","export default {};","export default {};","export default {};","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _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}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\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 */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\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 to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\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 argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\n\n// During SSR, React emits a warning when calling useLayoutEffect.\n// Since neither useLayoutEffect nor useEffect run on the server,\n// we can suppress this by replace it with a noop on the server.\nexport const useLayoutEffect = typeof document !== 'undefined'\n ? React.useLayoutEffect\n : () => {};\n","/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useRef} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\n\nexport function useEffectEvent(fn?: T): T {\n const ref = useRef(null);\n useLayoutEffect(() => {\n ref.current = fn;\n }, [fn]);\n // @ts-ignore\n return useCallback((...args) => {\n const f = ref.current!;\n return f?.(...args);\n }, []);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Dispatch, MutableRefObject, useRef, useState} from 'react';\nimport {useEffectEvent, useLayoutEffect} from './';\n\ntype SetValueAction = (prev: S) => Generator;\n\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nexport function useValueEffect(defaultValue: S | (() => S)): [S, Dispatch>] {\n let [value, setValue] = useState(defaultValue);\n let effect: MutableRefObject | null> = useRef | null>(null);\n\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = useEffectEvent(() => {\n if (!effect.current) {\n return;\n }\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) {\n nextRef();\n } else {\n setValue(newValue.value);\n }\n });\n\n useLayoutEffect(() => {\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) {\n nextRef();\n }\n });\n\n let queue = useEffectEvent(fn => {\n effect.current = fn(value);\n nextRef();\n });\n\n return [value, queue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\nimport {useValueEffect} from './';\n\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nlet idsUpdaterMap: Map void> = new Map();\n\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */\nexport function useId(defaultId?: string): string {\n let [value, setValue] = useState(defaultId);\n let nextId = useRef(null);\n\n let res = useSSRSafeId(value);\n\n let updateValue = useCallback((val) => {\n nextId.current = val;\n }, []);\n\n if (canUseDOM) {\n idsUpdaterMap.set(res, updateValue);\n }\n\n useLayoutEffect(() => {\n let r = res;\n return () => {\n idsUpdaterMap.delete(r);\n };\n }, [res]);\n\n // This cannot cause an infinite loop because the ref is updated first.\n // eslint-disable-next-line\n useEffect(() => {\n let newId = nextId.current;\n if (newId) {\n nextId.current = null;\n setValue(newId);\n }\n });\n\n return res;\n}\n\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */\nexport function mergeIds(idA: string, idB: string): string {\n if (idA === idB) {\n return idA;\n }\n\n let setIdA = idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n\n let setIdB = idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n\n return idB;\n}\n\n/**\n * Used to generate an id, and after render, check if that id is rendered so we know\n * if we can use it in places such as labelledby.\n * @param depArray - When to recalculate if the id is in the DOM.\n */\nexport function useSlotId(depArray: ReadonlyArray = []): string {\n let id = useId();\n let [resolvedId, setResolvedId] = useValueEffect(id);\n let updateId = useCallback(() => {\n setResolvedId(function *() {\n yield id;\n\n yield document.getElementById(id) ? id : undefined;\n });\n }, [id, setResolvedId]);\n\n useLayoutEffect(updateId, [id, updateId, ...depArray]);\n\n return resolvedId;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Calls all functions in the order they were chained with the same arguments.\n */\nexport function chain(...callbacks: any[]): (...args: any[]) => void {\n return (...args: any[]) => {\n for (let callback of callbacks) {\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\n","export const getOwnerDocument = (el: Element | null | undefined): Document => {\n return el?.ownerDocument ?? document;\n};\n\nexport const getOwnerWindow = (\n el: (Window & typeof global) | Element | null | undefined\n): Window & typeof global => {\n if (el && 'window' in el && el.window === el) {\n return el;\n }\n\n const doc = getOwnerDocument(el as Element | null | undefined);\n return doc.defaultView || window;\n};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain} from './chain';\nimport clsx from 'clsx';\nimport {mergeIds} from './useId';\n\ninterface Props {\n [key: string]: any\n}\n\ntype PropsArg = Props | null | undefined;\n\n// taken from: https://stackoverflow.com/questions/51603250/typescript-3-parameter-list-intersection-type/51604379#51604379\ntype TupleTypes = { [P in keyof T]: T[P] } extends { [key: number]: infer V } ? NullToObject : never;\ntype NullToObject = T extends (null | undefined) ? {} : T;\n// eslint-disable-next-line no-undef, @typescript-eslint/no-unused-vars\ntype UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n/**\n * Merges multiple props objects together. Event handlers are chained,\n * classNames are combined, and ids are deduplicated - different ids\n * will trigger a side-effect and re-render components hooked up with `useId`.\n * For all other props, the last prop object overrides all previous ones.\n * @param args - Multiple sets of props to merge together.\n */\nexport function mergeProps(...args: T): UnionToIntersection> {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result: Props = {...args[0]};\n for (let i = 1; i < args.length; i++) {\n let props = args[i];\n for (let key in props) {\n let a = result[key];\n let b = props[key];\n\n // Chain events\n if (\n typeof a === 'function' &&\n typeof b === 'function' &&\n // This is a lot faster than a regex.\n key[0] === 'o' &&\n key[1] === 'n' &&\n key.charCodeAt(2) >= /* 'A' */ 65 &&\n key.charCodeAt(2) <= /* 'Z' */ 90\n ) {\n result[key] = chain(a, b);\n\n // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check\n } else if (\n (key === 'className' || key === 'UNSAFE_className') &&\n typeof a === 'string' &&\n typeof b === 'string'\n ) {\n result[key] = clsx(a, b);\n } else if (key === 'id' && a && b) {\n result.id = mergeIds(a, b);\n // Override others\n } else {\n result[key] = b !== undefined ? b : a;\n }\n }\n }\n\n return result as UnionToIntersection>;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, LinkDOMProps} from '@react-types/shared';\n\nconst DOMPropNames = new Set([\n 'id'\n]);\n\nconst labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n 'href',\n 'target',\n 'rel',\n 'download',\n 'ping',\n 'referrerPolicy'\n]);\n\ninterface Options {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean,\n /** Whether the element is a link and should include DOM props for elements. */\n isLink?: boolean,\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set\n}\n\nconst propRe = /^(data-.*)$/;\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps(props: DOMProps & AriaLabelingProps & LinkDOMProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n let {labelable, isLink, propNames} = opts;\n let filteredProps = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) && (\n DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n (isLink && linkPropNames.has(prop)) ||\n propNames?.has(prop) ||\n propRe.test(prop)\n )\n ) {\n filteredProps[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\n\n// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n//\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n element: HTMLElement,\n scrollTop: number,\n scrollLeft: number\n}\n\nexport function focusWithoutScrolling(element: FocusableElement) {\n if (supportsPreventScroll()) {\n element.focus({preventScroll: true});\n } else {\n let scrollableElements = getScrollableElements(element);\n element.focus();\n restoreScrollPosition(scrollableElements);\n }\n}\n\nlet supportsPreventScrollCached: boolean | null = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n let focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n\n return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: FocusableElement): ScrollableElement[] {\n let parent = element.parentNode;\n let scrollableElements: ScrollableElement[] = [];\n let rootScrollingElement = document.scrollingElement || document.documentElement;\n\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (\n parent.offsetHeight < parent.scrollHeight ||\n parent.offsetWidth < parent.scrollWidth\n ) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n for (let {element, scrollTop, scrollLeft} of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction testUserAgent(re: RegExp) {\n if (typeof window === 'undefined' || window.navigator == null) {\n return false;\n }\n return (\n window.navigator['userAgentData']?.brands.some((brand: {brand: string, version: string}) => re.test(brand.brand))\n ) ||\n re.test(window.navigator.userAgent);\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator['userAgentData']?.platform || window.navigator.platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n return testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/i);\n}\n\nexport function isFirefox() {\n return testUserAgent(/Firefox/i);\n}\n","/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {focusWithoutScrolling, isMac, isWebKit} from './index';\nimport {isFirefox, isIPad} from './platform';\nimport {LinkDOMProps} from '@react-types/shared';\nimport React, {createContext, ReactNode, useContext, useMemo} from 'react';\n\ninterface Router {\n isNative: boolean,\n open: (target: Element, modifiers: Modifiers) => void\n}\n\nconst RouterContext = createContext({\n isNative: true,\n open: openSyntheticLink\n});\n\ninterface RouterProviderProps {\n navigate: (path: string) => void,\n children: ReactNode\n}\n\n/**\n * A RouterProvider accepts a `navigate` function from a framework or client side router,\n * and provides it to all nested React Aria links to enable client side navigation.\n */\nexport function RouterProvider(props: RouterProviderProps) {\n let {children, navigate} = props;\n\n let ctx = useMemo(() => ({\n isNative: false,\n open: (target: Element, modifiers: Modifiers) => {\n getSyntheticLink(target, link => {\n if (shouldClientNavigate(link, modifiers)) {\n navigate(link.pathname + link.search + link.hash);\n } else {\n openLink(link, modifiers);\n }\n });\n }\n }), [navigate]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function useRouter(): Router {\n return useContext(RouterContext);\n}\n\ninterface Modifiers {\n metaKey?: boolean,\n ctrlKey?: boolean,\n altKey?: boolean,\n shiftKey?: boolean\n}\n\nexport function shouldClientNavigate(link: HTMLAnchorElement, modifiers: Modifiers) {\n // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n let target = link.getAttribute('target');\n return (\n (!target || target === '_self') &&\n link.origin === location.origin &&\n !link.hasAttribute('download') &&\n !modifiers.metaKey && // open in new tab (mac)\n !modifiers.ctrlKey && // open in new tab (windows)\n !modifiers.altKey && // download\n !modifiers.shiftKey\n );\n}\n\nexport function openLink(target: HTMLAnchorElement, modifiers: Modifiers, setOpening = true) {\n let {metaKey, ctrlKey, altKey, shiftKey} = modifiers;\n\n // Firefox does not recognize keyboard events as a user action by default, and the popup blocker\n // will prevent links with target=\"_blank\" from opening. However, it does allow the event if the\n // Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.\n if (isFirefox() && window.event?.type?.startsWith('key') && target.target === '_blank') {\n if (isMac()) {\n metaKey = true;\n } else {\n ctrlKey = true;\n }\n }\n\n // WebKit does not support firing click events with modifier keys, but does support keyboard events.\n // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184\n let event = isWebKit() && isMac() && !isIPad() && process.env.NODE_ENV !== 'test'\n // @ts-ignore - keyIdentifier is a non-standard property, but it's what webkit expects\n ? new KeyboardEvent('keydown', {keyIdentifier: 'Enter', metaKey, ctrlKey, altKey, shiftKey})\n : new MouseEvent('click', {metaKey, ctrlKey, altKey, shiftKey, bubbles: true, cancelable: true});\n (openLink as any).isOpening = setOpening;\n focusWithoutScrolling(target);\n target.dispatchEvent(event);\n (openLink as any).isOpening = false;\n}\n// https://github.com/parcel-bundler/parcel/issues/8724\n(openLink as any).isOpening = false;\n\nfunction getSyntheticLink(target: Element, open: (link: HTMLAnchorElement) => void) {\n if (target instanceof HTMLAnchorElement) {\n open(target);\n } else if (target.hasAttribute('data-href')) {\n let link = document.createElement('a');\n link.href = target.getAttribute('data-href')!;\n if (target.hasAttribute('data-target')) {\n link.target = target.getAttribute('data-target')!;\n }\n if (target.hasAttribute('data-rel')) {\n link.rel = target.getAttribute('data-rel')!;\n }\n if (target.hasAttribute('data-download')) {\n link.download = target.getAttribute('data-download')!;\n }\n if (target.hasAttribute('data-ping')) {\n link.ping = target.getAttribute('data-ping')!;\n }\n if (target.hasAttribute('data-referrer-policy')) {\n link.referrerPolicy = target.getAttribute('data-referrer-policy')!;\n }\n target.appendChild(link);\n open(link);\n target.removeChild(link);\n }\n}\n\nfunction openSyntheticLink(target: Element, modifiers: Modifiers) {\n getSyntheticLink(target, link => openLink(link, modifiers));\n}\n\nexport function getSyntheticLinkProps(props: LinkDOMProps) {\n return {\n 'data-href': props.href,\n 'data-target': props.target,\n 'data-rel': props.rel,\n 'data-download': props.download,\n 'data-ping': props.ping,\n 'data-referrer-policy': props.referrerPolicy\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet transitionsByElement = new Map>();\n\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n if (typeof window === 'undefined') {\n return;\n }\n\n function isTransitionEvent(event: Event): event is TransitionEvent {\n return 'propertyName' in event;\n }\n\n let onTransitionStart = (e: Event) => {\n if (!isTransitionEvent(e) || !e.target) {\n return;\n }\n // Add the transitioning property to the list for this element.\n let transitions = transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n transitionsByElement.set(e.target, transitions);\n\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd, {\n once: true\n });\n }\n\n transitions.add(e.propertyName);\n };\n\n let onTransitionEnd = (e: Event) => {\n if (!isTransitionEvent(e) || !e.target) {\n return;\n }\n // Remove property from list of transitioning properties.\n let properties = transitionsByElement.get(e.target);\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n transitionsByElement.delete(e.target);\n }\n\n // If no transitioning elements, call all of the queued callbacks.\n if (transitionsByElement.size === 0) {\n for (let cb of transitionCallbacks) {\n cb();\n }\n\n transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n }\n}\n\nexport function runAfterTransition(fn: () => void) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(() => {\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\n }\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef} from 'react';\n\ninterface GlobalListeners {\n addGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void,\n addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void,\n removeAllGlobalListeners(): void\n}\n\nexport function useGlobalListeners(): GlobalListeners {\n let globalListeners = useRef(new Map());\n let addGlobalListener = useCallback((eventTarget, type, listener, options) => {\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = options?.once ? (...args) => {\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {type, eventTarget, fn, options});\n eventTarget.addEventListener(type, listener, options);\n }, []);\n let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n let fn = globalListeners.current.get(listener)?.fn || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach((value, key) => {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [removeGlobalListener]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return removeAllGlobalListeners;\n }, [removeAllGlobalListeners]);\n\n return {addGlobalListener, removeGlobalListener, removeAllGlobalListeners};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {useId} from './useId';\n\n/**\n * Merges aria-label and aria-labelledby into aria-labelledby when both exist.\n * @param props - Aria label props.\n * @param defaultLabel - Default value for aria-label when not present.\n */\nexport function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: string): DOMProps & AriaLabelingProps {\n let {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n } = props;\n\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = useId(id);\n if (labelledBy && label) {\n let ids = new Set([id, ...labelledBy.trim().split(/\\s+/)]);\n labelledBy = [...ids].join(' ');\n } else if (labelledBy) {\n labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n }\n\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) {\n label = defaultLabel;\n }\n\n return {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, useMemo, useRef} from 'react';\n\n/**\n * Offers an object ref for a given callback ref or an object ref. Especially\n * helfpul when passing forwarded refs (created using `React.forwardRef`) to\n * React Aria hooks.\n *\n * @param forwardedRef The original ref intended to be used.\n * @returns An object ref that updates the given ref.\n * @see https://reactjs.org/docs/forwarding-refs.html\n */\nexport function useObjectRef(forwardedRef?: ((instance: T | null) => void) | MutableRefObject | null): MutableRefObject {\n const objRef: MutableRefObject = useRef(null);\n return useMemo(() => ({\n get current() {\n return objRef.current;\n },\n set current(value) {\n objRef.current = value;\n if (typeof forwardedRef === 'function') {\n forwardedRef(value);\n } else if (forwardedRef) {\n forwardedRef.current = value;\n }\n }\n }), [forwardedRef]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, RefObject} from 'react';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue {\n ref?: MutableRefObject\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef(context?: ContextValue | null, ref?: RefObject) {\n useLayoutEffect(() => {\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return () => {\n if (context.ref) {\n context.ref.current = null;\n }\n };\n }\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface ViewportSize {\n width: number,\n height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof document !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n let isSSR = useIsSSR();\n let [size, setSize] = useState(() => isSSR ? {width: 0, height: 0} : getViewportSize());\n\n useEffect(() => {\n // Use visualViewport api to track available height even on iOS virtual keyboard opening\n let onResize = () => {\n setSize(size => {\n let newSize = getViewportSize();\n if (newSize.width === size.width && newSize.height === size.height) {\n return size;\n }\n return newSize;\n });\n };\n\n if (!visualViewport) {\n window.addEventListener('resize', onResize);\n } else {\n visualViewport.addEventListener('resize', onResize);\n }\n\n return () => {\n if (!visualViewport) {\n window.removeEventListener('resize', onResize);\n } else {\n visualViewport.removeEventListener('resize', onResize);\n }\n };\n }, []);\n\n return size;\n}\n\nfunction getViewportSize(): ViewportSize {\n return {\n width: (visualViewport && visualViewport?.width) || window.innerWidth,\n height: (visualViewport && visualViewport?.height) || window.innerHeight\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map();\n\nexport function useDescription(description?: string): AriaLabelingProps {\n let [id, setId] = useState();\n\n useLayoutEffect(() => {\n if (!description) {\n return;\n }\n\n let desc = descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${descriptionId++}`;\n setId(id);\n\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {refCount: 0, element: node};\n descriptionNodes.set(description, desc);\n } else {\n setId(desc.element.id);\n }\n\n desc.refCount++;\n return () => {\n if (desc && --desc.refCount === 0) {\n desc.element.remove();\n descriptionNodes.delete(description);\n }\n };\n }, [description]);\n\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\nimport {useEffectEvent} from './useEffectEvent';\n\nexport function useEvent(\n ref: RefObject,\n event: K,\n handler?: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n let handleEvent = useEffectEvent(handler);\n let isDisabled = handler == null;\n\n useEffect(() => {\n if (isDisabled || !ref.current) {\n return;\n }\n\n let element = ref.current;\n element.addEventListener(event, handleEvent as EventListener, options);\n return () => {\n element.removeEventListener(event, handleEvent as EventListener, options);\n };\n }, [ref, event, options, isDisabled, handleEvent]);\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isAndroid} from './platform';\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as any).mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if (isAndroid() && (event as PointerEvent).pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n\n return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport function isVirtualPointerEvent(event: PointerEvent) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return (\n (!isAndroid() && event.width === 0 && event.height === 0) ||\n (event.width === 1 &&\n event.height === 1 &&\n event.pressure === 0 &&\n event.detail === 0 &&\n event.pointerType === 'mouse'\n )\n );\n}\n","/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {RefObject, useEffect, useRef} from 'react';\nimport {useEffectEvent} from './useEffectEvent';\n\nexport function useFormReset(\n ref: RefObject,\n initialValue: T,\n onReset: (value: T) => void\n) {\n let resetValue = useRef(initialValue);\n let handleReset = useEffectEvent(() => {\n if (onReset) {\n onReset(resetValue.current);\n }\n });\n\n useEffect(() => {\n let form = ref?.current?.form;\n form?.addEventListener('reset', handleReset);\n return () => {\n form?.removeEventListener('reset', handleReset);\n };\n }, [ref, handleReset]);\n}\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","// import { useWindowDimensions } from 'react-native';\n// import { isResponsiveAnyProp } from '../theme/tools';\n\n// @ts-ignore eslint-disable-next-line\nexport function useHasResponsiveProps(props: any) {\n if (props) {\n //\n }\n return false;\n // const windowDimensions = useWindowDimensions();\n\n // if (!windowDimensions.width || !windowDimensions.height) {\n // const responsivePropsExists = isResponsiveAnyProp(props);\n // if (responsivePropsExists) {\n // return true;\n // }\n // }\n // return false;\n}\n","export default 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}","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n if (split) {\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n }\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n if (this.p.length)\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this_1 = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, function (offset) { return _this_1.onmember && _this_1.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.o = StrmOpt.call(this, opts, cb) || {};\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_2 = this;\n // enables reuse of this method by AsyncDecompress\n var cb = function () { _this_2.ondata.apply(_this_2, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o, cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o, cb)\n : new this.Z(this.o, cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n Decompress.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this_1.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this_1.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this_1.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this_1.d & 1))\n return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_3 && _this_1.c)\n _this_1.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","// src/error/flatten/flatten.ts\nfunction flatten(arg1) {\n return (Array.isArray(arg1) ? arg1 : arg1.issues).reduce(\n (flatErrors, issue) => {\n if (issue.path) {\n const path = issue.path.map(({ key }) => key).join(\".\");\n flatErrors.nested[path] = [\n ...flatErrors.nested[path] || [],\n issue.message\n ];\n } else {\n flatErrors.root = [...flatErrors.root || [], issue.message];\n }\n return flatErrors;\n },\n { nested: {} }\n );\n}\n\n// src/error/ValiError/ValiError.ts\nvar ValiError = class extends Error {\n issues;\n /**\n * Creates a Valibot error with useful information.\n *\n * @param issues The error issues.\n */\n constructor(issues) {\n super(issues[0].message);\n this.name = \"ValiError\";\n this.issues = issues;\n }\n};\n\n// src/methods/brand/brand.ts\nvar symbol = Symbol(\"brand\");\nfunction brand(schema, name) {\n return schema;\n}\n\n// src/methods/coerce/coerce.ts\nfunction coerce(schema, action) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n return schema._parse(action(input), info);\n }\n };\n}\n\n// src/methods/coerce/coerceAsync.ts\nfunction coerceAsync(schema, action) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n return schema._parse(await action(input), info);\n }\n };\n}\n\n// src/methods/fallback/fallback.ts\nfunction fallback(schema, value2) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n const result = schema._parse(input, info);\n return {\n output: result.issues ? typeof value2 === \"function\" ? value2({\n input,\n issues: result.issues\n }) : value2 : result.output\n };\n }\n };\n}\n\n// src/methods/fallback/fallbackAsync.ts\nfunction fallbackAsync(schema, value2) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n const result = await schema._parse(input, info);\n return {\n output: result.issues ? typeof value2 === \"function\" ? value2({\n input,\n issues: result.issues\n }) : value2 : result.output\n };\n }\n };\n}\n\n// src/methods/is/is.ts\nfunction is(schema, input) {\n return !schema._parse(input, { abortEarly: true }).issues;\n}\n\n// src/utils/executePipe/utils/getIssue/getIssue.ts\nfunction getIssue(info, issue) {\n return {\n reason: info?.reason,\n validation: issue.validation,\n origin: info?.origin || \"value\",\n message: issue.message,\n input: issue.input,\n abortEarly: info?.abortEarly,\n abortPipeEarly: info?.abortPipeEarly\n };\n}\n\n// src/utils/executePipe/utils/getPipeInfo/getPipeInfo.ts\nfunction getPipeInfo(info, reason) {\n return {\n reason,\n origin: info?.origin,\n abortEarly: info?.abortEarly,\n abortPipeEarly: info?.abortPipeEarly\n };\n}\n\n// src/utils/executePipe/executePipe.ts\nfunction executePipe(input, pipe, parseInfo, reason) {\n if (!pipe || !pipe.length) {\n return { output: input };\n }\n let pipeInfo;\n let issues;\n let output = input;\n for (const action of pipe) {\n const result = action(output);\n if (result.issue) {\n pipeInfo = pipeInfo || getPipeInfo(parseInfo, reason);\n const issue = getIssue(pipeInfo, result.issue);\n issues ? issues.push(issue) : issues = [issue];\n if (pipeInfo.abortEarly || pipeInfo.abortPipeEarly) {\n break;\n }\n } else {\n output = result.output;\n }\n }\n return issues ? { issues } : { output };\n}\n\n// src/utils/executePipe/executePipeAsync.ts\nasync function executePipeAsync(input, pipe, parseInfo, reason) {\n if (!pipe || !pipe.length) {\n return { output: input };\n }\n let pipeInfo;\n let issues;\n let output = input;\n for (const action of pipe) {\n const result = await action(output);\n if (result.issue) {\n pipeInfo = pipeInfo || getPipeInfo(parseInfo, reason);\n const issue = getIssue(pipeInfo, result.issue);\n issues ? issues.push(issue) : issues = [issue];\n if (pipeInfo.abortEarly || pipeInfo.abortPipeEarly) {\n break;\n }\n } else {\n output = result.output;\n }\n }\n return issues ? { issues } : { output };\n}\n\n// src/utils/getDefaultArgs/getDefaultArgs.ts\nfunction getDefaultArgs(arg1, arg2) {\n return !arg1 || typeof arg1 === \"string\" ? [arg1, arg2] : [void 0, arg1];\n}\n\n// src/utils/getIssues/getIssues.ts\nfunction getIssues(info, reason, validation, message, input, issues) {\n return {\n issues: [\n {\n reason,\n validation,\n origin: info?.origin || \"value\",\n message,\n input,\n issues,\n abortEarly: info?.abortEarly,\n abortPipeEarly: info?.abortPipeEarly\n }\n ]\n };\n}\n\n// src/utils/isLuhnAlgo/isLuhnAlgo.ts\nfunction isLuhnAlgo(input) {\n const number2 = input.replace(/\\D/g, \"\");\n let length2 = number2.length;\n let bit = 1;\n let sum = 0;\n while (length2) {\n const value2 = +number2[--length2];\n bit ^= 1;\n sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value2] : value2;\n }\n return sum % 10 === 0;\n}\n\n// src/schemas/any/any.ts\nfunction any(pipe = []) {\n return {\n /**\n * The schema type.\n */\n schema: \"any\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n return executePipe(input, pipe, info, \"any\");\n }\n };\n}\n\n// src/schemas/any/anyAsync.ts\nfunction anyAsync(pipe = []) {\n return {\n /**\n * The schema type.\n */\n schema: \"any\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n return executePipeAsync(input, pipe, info, \"any\");\n }\n };\n}\n\n// src/schemas/array/array.ts\nfunction array(item, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"array\",\n /**\n * The array item schema.\n */\n array: { item },\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!Array.isArray(input)) {\n return getIssues(info, \"type\", \"array\", error || \"Invalid type\", input);\n }\n let issues;\n const output = [];\n for (let key = 0; key < input.length; key++) {\n const value2 = input[key];\n const result = item._parse(value2, info);\n if (result.issues) {\n const pathItem = {\n schema: \"array\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n } else {\n output.push(result.output);\n }\n }\n return issues ? { issues } : executePipe(output, pipe, info, \"array\");\n }\n };\n}\n\n// src/schemas/array/arrayAsync.ts\nfunction arrayAsync(item, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"array\",\n /**\n * The array item schema.\n */\n array: { item },\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!Array.isArray(input)) {\n return getIssues(info, \"type\", \"array\", error || \"Invalid type\", input);\n }\n let issues;\n const output = [];\n await Promise.all(\n input.map(async (value2, key) => {\n if (!(info?.abortEarly && issues)) {\n const result = await item._parse(value2, info);\n if (!(info?.abortEarly && issues)) {\n if (result.issues) {\n const pathItem = {\n schema: \"array\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n throw null;\n }\n } else {\n output[key] = result.output;\n }\n }\n }\n })\n ).catch(() => null);\n return issues ? { issues } : executePipeAsync(output, pipe, info, \"array\");\n }\n };\n}\n\n// src/schemas/bigint/bigint.ts\nfunction bigint(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"bigint\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (typeof input !== \"bigint\") {\n return getIssues(\n info,\n \"type\",\n \"bigint\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipe(input, pipe, info, \"bigint\");\n }\n };\n}\n\n// src/schemas/bigint/bigintAsync.ts\nfunction bigintAsync(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"bigint\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (typeof input !== \"bigint\") {\n return getIssues(\n info,\n \"type\",\n \"bigint\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipeAsync(input, pipe, info, \"bigint\");\n }\n };\n}\n\n// src/schemas/blob/blob.ts\nfunction blob(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"blob\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!(input instanceof Blob)) {\n return getIssues(info, \"type\", \"blob\", error || \"Invalid type\", input);\n }\n return executePipe(input, pipe, info, \"blob\");\n }\n };\n}\n\n// src/schemas/blob/blobAsync.ts\nfunction blobAsync(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"blob\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!(input instanceof Blob)) {\n return getIssues(info, \"type\", \"blob\", error || \"Invalid type\", input);\n }\n return executePipeAsync(input, pipe, info, \"blob\");\n }\n };\n}\n\n// src/schemas/boolean/boolean.ts\nfunction boolean(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"boolean\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (typeof input !== \"boolean\") {\n return getIssues(\n info,\n \"type\",\n \"boolean\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipe(input, pipe, info, \"boolean\");\n }\n };\n}\n\n// src/schemas/boolean/booleanAsync.ts\nfunction booleanAsync(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"boolean\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (typeof input !== \"boolean\") {\n return getIssues(\n info,\n \"type\",\n \"boolean\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipeAsync(input, pipe, info, \"boolean\");\n }\n };\n}\n\n// src/schemas/date/date.ts\nfunction date(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"date\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!(input instanceof Date)) {\n return getIssues(info, \"type\", \"date\", error || \"Invalid type\", input);\n }\n return executePipe(input, pipe, info, \"date\");\n }\n };\n}\n\n// src/schemas/date/dateAsync.ts\nfunction dateAsync(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"date\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!(input instanceof Date)) {\n return getIssues(info, \"type\", \"date\", error || \"Invalid type\", input);\n }\n return executePipeAsync(input, pipe, info, \"date\");\n }\n };\n}\n\n// src/schemas/enumType/enumType.ts\nfunction enumType(enumValue, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"enum\",\n /**\n * The enum value.\n */\n enum: enumValue,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!enumValue.includes(input)) {\n return getIssues(info, \"type\", \"enum\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/enumType/enumTypeAsync.ts\nfunction enumTypeAsync(enumValue, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"enum\",\n /**\n * The enum value.\n */\n enum: enumValue,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!enumValue.includes(input)) {\n return getIssues(info, \"type\", \"enum\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/instance/instance.ts\nfunction instance(of, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"instance\",\n /**\n * The class of the instance.\n */\n class: of,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!(input instanceof of)) {\n return getIssues(\n info,\n \"type\",\n \"instance\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipe(input, pipe, info, \"instance\");\n }\n };\n}\n\n// src/schemas/instance/instanceAsync.ts\nfunction instanceAsync(of, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"instance\",\n /**\n * The class of the instance.\n */\n class: of,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!(input instanceof of)) {\n return getIssues(\n info,\n \"type\",\n \"instance\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipeAsync(input, pipe, info, \"instance\");\n }\n };\n}\n\n// src/schemas/literal/literal.ts\nfunction literal(literal2, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"literal\",\n /**\n * The literal value.\n */\n literal: literal2,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input !== literal2) {\n return getIssues(\n info,\n \"type\",\n \"literal\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/literal/literalAsync.ts\nfunction literalAsync(literal2, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"literal\",\n /**\n * The literal value.\n */\n literal: literal2,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input !== literal2) {\n return getIssues(\n info,\n \"type\",\n \"literal\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/map/map.ts\nfunction map(key, value2, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return {\n /**\n * The schema type.\n */\n schema: \"map\",\n /**\n * The map key and value schema.\n */\n map: { key, value: value2 },\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!(input instanceof Map)) {\n return getIssues(info, \"type\", \"map\", error || \"Invalid type\", input);\n }\n let issues;\n const output = /* @__PURE__ */ new Map();\n for (const [inputKey, inputValue] of input.entries()) {\n let pathItem;\n const keyResult = key._parse(inputKey, {\n origin: \"key\",\n abortEarly: info?.abortEarly,\n abortPipeEarly: info?.abortPipeEarly\n });\n if (keyResult.issues) {\n pathItem = {\n schema: \"map\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyResult.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = keyResult.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n }\n const valueResult = value2._parse(inputValue, info);\n if (valueResult.issues) {\n pathItem = pathItem || {\n schema: \"map\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueResult.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = valueResult.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n }\n if (!keyResult.issues && !valueResult.issues) {\n output.set(keyResult.output, valueResult.output);\n }\n }\n return issues ? { issues } : executePipe(output, pipe, info, \"map\");\n }\n };\n}\n\n// src/schemas/map/mapAsync.ts\nfunction mapAsync(key, value2, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return {\n /**\n * The schema type.\n */\n schema: \"map\",\n /**\n * The map key and value schema.\n */\n map: { key, value: value2 },\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!(input instanceof Map)) {\n return getIssues(info, \"type\", \"map\", error || \"Invalid type\", input);\n }\n const output = /* @__PURE__ */ new Map();\n let issues;\n await Promise.all(\n Array.from(input.entries()).map(async ([inputKey, inputValue]) => {\n let pathItem;\n const [keyResult, valueResult] = await Promise.all(\n [\n { schema: key, value: inputKey, origin: \"key\" },\n { schema: value2, value: inputValue, origin: \"value\" }\n ].map(async ({ schema, value: value3, origin }) => {\n if (!(info?.abortEarly && issues)) {\n const result = await schema._parse(value3, {\n origin,\n abortEarly: info?.abortEarly,\n abortPipeEarly: info?.abortPipeEarly\n });\n if (!(info?.abortEarly && issues)) {\n if (result.issues) {\n pathItem = pathItem || {\n schema: \"map\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n throw null;\n }\n } else {\n return result;\n }\n }\n }\n })\n ).catch(() => []);\n if (keyResult && valueResult) {\n output.set(keyResult.output, valueResult.output);\n }\n })\n );\n return issues ? { issues } : executePipeAsync(input, pipe, info, \"map\");\n }\n };\n}\n\n// src/schemas/nan/nan.ts\nfunction nan(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"nan\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!Number.isNaN(input)) {\n return getIssues(info, \"type\", \"nan\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/nan/nanAsync.ts\nfunction nanAsync(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"nan\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!Number.isNaN(input)) {\n return getIssues(info, \"type\", \"nan\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/nativeEnum/nativeEnum.ts\nfunction nativeEnum(nativeEnum2, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"native_enum\",\n /**\n * The native enum value.\n */\n nativeEnum: nativeEnum2,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!Object.values(nativeEnum2).includes(input)) {\n return getIssues(\n info,\n \"type\",\n \"native_enum\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/nativeEnum/nativeEnumAsync.ts\nfunction nativeEnumAsync(nativeEnum2, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"native_enum\",\n /**\n * The native enum value.\n */\n nativeEnum: nativeEnum2,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!Object.values(nativeEnum2).includes(input)) {\n return getIssues(\n info,\n \"type\",\n \"native_enum\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/never/never.ts\nfunction never(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"never\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n return getIssues(info, \"type\", \"never\", error || \"Invalid type\", input);\n }\n };\n}\n\n// src/schemas/never/neverAsync.ts\nfunction neverAsync(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"never\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n return getIssues(info, \"type\", \"never\", error || \"Invalid type\", input);\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullable.ts\nfunction nonNullable(wrapped, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"non_nullable\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input === null) {\n return getIssues(\n info,\n \"type\",\n \"non_nullable\",\n error || \"Invalid type\",\n input\n );\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullableAsync.ts\nfunction nonNullableAsync(wrapped, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"non_nullable\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input === null) {\n return getIssues(\n info,\n \"type\",\n \"non_nullable\",\n error || \"Invalid type\",\n input\n );\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullish.ts\nfunction nonNullish(wrapped, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"non_nullish\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input === null || input === void 0) {\n return getIssues(\n info,\n \"type\",\n \"non_nullish\",\n error || \"Invalid type\",\n input\n );\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullishAsync.ts\nfunction nonNullishAsync(wrapped, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"non_nullish\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input === null || input === void 0) {\n return getIssues(\n info,\n \"type\",\n \"non_nullish\",\n error || \"Invalid type\",\n input\n );\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptional.ts\nfunction nonOptional(wrapped, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"non_optional\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input === void 0) {\n return getIssues(\n info,\n \"type\",\n \"non_optional\",\n error || \"Invalid type\",\n input\n );\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptionalAsync.ts\nfunction nonOptionalAsync(wrapped, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"non_optional\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input === void 0) {\n return getIssues(\n info,\n \"type\",\n \"non_optional\",\n error || \"Invalid type\",\n input\n );\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nullable/nullable.ts\nfunction nullable(wrapped) {\n return {\n /**\n * The schema type.\n */\n schema: \"nullable\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input === null) {\n return { output: input };\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nullable/nullableAsync.ts\nfunction nullableAsync(wrapped) {\n return {\n /**\n * The schema type.\n */\n schema: \"nullable\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input === null) {\n return { output: input };\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nullish/nullish.ts\nfunction nullish(wrapped) {\n return {\n /**\n * The schema type.\n */\n schema: \"nullish\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input === null || input === void 0) {\n return { output: input };\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nullish/nullishAsync.ts\nfunction nullishAsync(wrapped) {\n return {\n /**\n * The schema type.\n */\n schema: \"nullish\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input === null || input === void 0) {\n return { output: input };\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/nullType/nullType.ts\nfunction nullType(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"null\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input !== null) {\n return getIssues(info, \"type\", \"null\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/nullType/nullTypeAsync.ts\nfunction nullTypeAsync(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"null\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input !== null) {\n return getIssues(info, \"type\", \"null\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/number/number.ts\nfunction number(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"number\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (typeof input !== \"number\") {\n return getIssues(\n info,\n \"type\",\n \"number\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipe(input, pipe, info, \"number\");\n }\n };\n}\n\n// src/schemas/number/numberAsync.ts\nfunction numberAsync(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"number\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (typeof input !== \"number\") {\n return getIssues(\n info,\n \"type\",\n \"number\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipeAsync(input, pipe, info, \"number\");\n }\n };\n}\n\n// src/schemas/object/object.ts\nfunction object(object2, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n let cachedEntries;\n return {\n /**\n * The schema type.\n */\n schema: \"object\",\n /**\n * The object schema.\n */\n object: object2,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!input || typeof input !== \"object\") {\n return getIssues(\n info,\n \"type\",\n \"object\",\n error || \"Invalid type\",\n input\n );\n }\n cachedEntries = cachedEntries || Object.entries(object2);\n let issues;\n const output = {};\n for (const [key, schema] of cachedEntries) {\n const value2 = input[key];\n const result = schema._parse(value2, info);\n if (result.issues) {\n const pathItem = {\n schema: \"object\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n } else {\n output[key] = result.output;\n }\n }\n return issues ? { issues } : executePipe(\n output,\n pipe,\n info,\n \"object\"\n );\n }\n };\n}\n\n// src/schemas/object/objectAsync.ts\nfunction objectAsync(object2, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n let cachedEntries;\n return {\n /**\n * The schema type.\n */\n schema: \"object\",\n /**\n * The object schema.\n */\n object: object2,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!input || typeof input !== \"object\") {\n return getIssues(\n info,\n \"type\",\n \"object\",\n error || \"Invalid type\",\n input\n );\n }\n cachedEntries = cachedEntries || Object.entries(object2);\n let issues;\n const output = {};\n await Promise.all(\n cachedEntries.map(async ([key, schema]) => {\n if (!(info?.abortEarly && issues)) {\n const value2 = input[key];\n const result = await schema._parse(value2, info);\n if (!(info?.abortEarly && issues)) {\n if (result.issues) {\n const pathItem = {\n schema: \"object\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n throw null;\n }\n } else {\n output[key] = result.output;\n }\n }\n }\n })\n ).catch(() => null);\n return issues ? { issues } : executePipeAsync(\n output,\n pipe,\n info,\n \"object\"\n );\n }\n };\n}\n\n// src/schemas/optional/optional.ts\nfunction optional(wrapped) {\n return {\n /**\n * The schema type.\n */\n schema: \"optional\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (input === void 0) {\n return { output: input };\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/optional/optionalAsync.ts\nfunction optionalAsync(wrapped) {\n return {\n /**\n * The schema type.\n */\n schema: \"optional\",\n /**\n * The wrapped schema.\n */\n wrapped,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (input === void 0) {\n return { output: input };\n }\n return wrapped._parse(input, info);\n }\n };\n}\n\n// src/schemas/string/string.ts\nfunction string(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"string\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (typeof input !== \"string\") {\n return getIssues(\n info,\n \"type\",\n \"string\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipe(input, pipe, info, \"string\");\n }\n };\n}\n\n// src/schemas/string/stringAsync.ts\nfunction stringAsync(arg1, arg2) {\n const [error, pipe] = getDefaultArgs(arg1, arg2);\n return {\n /**\n * The schema type.\n */\n schema: \"string\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (typeof input !== \"string\") {\n return getIssues(\n info,\n \"type\",\n \"string\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipeAsync(input, pipe, info, \"string\");\n }\n };\n}\n\n// src/schemas/record/utils/getRecordArgs/getRecordArgs.ts\nfunction getRecordArgs(arg1, arg2, arg3, arg4) {\n if (typeof arg2 === \"object\" && !Array.isArray(arg2)) {\n const [error2, pipe2] = getDefaultArgs(arg3, arg4);\n return [arg1, arg2, error2, pipe2];\n }\n const [error, pipe] = getDefaultArgs(\n arg2,\n arg3\n );\n return [string(), arg1, error, pipe];\n}\n\n// src/schemas/record/values.ts\nvar BLOCKED_KEYS = [\"__proto__\", \"prototype\", \"constructor\"];\n\n// src/schemas/record/record.ts\nfunction record(arg1, arg2, arg3, arg4) {\n const [key, value2, error, pipe] = getRecordArgs(arg1, arg2, arg3, arg4);\n return {\n /**\n * The schema type.\n */\n schema: \"record\",\n /**\n * The record key and value schema.\n */\n record: { key, value: value2 },\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!input || typeof input !== \"object\") {\n return getIssues(\n info,\n \"type\",\n \"record\",\n error || \"Invalid type\",\n input\n );\n }\n let issues;\n const output = {};\n for (const [inputKey, inputValue] of Object.entries(input)) {\n if (!BLOCKED_KEYS.includes(inputKey)) {\n let pathItem;\n const keyResult = key._parse(inputKey, {\n origin: \"key\",\n abortEarly: info?.abortEarly,\n abortPipeEarly: info?.abortPipeEarly\n });\n if (keyResult.issues) {\n pathItem = {\n schema: \"record\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyResult.issues) {\n issue.path = [pathItem];\n issues?.push(issue);\n }\n if (!issues) {\n issues = keyResult.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n }\n const valueResult = value2._parse(inputValue, info);\n if (valueResult.issues) {\n pathItem = pathItem || {\n schema: \"record\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueResult.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = valueResult.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n }\n if (!keyResult.issues && !valueResult.issues) {\n output[keyResult.output] = valueResult.output;\n }\n }\n }\n return issues ? { issues } : executePipe(\n output,\n pipe,\n info,\n \"record\"\n );\n }\n };\n}\n\n// src/schemas/record/recordAsync.ts\nfunction recordAsync(arg1, arg2, arg3, arg4) {\n const [key, value2, error, pipe] = getRecordArgs(arg1, arg2, arg3, arg4);\n return {\n /**\n * The schema type.\n */\n schema: \"record\",\n /**\n * The record key and value schema.\n */\n record: { key, value: value2 },\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!input || typeof input !== \"object\") {\n return getIssues(\n info,\n \"type\",\n \"record\",\n error || \"Invalid type\",\n input\n );\n }\n let issues;\n const output = {};\n await Promise.all(\n // Note: `Object.entries(...)` converts each key to a string\n Object.entries(input).map(async ([inputKey, inputValue]) => {\n if (!BLOCKED_KEYS.includes(inputKey)) {\n let pathItem;\n const [keyResult, valueResult] = await Promise.all(\n [\n { schema: key, value: inputKey, origin: \"key\" },\n { schema: value2, value: inputValue, origin: \"value\" }\n ].map(async ({ schema, value: value3, origin }) => {\n if (!(info?.abortEarly && issues)) {\n const result = await schema._parse(value3, {\n origin,\n abortEarly: info?.abortEarly,\n abortPipeEarly: info?.abortPipeEarly\n });\n if (!(info?.abortEarly && issues)) {\n if (result.issues) {\n pathItem = pathItem || {\n schema: \"record\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n throw null;\n }\n } else {\n return result;\n }\n }\n }\n })\n ).catch(() => []);\n if (keyResult && valueResult) {\n output[keyResult.output] = valueResult.output;\n }\n }\n })\n );\n return issues ? { issues } : executePipeAsync(\n output,\n pipe,\n info,\n \"record\"\n );\n }\n };\n}\n\n// src/schemas/recursive/recursive.ts\nfunction recursive(getter) {\n return {\n /**\n * The schema type.\n */\n schema: \"recursive\",\n /**\n * The schema getter.\n */\n getter,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n return getter()._parse(input, info);\n }\n };\n}\n\n// src/schemas/recursive/recursiveAsync.ts\nfunction recursiveAsync(getter) {\n return {\n /**\n * The schema type.\n */\n schema: \"recursive\",\n /**\n * The schema getter.\n */\n getter,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n return getter()._parse(input, info);\n }\n };\n}\n\n// src/schemas/set/set.ts\nfunction set(value2, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"set\",\n /**\n * The set value schema.\n */\n set: { value: value2 },\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!(input instanceof Set)) {\n return getIssues(info, \"type\", \"set\", error || \"Invalid type\", input);\n }\n let key = 0;\n let issues;\n const output = /* @__PURE__ */ new Set();\n for (const inputValue of input) {\n const result = value2._parse(inputValue, info);\n if (result.issues) {\n const pathItem = {\n schema: \"set\",\n input,\n key,\n value: inputValue\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n } else {\n output.add(result.output);\n }\n key++;\n }\n return issues ? { issues } : executePipe(output, pipe, info, \"set\");\n }\n };\n}\n\n// src/schemas/set/setAsync.ts\nfunction setAsync(value2, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"set\",\n /**\n * The set value schema.\n */\n set: { value: value2 },\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!(input instanceof Set)) {\n return getIssues(info, \"type\", \"set\", error || \"Invalid type\", input);\n }\n let issues;\n const output = /* @__PURE__ */ new Set();\n await Promise.all(\n Array.from(input.values()).map(async (inputValue, key) => {\n if (!(info?.abortEarly && issues)) {\n const result = await value2._parse(inputValue, info);\n if (!(info?.abortEarly && issues)) {\n if (result.issues) {\n const pathItem = {\n schema: \"set\",\n input,\n key,\n value: inputValue\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n throw null;\n }\n } else {\n output.add(result.output);\n }\n }\n }\n })\n ).catch(() => null);\n return issues ? { issues } : executePipeAsync(input, pipe, info, \"set\");\n }\n };\n}\n\n// src/schemas/special/special.ts\nfunction special(check, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"special\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!check(input)) {\n return getIssues(\n info,\n \"type\",\n \"special\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipe(input, pipe, info, \"special\");\n }\n };\n}\n\n// src/schemas/special/specialAsync.ts\nfunction specialAsync(check, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return {\n /**\n * The schema type.\n */\n schema: \"special\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!await check(input)) {\n return getIssues(\n info,\n \"type\",\n \"special\",\n error || \"Invalid type\",\n input\n );\n }\n return executePipeAsync(input, pipe, info, \"special\");\n }\n };\n}\n\n// src/schemas/symbol/symbol.ts\nfunction symbol2(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"symbol\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (typeof input !== \"symbol\") {\n return getIssues(\n info,\n \"type\",\n \"symbol\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/symbol/symbolAsync.ts\nfunction symbolAsync(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"symbol\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (typeof input !== \"symbol\") {\n return getIssues(\n info,\n \"type\",\n \"symbol\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/tuple/utils/getTupleArgs/getTupleArgs.ts\nfunction getTupleArgs(arg1, arg2, arg3) {\n if (typeof arg1 === \"object\" && !Array.isArray(arg1)) {\n const [error2, pipe2] = getDefaultArgs(arg2, arg3);\n return [arg1, error2, pipe2];\n }\n const [error, pipe] = getDefaultArgs(\n arg1,\n arg2\n );\n return [void 0, error, pipe];\n}\n\n// src/schemas/tuple/tuple.ts\nfunction tuple(items, arg2, arg3, arg4) {\n const [rest, error, pipe] = getTupleArgs(arg2, arg3, arg4);\n return {\n /**\n * The schema type.\n */\n schema: \"tuple\",\n /**\n * The tuple items and rest schema.\n */\n tuple: { items, rest },\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (!Array.isArray(input) || !rest && items.length !== input.length || rest && items.length > input.length) {\n return getIssues(info, \"type\", \"tuple\", error || \"Invalid type\", input);\n }\n let issues;\n const output = [];\n for (let key = 0; key < items.length; key++) {\n const value2 = input[key];\n const result = items[key]._parse(value2, info);\n if (result.issues) {\n const pathItem = {\n schema: \"tuple\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n } else {\n output[key] = result.output;\n }\n }\n if (rest) {\n for (let key = items.length; key < input.length; key++) {\n const value2 = input[key];\n const result = rest._parse(value2, info);\n if (result.issues) {\n const pathItem = {\n schema: \"tuple\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n break;\n }\n } else {\n output[key] = result.output;\n }\n }\n }\n return issues ? { issues } : executePipe(\n output,\n pipe,\n info,\n \"tuple\"\n );\n }\n };\n}\n\n// src/schemas/tuple/tupleAsync.ts\nfunction tupleAsync(items, arg2, arg3, arg4) {\n const [rest, error, pipe] = getTupleArgs(arg2, arg3, arg4);\n return {\n /**\n * The schema type.\n */\n schema: \"tuple\",\n /**\n * The tuple items and rest schema.\n */\n tuple: { items, rest },\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (!Array.isArray(input) || !rest && items.length !== input.length || rest && items.length > input.length) {\n return getIssues(info, \"type\", \"tuple\", error || \"Invalid type\", input);\n }\n let issues;\n const output = [];\n await Promise.all([\n // Parse schema of each tuple item\n Promise.all(\n items.map(async (schema, key) => {\n if (!(info?.abortEarly && issues)) {\n const value2 = input[key];\n const result = await schema._parse(value2, info);\n if (!(info?.abortEarly && issues)) {\n if (result.issues) {\n const pathItem = {\n schema: \"tuple\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n throw null;\n }\n } else {\n output[key] = result.output;\n }\n }\n }\n })\n ),\n // If necessary parse schema of each rest item\n rest && Promise.all(\n input.slice(items.length).map(async (value2, index) => {\n if (!(info?.abortEarly && issues)) {\n const key = items.length + index;\n const result = await rest._parse(value2, info);\n if (!(info?.abortEarly && issues)) {\n if (result.issues) {\n const pathItem = {\n schema: \"tuple\",\n input,\n key,\n value: value2\n };\n for (const issue of result.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n issues?.push(issue);\n }\n if (!issues) {\n issues = result.issues;\n }\n if (info?.abortEarly) {\n throw null;\n }\n } else {\n output[key] = result.output;\n }\n }\n }\n })\n )\n ]).catch(() => null);\n return issues ? { issues } : executePipeAsync(\n output,\n pipe,\n info,\n \"tuple\"\n );\n }\n };\n}\n\n// src/schemas/undefinedType/undefinedType.ts\nfunction undefinedType(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"undefined\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (typeof input !== \"undefined\") {\n return getIssues(\n info,\n \"type\",\n \"undefined\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/undefinedType/undefinedTypeAsync.ts\nfunction undefinedTypeAsync(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"undefined\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (typeof input !== \"undefined\") {\n return getIssues(\n info,\n \"type\",\n \"undefined\",\n error || \"Invalid type\",\n input\n );\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/union/union.ts\nfunction union(union2, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"union\",\n /**\n * The union schema.\n */\n union: union2,\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n let issues;\n let output;\n for (const schema of union2) {\n const result = schema._parse(input, info);\n if (result.issues) {\n if (issues) {\n for (const issue of result.issues) {\n issues.push(issue);\n }\n } else {\n issues = result.issues;\n }\n } else {\n output = [result.output];\n break;\n }\n }\n return output ? { output: output[0] } : getIssues(\n info,\n \"type\",\n \"union\",\n error || \"Invalid type\",\n input,\n issues\n );\n }\n };\n}\n\n// src/schemas/union/unionAsync.ts\nfunction unionAsync(union2, error) {\n return {\n /**\n * The schema type.\n */\n schema: \"union\",\n /**\n * The union schema.\n */\n union: union2,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n let issues;\n let output;\n for (const schema of union2) {\n const result = await schema._parse(input, info);\n if (result.issues) {\n if (issues) {\n for (const issue of result.issues) {\n issues.push(issue);\n }\n } else {\n issues = result.issues;\n }\n } else {\n output = [result.output];\n break;\n }\n }\n return output ? { output: output[0] } : getIssues(\n info,\n \"type\",\n \"union\",\n error || \"Invalid type\",\n input,\n issues\n );\n }\n };\n}\n\n// src/schemas/unknown/unknown.ts\nfunction unknown(pipe = []) {\n return {\n /**\n * The schema type.\n */\n schema: \"unknown\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n return executePipe(input, pipe, info, \"unknown\");\n }\n };\n}\n\n// src/schemas/unknown/unknownAsync.ts\nfunction unknownAsync(pipe = []) {\n return {\n /**\n * The schema type.\n */\n schema: \"unknown\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n return executePipeAsync(input, pipe, info, \"unknown\");\n }\n };\n}\n\n// src/schemas/voidType/voidType.ts\nfunction voidType(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"void\",\n /**\n * Whether it's async.\n */\n async: false,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n if (typeof input !== \"undefined\") {\n return getIssues(info, \"type\", \"void\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/schemas/voidType/voidTypeAsync.ts\nfunction voidTypeAsync(error) {\n return {\n /**\n * The schema type.\n */\n schema: \"void\",\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n if (typeof input !== \"undefined\") {\n return getIssues(info, \"type\", \"void\", error || \"Invalid type\", input);\n }\n return { output: input };\n }\n };\n}\n\n// src/methods/keyof/keyof.ts\nfunction keyof(schema) {\n return enumType(\n Object.keys(schema.object)\n );\n}\n\n// src/methods/merge/merge.ts\nfunction merge(schemas, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return object(\n schemas.reduce(\n (object2, schemas2) => ({ ...object2, ...schemas2.object }),\n {}\n ),\n error,\n pipe\n );\n}\n\n// src/methods/merge/mergeAsync.ts\nfunction mergeAsync(schemas, arg2, arg3) {\n const [error, pipe] = getDefaultArgs(arg2, arg3);\n return objectAsync(\n schemas.reduce(\n (object2, schemas2) => ({ ...object2, ...schemas2.object }),\n {}\n ),\n error,\n pipe\n );\n}\n\n// src/methods/omit/omit.ts\nfunction omit(schema, keys, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return object(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => keys.includes(key) ? object2 : { ...object2, [key]: schema2 },\n {}\n ),\n error,\n pipe\n );\n}\n\n// src/methods/omit/omitAsync.ts\nfunction omitAsync(schema, keys, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return objectAsync(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => keys.includes(key) ? object2 : { ...object2, [key]: schema2 },\n {}\n ),\n error,\n pipe\n );\n}\n\n// src/methods/parse/parse.ts\nfunction parse(schema, input, info) {\n const result = schema._parse(input, info);\n if (result.issues) {\n throw new ValiError(result.issues);\n }\n return result.output;\n}\n\n// src/methods/parse/parseAsync.ts\nasync function parseAsync(schema, input, info) {\n const result = await schema._parse(input, info);\n if (result.issues) {\n throw new ValiError(result.issues);\n }\n return result.output;\n}\n\n// src/methods/partial/partial.ts\nfunction partial(schema, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return object(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => ({\n ...object2,\n [key]: optional(schema2)\n }),\n {}\n ),\n error,\n // @ts-ignore FIXME: Remove line once bug in TS is fixed\n pipe\n );\n}\n\n// src/methods/partial/partialAsync.ts\nfunction partialAsync(schema, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return objectAsync(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => ({\n ...object2,\n [key]: optionalAsync(schema2)\n }),\n {}\n ),\n error,\n // @ts-ignore FIXME: Remove line once bug in TS is fixed\n pipe\n );\n}\n\n// src/methods/pick/pick.ts\nfunction pick(schema, keys, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return object(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => keys.includes(key) ? { ...object2, [key]: schema2 } : object2,\n {}\n ),\n error,\n pipe\n );\n}\n\n// src/methods/pick/pickAsync.ts\nfunction pickAsync(schema, keys, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return objectAsync(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => keys.includes(key) ? { ...object2, [key]: schema2 } : object2,\n {}\n ),\n error,\n pipe\n );\n}\n\n// src/methods/required/required.ts\nfunction required(schema, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return object(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => ({\n ...object2,\n [key]: nonOptional(schema2)\n }),\n {}\n ),\n error,\n // @ts-ignore FIXME: Remove line once bug in TS is fixed\n pipe\n );\n}\n\n// src/methods/required/requiredAsync.ts\nfunction requiredAsync(schema, arg3, arg4) {\n const [error, pipe] = getDefaultArgs(arg3, arg4);\n return objectAsync(\n Object.entries(schema.object).reduce(\n (object2, [key, schema2]) => ({\n ...object2,\n [key]: nonOptionalAsync(schema2)\n }),\n {}\n ),\n error,\n // @ts-ignore FIXME: Remove line once bug in TS is fixed\n pipe\n );\n}\n\n// src/methods/safeParse/safeParse.ts\nfunction safeParse(schema, input, info) {\n const result = schema._parse(input, info);\n return result.issues ? {\n success: false,\n error: new ValiError(result.issues),\n issues: result.issues\n } : {\n success: true,\n data: result.output,\n output: result.output\n };\n}\n\n// src/methods/safeParse/safeParseAsync.ts\nasync function safeParseAsync(schema, input, info) {\n const result = await schema._parse(input, info);\n return result.issues ? {\n success: false,\n error: new ValiError(result.issues),\n issues: result.issues\n } : {\n success: true,\n data: result.output,\n output: result.output\n };\n}\n\n// src/methods/strict/strict.ts\nfunction strict(schema, error) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n const result = schema._parse(input, info);\n return !result.issues && // Check length of input and output keys\n Object.keys(input).length !== Object.keys(result.output).length ? getIssues(info, \"object\", \"strict\", error || \"Invalid keys\", input) : result;\n }\n };\n}\n\n// src/methods/strict/strictAsync.ts\nfunction strictAsync(schema, error) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n const result = await schema._parse(input, info);\n return !result.issues && // Check length of input and output keys\n Object.keys(input).length !== Object.keys(result.output).length ? getIssues(info, \"object\", \"strict\", error || \"Invalid keys\", input) : result;\n }\n };\n}\n\n// src/methods/transform/transform.ts\nfunction transform(schema, action) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n const result = schema._parse(input, info);\n return result.issues ? result : { output: action(result.output) };\n }\n };\n}\n\n// src/methods/transform/transformAsync.ts\nfunction transformAsync(schema, action) {\n return {\n ...schema,\n /**\n * Whether it's async.\n */\n async: true,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n async _parse(input, info) {\n const result = await schema._parse(input, info);\n return result.issues ? result : { output: await action(result.output) };\n }\n };\n}\n\n// src/methods/unwrap/unwrap.ts\nfunction unwrap(schema) {\n return schema.wrapped;\n}\n\n// src/methods/withDefault/withDefault.ts\nfunction withDefault(schema, value2) {\n return {\n ...schema,\n /**\n * Parses unknown input based on its schema.\n *\n * @param input The input to be parsed.\n * @param info The parse info.\n *\n * @returns The parsed output.\n */\n _parse(input, info) {\n return schema._parse(\n input === void 0 ? typeof value2 === \"function\" ? value2() : value2 : input,\n info\n );\n }\n };\n}\nvar useDefault = withDefault;\n\n// src/transformations/toCustom/toCustom.ts\nfunction toCustom(action) {\n return (input) => ({ output: action(input) });\n}\n\n// src/transformations/toCustom/toCustomAsync.ts\nfunction toCustomAsync(action) {\n return async (input) => ({\n output: await action(input)\n });\n}\n\n// src/transformations/toLowerCase/toLowerCase.ts\nfunction toLowerCase() {\n return (input) => ({\n output: input.toLocaleLowerCase()\n });\n}\n\n// src/transformations/toMaxValue/toMaxValue.ts\nfunction toMaxValue(requirement) {\n return (input) => ({\n output: input > requirement ? requirement : input\n });\n}\n\n// src/transformations/toMinValue/toMinValue.ts\nfunction toMinValue(requirement) {\n return (input) => ({\n output: input < requirement ? requirement : input\n });\n}\n\n// src/transformations/toTrimmed/toTrimmed.ts\nfunction toTrimmed() {\n return (input) => ({ output: input.trim() });\n}\n\n// src/transformations/toTrimmedEnd/toTrimmedEnd.ts\nfunction toTrimmedEnd() {\n return (input) => ({ output: input.trimEnd() });\n}\n\n// src/transformations/toTrimmedStart/toTrimmedStart.ts\nfunction toTrimmedStart() {\n return (input) => ({\n output: input.trimStart()\n });\n}\n\n// src/transformations/toUpperCase/toUpperCase.ts\nfunction toUpperCase() {\n return (input) => ({\n output: input.toUpperCase()\n });\n}\n\n// src/validations/bytes/bytes.ts\nfunction bytes(requirement, error) {\n return (input) => {\n if (new TextEncoder().encode(input).length !== requirement) {\n return {\n issue: {\n validation: \"bytes\",\n message: error || \"Invalid byte length\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/custom/custom.ts\nfunction custom(requirement, error) {\n return (input) => {\n if (!requirement(input)) {\n return {\n issue: {\n validation: \"custom\",\n message: error || \"Invalid input\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/custom/customAsync.ts\nfunction customAsync(requirement, error) {\n return async (input) => {\n if (!await requirement(input)) {\n return {\n issue: {\n validation: \"custom\",\n message: error || \"Invalid input\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/email/email.ts\nfunction email(error) {\n return (input) => {\n if (!/^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{2,})$/i.test(\n input\n )) {\n return {\n issue: {\n validation: \"email\",\n message: error || \"Invalid email\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/emoji/emoji.ts\nfunction emoji(error) {\n return (input) => {\n if (!/^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$/u.test(input)) {\n return {\n issue: {\n validation: \"emoji\",\n message: error || \"Invalid emoji\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/endsWith/endsWith.ts\nfunction endsWith(requirement, error) {\n return (input) => {\n if (!input.endsWith(requirement)) {\n return {\n issue: {\n validation: \"ends_with\",\n message: error || \"Invalid end\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/equal/equal.ts\nfunction equal(requirement, error) {\n return (input) => {\n if (input !== requirement) {\n return {\n issue: {\n validation: \"equal\",\n message: error || \"Invalid input\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/excludes/excludes.ts\nfunction excludes(requirement, error) {\n return (input) => {\n if (input.includes(requirement)) {\n return {\n issue: {\n validation: \"excludes\",\n message: error || \"Invalid content\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/finite/finite.ts\nfunction finite(error) {\n return (input) => {\n if (!Number.isFinite(input)) {\n return {\n issue: {\n validation: \"finite\",\n message: error || \"Invalid finite number\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/imei/imei.ts\nfunction imei(error) {\n return (input) => {\n if (!/^\\d{2}[ |/|-]?\\d{6}[ |/|-]?\\d{6}[ |/|-]?\\d$/.test(input) || !isLuhnAlgo(input)) {\n return {\n issue: {\n validation: \"imei\",\n message: error || \"Invalid IMEI\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/includes/includes.ts\nfunction includes(requirement, error) {\n return (input) => {\n if (!input.includes(requirement)) {\n return {\n issue: {\n validation: \"includes\",\n message: error || \"Invalid content\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/integer/integer.ts\nfunction integer(error) {\n return (input) => {\n if (!Number.isInteger(input)) {\n return {\n issue: {\n validation: \"integer\",\n message: error || \"Invalid integer\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/ip/ip.ts\nfunction ip(error) {\n return (input) => {\n if (!/^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$/.test(input) && !/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/.test(\n input\n )) {\n return {\n issue: {\n validation: \"ip\",\n message: error || \"Invalid IP\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/ipv4/ipv4.ts\nfunction ipv4(error) {\n return (input) => {\n if (!/^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$/.test(input)) {\n return {\n issue: {\n validation: \"ipv4\",\n message: error || \"Invalid IP v4\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/ipv6/ipv6.ts\nfunction ipv6(error) {\n return (input) => {\n if (!/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/.test(\n input\n )) {\n return {\n issue: {\n validation: \"ipv6\",\n message: error || \"Invalid IP v6\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/isoDate/isoDate.ts\nfunction isoDate(error) {\n return (input) => {\n if (!/^\\d{4}-(0[1-9]|1[0-2])-([12]\\d|0[1-9]|3[01])$/.test(input)) {\n return {\n issue: {\n validation: \"iso_date\",\n message: error || \"Invalid date\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/isoDateTime/isoDateTime.ts\nfunction isoDateTime(error) {\n return (input) => {\n if (!/^\\d{4}-(0[1-9]|1[0-2])-([12]\\d|0[1-9]|3[01])T(0[0-9]|1\\d|2[0-3]):[0-5]\\d$/.test(\n input\n )) {\n return {\n issue: {\n validation: \"iso_date_time\",\n message: error || \"Invalid datetime\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/isoTime/isoTime.ts\nfunction isoTime(error) {\n return (input) => {\n if (!/^(0[0-9]|1\\d|2[0-3]):[0-5]\\d$/.test(input)) {\n return {\n issue: {\n validation: \"iso_time\",\n message: error || \"Invalid time\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/isoTimeSecond/isoTimeSecond.ts\nfunction isoTimeSecond(error) {\n return (input) => {\n if (!/^(0[0-9]|1\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/.test(input)) {\n return {\n issue: {\n validation: \"iso_time_second\",\n message: error || \"Invalid time\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/isoTimestamp/isoTimestamp.ts\nfunction isoTimestamp(error) {\n return (input) => {\n if (!/^\\d{4}-(0[1-9]|1[0-2])-([12]\\d|0[1-9]|3[01])T(0[0-9]|1\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}Z$/.test(\n input\n )) {\n return {\n issue: {\n validation: \"iso_timestamp\",\n message: error || \"Invalid timestamp\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/isoWeek/isoWeek.ts\nfunction isoWeek(error) {\n return (input) => {\n if (!/^\\d{4}-W(0[1-9]|[1-4]\\d|5[0-3])$/.test(input)) {\n return {\n issue: {\n validation: \"iso_week\",\n message: error || \"Invalid week\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/length/length.ts\nfunction length(requirement, error) {\n return (input) => {\n if (input.length !== requirement) {\n return {\n issue: {\n validation: \"length\",\n message: error || \"Invalid length\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/maxBytes/maxBytes.ts\nfunction maxBytes(requirement, error) {\n return (input) => {\n if (new TextEncoder().encode(input).length > requirement) {\n return {\n issue: {\n validation: \"max_bytes\",\n message: error || \"Invalid byte length\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/maxLength/maxLength.ts\nfunction maxLength(requirement, error) {\n return (input) => {\n if (input.length > requirement) {\n return {\n issue: {\n validation: \"max_length\",\n message: error || \"Invalid length\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/maxSize/maxSize.ts\nfunction maxSize(requirement, error) {\n return (input) => {\n if (input.size > requirement) {\n return {\n issue: {\n validation: \"max_size\",\n message: error || \"Invalid size\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/maxValue/maxValue.ts\nfunction maxValue(requirement, error) {\n return (input) => {\n if (input > requirement) {\n return {\n issue: {\n validation: \"max_value\",\n message: error || \"Invalid value\",\n input\n }\n };\n }\n return { output: input };\n };\n}\nvar maxRange = maxValue;\n\n// src/validations/minBytes/minBytes.ts\nfunction minBytes(requirement, error) {\n return (input) => {\n if (new TextEncoder().encode(input).length < requirement) {\n return {\n issue: {\n validation: \"min_bytes\",\n message: error || \"Invalid byte length\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/mimeType/mimeType.ts\nfunction mimeType(requirement, error) {\n return (input) => {\n if (!requirement.includes(input.type)) {\n return {\n issue: {\n validation: \"mime_type\",\n message: error || \"Invalid MIME type\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/minLength/minLength.ts\nfunction minLength(requirement, error) {\n return (input) => {\n if (input.length < requirement) {\n return {\n issue: {\n validation: \"min_length\",\n message: error || \"Invalid length\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/minSize/minSize.ts\nfunction minSize(requirement, error) {\n return (input) => {\n if (input.size < requirement) {\n return {\n issue: {\n validation: \"min_size\",\n message: error || \"Invalid size\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/minValue/minValue.ts\nfunction minValue(requirement, error) {\n return (input) => {\n if (input < requirement) {\n return {\n issue: {\n validation: \"min_value\",\n message: error || \"Invalid value\",\n input\n }\n };\n }\n return { output: input };\n };\n}\nvar minRange = minValue;\n\n// src/validations/multipleOf/multipleOf.ts\nfunction multipleOf(requirement, error) {\n return (input) => {\n if (input % requirement !== 0) {\n return {\n issue: {\n validation: \"multipleOf\",\n message: error || \"Invalid multiple\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/regex/regex.ts\nfunction regex(requirement, error) {\n return (input) => {\n if (!requirement.test(input)) {\n return {\n issue: {\n validation: \"regex\",\n message: error || \"Invalid regex\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/safeInteger/safeInteger.ts\nfunction safeInteger(error) {\n return (input) => {\n if (!Number.isSafeInteger(input)) {\n return {\n issue: {\n validation: \"safe_integer\",\n message: error || \"Invalid safe integer\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/size/size.ts\nfunction size(requirement, error) {\n return (input) => {\n if (input.size !== requirement) {\n return {\n issue: {\n validation: \"size\",\n message: error || \"Invalid size\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/startsWith/startsWith.ts\nfunction startsWith(requirement, error) {\n return (input) => {\n if (!input.startsWith(requirement)) {\n return {\n issue: {\n validation: \"starts_with\",\n message: error || \"Invalid start\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/url/url.ts\nfunction url(error) {\n return (input) => {\n try {\n new URL(input);\n return { output: input };\n } catch (_) {\n return {\n issue: {\n validation: \"url\",\n message: error || \"Invalid URL\",\n input\n }\n };\n }\n };\n}\n\n// src/validations/uuid/uuid.ts\nfunction uuid(error) {\n return (input) => {\n if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(\n input\n )) {\n return {\n issue: {\n validation: \"uuid\",\n message: error || \"Invalid UUID\",\n input\n }\n };\n }\n return { output: input };\n };\n}\n\n// src/validations/value/value.ts\nfunction value(requirement, error) {\n return (input) => {\n if (input !== requirement) {\n return {\n issue: {\n validation: \"value\",\n message: error || \"Invalid value\",\n input\n }\n };\n }\n return { output: input };\n };\n}\nexport {\n ValiError,\n any,\n anyAsync,\n array,\n arrayAsync,\n bigint,\n bigintAsync,\n blob,\n blobAsync,\n boolean,\n booleanAsync,\n brand,\n bytes,\n coerce,\n coerceAsync,\n custom,\n customAsync,\n date,\n dateAsync,\n email,\n emoji,\n endsWith,\n enumType,\n enumTypeAsync,\n equal,\n excludes,\n executePipe,\n executePipeAsync,\n fallback,\n fallbackAsync,\n finite,\n flatten,\n getDefaultArgs,\n getIssues,\n imei,\n includes,\n instance,\n instanceAsync,\n integer,\n ip,\n ipv4,\n ipv6,\n is,\n isLuhnAlgo,\n isoDate,\n isoDateTime,\n isoTime,\n isoTimeSecond,\n isoTimestamp,\n isoWeek,\n keyof,\n length,\n literal,\n literalAsync,\n map,\n mapAsync,\n maxBytes,\n maxLength,\n maxRange,\n maxSize,\n maxValue,\n merge,\n mergeAsync,\n mimeType,\n minBytes,\n minLength,\n minRange,\n minSize,\n minValue,\n multipleOf,\n nan,\n nanAsync,\n nativeEnum,\n nativeEnumAsync,\n never,\n neverAsync,\n nonNullable,\n nonNullableAsync,\n nonNullish,\n nonNullishAsync,\n nonOptional,\n nonOptionalAsync,\n nullType,\n nullTypeAsync,\n nullable,\n nullableAsync,\n nullish,\n nullishAsync,\n number,\n numberAsync,\n object,\n objectAsync,\n omit,\n omitAsync,\n optional,\n optionalAsync,\n parse,\n parseAsync,\n partial,\n partialAsync,\n pick,\n pickAsync,\n record,\n recordAsync,\n recursive,\n recursiveAsync,\n regex,\n required,\n requiredAsync,\n safeInteger,\n safeParse,\n safeParseAsync,\n set,\n setAsync,\n size,\n special,\n specialAsync,\n startsWith,\n strict,\n strictAsync,\n string,\n stringAsync,\n symbol2 as symbol,\n symbolAsync,\n toCustom,\n toCustomAsync,\n toLowerCase,\n toMaxValue,\n toMinValue,\n toTrimmed,\n toTrimmedEnd,\n toTrimmedStart,\n toUpperCase,\n transform,\n transformAsync,\n tuple,\n tupleAsync,\n undefinedType,\n undefinedTypeAsync,\n union,\n unionAsync,\n unknown,\n unknownAsync,\n unwrap,\n url,\n useDefault,\n uuid,\n value,\n voidType,\n voidTypeAsync,\n withDefault\n};\n","/**\n * Copyright 2023 Design Barn Inc.\n */\n\nimport type { ZipOptions } from 'fflate';\nimport { safeParse, flatten } from 'valibot';\n\nimport {\n DotLottieStatesSchema,\n type DotLottieStates,\n type DotLottieStateMachineDescriptor,\n DotLottieStateMachineDescriptorSchema,\n} from './dotlottie-state';\nimport { DotLottieError, ErrorCodes, createError } from './utils';\n\nexport interface DotLottieStateMachineCommonOptions {\n descriptor: DotLottieStateMachineDescriptor;\n states: DotLottieStates;\n zipOptions?: ZipOptions;\n}\n\nexport class DotLottieStateMachineCommon {\n protected _descriptor: DotLottieStateMachineDescriptor;\n\n protected _zipOptions: ZipOptions;\n\n protected _states: DotLottieStates;\n\n public constructor(options: DotLottieStateMachineCommonOptions) {\n this._requireValidId(options.descriptor.id);\n this._requireValidStates(options.states);\n this._requireValidDescriptor(options.descriptor);\n\n this._descriptor = options.descriptor;\n\n this._zipOptions = options.zipOptions ?? {};\n\n this._states = options.states;\n }\n\n public get zipOptions(): ZipOptions {\n return this._zipOptions;\n }\n\n public set zipOptions(zipOptions: ZipOptions) {\n this._zipOptions = zipOptions;\n }\n\n public get id(): string {\n return this._descriptor.id;\n }\n\n public set id(id: string) {\n this._requireValidId(id);\n\n this._descriptor.id = id;\n }\n\n public get states(): DotLottieStates {\n return this._states;\n }\n\n public set states(states: DotLottieStates) {\n this._states = states;\n }\n\n public get initial(): string {\n return this._descriptor.initial;\n }\n\n public set initial(initial: string) {\n this._descriptor.initial = initial;\n }\n\n public get descriptor(): DotLottieStateMachineDescriptor {\n return this._descriptor;\n }\n\n public set descriptor(descriptor: DotLottieStateMachineDescriptor) {\n this._descriptor = descriptor;\n }\n\n public toString(): string {\n return JSON.stringify({\n descriptor: this._descriptor,\n states: this._states,\n });\n }\n\n protected _requireValidId(id: string | undefined): void {\n if (!id) {\n throw createError('Invalid id.');\n }\n }\n\n protected _requireValidDescriptor(descriptor: DotLottieStateMachineDescriptor): void {\n const result = safeParse(DotLottieStateMachineDescriptorSchema, descriptor);\n\n if (!result.success) {\n const error = `Invalid state machine declaration, ${JSON.stringify(flatten(result.error).nested, null, 2)}`;\n\n throw new DotLottieError(`Invalid descriptor: ${error}`, ErrorCodes.INVALID_STATEMACHINE);\n }\n }\n\n protected _requireValidStates(states: DotLottieStates): void {\n const result = safeParse(DotLottieStatesSchema, states);\n\n if (!result.success) {\n const error = `Invalid state machine declaration, ${JSON.stringify(flatten(result.error).nested, null, 2)}`;\n\n throw new DotLottieError(`Invalid states: ${error}`, ErrorCodes.INVALID_STATEMACHINE);\n }\n }\n}\n",null,null,null,null,null,"/**\n * Copyright 2023 Design Barn Inc.\n */\n\nimport {\n object,\n type Output,\n string,\n array,\n boolean,\n number,\n union,\n optional,\n record,\n any,\n nativeEnum,\n literal,\n} from 'valibot';\n\nexport enum PlayMode {\n Bounce = 'bounce',\n Normal = 'normal',\n}\n\nexport const PlayModeSchema = nativeEnum(PlayMode);\n\nexport const ManifestAnimationSchema = object({\n autoplay: optional(boolean()),\n defaultTheme: optional(string()),\n direction: optional(union([literal(1), literal(-1)])),\n hover: optional(boolean()),\n id: string(),\n intermission: optional(number()),\n loop: optional(union([boolean(), number()])),\n playMode: optional(PlayModeSchema),\n speed: optional(number()),\n themeColor: optional(string()),\n});\nexport type ManifestAnimation = Output;\n\nexport const ManifestThemeSchema = object({\n animations: array(string()),\n id: string(),\n});\nexport type ManifestTheme = Output;\n\nexport const ManifestSchema = object({\n activeAnimationId: optional(string()),\n animations: array(ManifestAnimationSchema),\n author: optional(string()),\n custom: optional(record(string(), any())),\n description: optional(string()),\n generator: optional(string()),\n keywords: optional(string()),\n revision: optional(number()),\n themes: optional(array(ManifestThemeSchema)),\n states: optional(array(string())),\n version: optional(string()),\n});\n\nexport type Manifest = Output;\n","/**\n * Copyright 2023 Design Barn Inc.\n */\n\nimport type { Output } from 'valibot';\nimport {\n merge,\n number,\n object,\n optional,\n string,\n union,\n omit,\n record,\n tuple,\n maxValue,\n minValue,\n array,\n} from 'valibot';\n\nimport { ManifestAnimationSchema } from './manifest';\n\nexport const PlaybackOptionsSchema = omit(ManifestAnimationSchema, ['id']);\n\nexport type PlaybackOptions = Output;\n\nexport const TransitionableSchema = object({\n state: string(),\n});\nexport type Transitionable = Output;\n\nexport const StateTransitionOnClickSchema = TransitionableSchema;\n\nexport type StateTransitionOnClick = Output;\n\nexport const StateTransitionOnAfterSchema = merge([TransitionableSchema, object({ ms: number() })]);\n\nexport type StateTransitionOnAfter = Output;\n\nexport const StateTransitionOnEnterSchema = merge([TransitionableSchema, object({ count: number() })]);\n\nexport type StateTransitionOnEnter = Output;\n\nexport const StateTransitionOnMouseEnterSchema = TransitionableSchema;\n\nexport type StateTransitionOnMouseEnter = Output;\n\nexport const StateTransitionOnMouseLeaveSchema = TransitionableSchema;\n\nexport type StateTransitionOnMouseLeave = Output;\n\nexport const StateTransitionOnCompleteSchema = TransitionableSchema;\n\nexport type StateTransitionOnComplete = Output;\n\nexport const StateTransitionOnShowSchema = merge([\n TransitionableSchema,\n object({ threshold: optional(array(number([minValue(0), maxValue(1)]))) }),\n]);\nexport type StateTransitionOnShow = Output;\n\nexport const DotLottieStateTransitionEventsSchema = object({\n onAfter: optional(StateTransitionOnAfterSchema),\n onClick: optional(StateTransitionOnClickSchema),\n onComplete: optional(StateTransitionOnCompleteSchema),\n onEnter: optional(StateTransitionOnEnterSchema),\n onMouseEnter: optional(StateTransitionOnMouseEnterSchema),\n onMouseLeave: optional(StateTransitionOnMouseLeaveSchema),\n onShow: optional(StateTransitionOnShowSchema),\n});\nexport type DotLottieStateTransitionEvents = Output;\n\nexport const DotLottieStatePlaybackSettingsSchema = merge([\n PlaybackOptionsSchema,\n object({\n playOnScroll: optional(tuple([number([minValue(0), maxValue(1)]), number([minValue(0), maxValue(1)])])),\n segments: optional(union([tuple([number(), number()]), string()])),\n }),\n]);\nexport type DotLottieStatePlaybackSettings = Output;\n\nexport const DotLottieStateSchema = merge([\n DotLottieStateTransitionEventsSchema,\n object({\n animationId: optional(string()),\n playbackSettings: DotLottieStatePlaybackSettingsSchema,\n }),\n]);\nexport type DotLottieState = Output;\n\nexport const DotLottieStatesSchema = record(string(), DotLottieStateSchema);\nexport type DotLottieStates = Output;\n\nexport const DotLottieStateMachineDescriptorSchema = object({\n id: string(),\n initial: string(),\n});\nexport type DotLottieStateMachineDescriptor = Output;\n\nexport const DotLottieStateMachineSchema = object({\n descriptor: DotLottieStateMachineDescriptorSchema,\n states: DotLottieStatesSchema,\n});\nexport type DotLottieStateMachine = Output;\n","/**\n * Copyright 2023 Design Barn Inc.\n */\n\n/* eslint-disable guard-for-in */\n\nimport type { Animation as AnimationData, Asset } from '@lottiefiles/lottie-types';\nimport type { UnzipFileFilter, Unzipped } from 'fflate';\nimport { unzip as fflateUnzip, strFromU8 } from 'fflate';\nimport { flatten, safeParse } from 'valibot';\n\nimport type { LottieStateMachine } from '../lottie-state-machine';\n\nimport type { Manifest } from './manifest';\nimport { ManifestSchema } from './manifest';\n\nexport interface MimeTypes {\n [key: string]: string;\n}\n\nexport interface MimeCodes {\n [key: string]: number[];\n}\n\nexport const MIME_TYPES: MimeTypes = {\n jpeg: 'image/jpeg',\n png: 'image/png',\n gif: 'image/gif',\n bmp: 'image/bmp',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n mpeg: 'audio/mpeg',\n mp3: 'audio/mp3',\n};\n\nexport const MIME_CODES: MimeCodes = {\n jpeg: [0xff, 0xd8, 0xff],\n png: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a],\n gif: [0x47, 0x49, 0x46],\n bmp: [0x42, 0x4d],\n webp: [0x52, 0x49, 0x46, 0x46, 0x57, 0x45, 0x42, 0x50],\n svg: [0x3c, 0x3f, 0x78],\n mp3: [0x49, 0x44, 0x33, 0x3, 0x00, 0x00, 0x00, 0x00],\n mpeg: [0x49, 0x44, 0x33, 0x3, 0x00, 0x00, 0x00, 0x00],\n};\n\nexport interface MimeToExtension {\n [key: string]: string;\n}\n\nexport const MIME_TO_EXTENSION: MimeToExtension = {\n 'image/jpeg': 'jpeg',\n 'image/png': 'png',\n 'image/gif': 'gif',\n 'image/bmp': 'bmp',\n 'image/svg+xml': 'svg',\n 'image/webp': 'webp',\n 'audio/mpeg': 'mpeg',\n 'audio/mp3': 'mp3',\n};\n\n/**\n * Converts a base64 string into a Uint8Array.\n *\n * @remarks\n * This function accepts a base64 string and returns a Uint8Array containing the decoded bytes.\n *\n * @param base64String - The base64-encoded string to decode.\n * @returns A Uint8Array containing the decoded bytes.\n *\n * @example\n * ```typescript\n * const base64 = 'SGVsbG8gd29ybGQ=';\n * const array = base64ToUint8Array(base64);\n * ```\n *\n * @public\n */\nexport const base64ToUint8Array = (base64String: string): Uint8Array => {\n const withoutMeta = base64String.substring(base64String.indexOf(',') + 1);\n const binaryString =\n typeof window === 'undefined' ? Buffer.from(withoutMeta, 'base64').toString('binary') : atob(withoutMeta);\n\n const uint8Array = new Uint8Array(binaryString.length);\n\n for (let i = 0; i < binaryString.length; i += 1) {\n uint8Array[i] = binaryString.charCodeAt(i);\n }\n\n return uint8Array;\n};\n\n/**\n * Determines the MIME type from a base64-encoded string.\n *\n * @remarks\n * This function accepts a base64-encoded string and determines its MIME type by looking at the first few bytes.\n *\n * @param base64 - The base64-encoded string to analyze.\n * @returns The MIME type as a string, or null if the type cannot be determined.\n *\n * @example\n * ```typescript\n * const base64 = 'data:image/jpeg;base64,...';\n * const mimeType = getMimeTypeFromBase64(base64);\n * ```\n *\n * @public\n */\nexport const getMimeTypeFromBase64 = (base64: string): string | null | undefined => {\n let data: string | null = null;\n let bytes: number[] = [];\n\n if (!base64) return null;\n\n const withoutMeta = base64.substring(base64.indexOf(',') + 1);\n\n if (typeof window === 'undefined') {\n data = Buffer.from(withoutMeta, 'base64').toString('binary');\n } else {\n data = atob(withoutMeta);\n }\n\n const bufData = new Uint8Array(data.length);\n\n for (let i = 0; i < data.length; i += 1) {\n bufData[i] = data.charCodeAt(i);\n }\n\n bytes = Array.from(bufData.subarray(0, 8));\n for (const mimeType in MIME_CODES) {\n const dataArr = MIME_CODES[mimeType];\n\n if (dataArr && bytes.every((byte, index) => byte === dataArr[index])) {\n return MIME_TYPES[mimeType];\n }\n }\n\n return null;\n};\n\n/**\n * Determines the file extension from a base64-encoded string.\n *\n * @remarks\n * This function accepts a base64-encoded string and determines its file extension by examining the MIME type.\n *\n * @param base64 - The base64-encoded string to analyze.\n * @returns The file extension as a string, or 'png' if the extension cannot be determined.\n *\n * @example\n * ```typescript\n * const base64 = 'data:image/jpeg;base64,...';\n * const extension = getExtensionTypeFromBase64(base64);\n * ```\n *\n * @public\n */\nexport const getExtensionTypeFromBase64 = (base64: string): string | null => {\n const mimeType = getMimeTypeFromBase64(base64);\n\n if (!mimeType) {\n const ext = base64.split(';')[0]?.split('/')[1];\n\n if (ext) {\n return MIME_TO_EXTENSION[ext] || 'png';\n }\n\n return 'png';\n }\n\n return MIME_TO_EXTENSION[mimeType] || 'png';\n};\n\nexport enum ErrorCodes {\n ASSET_NOT_FOUND = 'ASSET_NOT_FOUND',\n INVALID_DOTLOTTIE = 'INVALID_DOTLOTTIE',\n INVALID_STATEMACHINE = 'INVALID_STATEMACHINE',\n INVALID_URL = 'INVALID_URL',\n}\n\nexport class DotLottieError extends Error {\n public code: ErrorCodes | undefined;\n\n public constructor(message: string, code?: ErrorCodes) {\n super(message);\n this.name = '[dotlottie-js]';\n this.code = code;\n }\n}\n\n/**\n * Creates an Error object with the specified message.\n *\n * @remarks\n * This function accepts a message string and constructs a new Error object prefixed with \"[dotlottie-js]: \".\n *\n * @deprecated\n * This function has been deprecated in favor of using the {@link DotLottieError} class directly.\n *\n * @param message - The error message to include in the Error object.\n * @returns An Error object with the specified message, prefixed with \"[dotlottie-js]: \".\n *\n * @example\n * ```typescript\n * const message = 'DotLottie not found';\n * const error = createError(message);\n * ```\n *\n * @public\n */\nexport const createError = (message: string): Error => {\n const error = new Error(`[dotlottie-js]: ${message}`);\n\n return error;\n};\n\n/**\n * Validates a given URL string.\n *\n * @remarks\n * This function accepts a URL string and checks whether it's a valid URL according to the URL constructor.\n * It returns `true` if the URL is valid, `false` otherwise.\n *\n * @param url - The URL string to validate.\n * @returns `true` if the URL is valid, `false` otherwise.\n *\n * @example\n * ```typescript\n * const url = 'https://example.com';\n * const isValid = isValidURL(url); // true\n * ```\n *\n * @public\n */\nexport const isValidURL = (url: string): boolean => {\n try {\n // eslint-disable-next-line no-new\n new URL(url);\n\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Creates a data URL from a Uint8Array.\n *\n * @remarks\n * This function accepts a Uint8Array and a file extension, then converts the Uint8Array into a base64 data URL string.\n * The mimeType is determined based on the provided file extension, or defaults to 'image/png' if the extension is not recognized.\n *\n * @param uint8Data - The Uint8Array containing the binary data.\n * @param fileExtension - The file extension used to determine the mimeType (e.g., 'png', 'jpeg').\n * @returns The data URL string.\n *\n * @example\n * ```typescript\n * const uint8Data = new Uint8Array(...);\n * const fileExtension = 'png';\n * const dataUrl = dataUrlFromU8(uint8Data, fileExtension);\n * ```\n */\nexport function dataUrlFromU8(uint8Data: Uint8Array): string {\n let base64: string;\n\n if (typeof window === 'undefined') {\n // Using Node.js Buffer for non-browser environments\n base64 = Buffer.from(uint8Data).toString('base64');\n } else {\n // Using window.btoa for browser environments\n const binaryString = Array.prototype.map.call(uint8Data, (byte: number) => String.fromCharCode(byte)).join('');\n\n base64 = window.btoa(binaryString);\n }\n\n const mimeType = getMimeTypeFromBase64(base64);\n\n return `data:${mimeType};base64,${base64}`;\n}\n\n/**\n * Checks if an asset is an image asset.\n *\n * @remarks\n * This function accepts an asset object and determines whether it represents an image asset.\n * It returns `true` if it's an image asset, `false` otherwise.\n *\n * @param asset - The asset object to check.\n * @returns `true` if it's an image asset, `false` otherwise.\n *\n * @example\n * ```typescript\n * const asset = { w: 100, h: 100, p: 'image.png' };\n * const isImage = isImageAsset(asset); // true\n * ```\n *\n * @public\n */\nexport function isImageAsset(asset: Asset.Value): asset is Asset.Image {\n return 'w' in asset && 'h' in asset && !('xt' in asset) && 'p' in asset;\n}\n\n/**\n * Checks if an asset is an audio asset.\n *\n * @remarks\n * This function accepts an asset object and determines whether it represents an audio asset.\n * It returns `true` if it's an audio asset, `false` otherwise.\n *\n * @param asset - The asset object to check.\n * @returns `true` if it's an audio asset, `false` otherwise.\n *\n * @example\n * ```typescript\n * const asset = { e: 0, u: 'music/', p: 'audio.mp3' };\n * const isAudio = isAudioAsset(asset); // true\n * ```\n *\n * @public\n */\nexport function isAudioAsset(asset: Asset.Value): asset is Asset.Image {\n return !('h' in asset) && !('w' in asset) && 'p' in asset && 'e' in asset && 'u' in asset && 'id' in asset;\n}\n\n/**\n * Unzips the .lottie file.\n *\n * @remarks\n * This function accepts a .lottie file as a Uint8Array and an optional filter function to refine the unzipping process.\n * It returns a Promise that resolves with the unzipped data.\n *\n * @param dotLottie - The .lottie data as a Uint8Array.\n * @param filter - The filter function to apply to the files. Defaults to a function that always returns true.\n * @returns A Promise that resolves with the unzipped data.\n * @throws {@link DotLottieError} if the .lottie data is not provided or is invalid.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const unzippedData = await unzipDotLottie(dotLottie);\n * ```\n *\n * @public\n */\nexport async function unzipDotLottie(\n dotLottie: Uint8Array | undefined,\n filter: UnzipFileFilter = (): boolean => true,\n): Promise {\n if (!(dotLottie instanceof Uint8Array)) {\n throw new DotLottieError('DotLottie not found', ErrorCodes.INVALID_DOTLOTTIE);\n }\n\n const unzipped = await new Promise((resolve, reject) => {\n fflateUnzip(dotLottie, { filter }, (err, data) => {\n if (err) {\n reject(err);\n }\n resolve(data);\n });\n });\n\n return unzipped;\n}\n\n/**\n * Unzips a specific file from a `.lottie` archive.\n *\n * @remarks\n * This function accepts a `.lottie` file as a `Uint8Array`, a path string representing the\n * target file to extract, and an optional filter function to further refine the extraction.\n * It returns a `Promise` that resolves to the unzipped `Uint8Array` of the target file.\n *\n * @param dotLottie - The `.lottie` file content as a `Uint8Array`.\n * @param path - The path of the target file within the `.lottie` archive to extract.\n * @param filter - An optional filter function to apply on the unzipping process.\n * Accepts a file object and returns a boolean indicating whether the file should be included.\n * @returns A `Promise` that resolves to the `Uint8Array` of the unzipped target file.\n *\n * @throws {@link DotLottieError} if the input is not a valid `.lottie` file or if the target file is not found.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const targetPath = 'images/image.png';\n * const unzippedFile = await unzipDotLottieFile(dotLottie, targetPath);\n * ```\n *\n * @public\n */\nexport async function unzipDotLottieFile(\n dotLottie: Uint8Array,\n path: string,\n filter?: UnzipFileFilter,\n): Promise {\n if (!(dotLottie instanceof Uint8Array)) {\n throw new DotLottieError('DotLottie not found', ErrorCodes.INVALID_DOTLOTTIE);\n }\n\n const unzipped = await unzipDotLottie(dotLottie, (file) => file.name === path && (!filter || filter(file)));\n\n return unzipped[path];\n}\n\n/**\n * Retrieves the manifest data from the given DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array and extracts the manifest data from it.\n * The manifest contains metadata information about the .lottie file, such as the list of animations, themes, and image assets.\n * It returns a Promise that resolves to the manifest data or `undefined` if the manifest is not found.\n *\n * @param dotLottie - The Uint8Array of DotLottie data.\n * @returns A Promise that resolves with the manifest data or `undefined` if not found.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const manifestData = await getManifest(dotLottie);\n * ```\n *\n * @public\n */\nexport async function getManifest(dotLottie: Uint8Array): Promise {\n const manifestFileName = 'manifest.json';\n\n const unzipped = await unzipDotLottie(dotLottie, (file) => file.name === manifestFileName);\n\n const unzippedManifest = unzipped[manifestFileName];\n\n if (typeof unzippedManifest === 'undefined') {\n return undefined;\n }\n\n return JSON.parse(strFromU8(unzippedManifest, false)) as Manifest;\n}\n\n/**\n * Validates the provided DotLottie data.\n *\n * @remarks\n * This function accepts a Uint8Array containing .lottie data and validates its structure and content.\n * It returns a Promise that resolves with an object containing a success boolean and an optional error string.\n *\n * @param dotLottie - The DotLottie data as a Uint8Array.\n * @returns A Promise that resolves with an object containing a success boolean and an optional error string.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const validationResult = await validateDotLottie(dotLottie);\n * ```\n *\n * @public\n */\nexport async function validateDotLottie(dotLottie: Uint8Array): Promise<{ error?: string; success: boolean }> {\n if (!(dotLottie instanceof Uint8Array)) {\n return { success: false, error: 'DotLottie not found' };\n }\n\n const manifest = await getManifest(dotLottie);\n\n if (typeof manifest === 'undefined') {\n return { success: false, error: 'Invalid .lottie file, manifest.json is missing' };\n }\n\n const manifestValidationResult = safeParse(ManifestSchema, manifest);\n\n if (!manifestValidationResult.success) {\n const error = `Invalid .lottie file, manifest.json structure is invalid, ${JSON.stringify(\n flatten(manifestValidationResult.error).nested,\n null,\n 2,\n )}`;\n\n return { success: false, error };\n }\n\n return { success: true };\n}\n\n/**\n * Loads a .lottie file from an ArrayBuffer.\n *\n * @remarks\n * This function takes an ArrayBuffer containing .lottie data and converts it into a Uint8Array.\n * It validates the data and returns a Promise that resolves with the DotLottie data as a Uint8Array.\n *\n * @param arrayBuffer - The ArrayBuffer containing .lottie data.\n * @returns A Promise that resolves with the DotLottie data as a Uint8Array.\n * @throws {@link DotLottieError} if the data is invalid.\n *\n * @example\n * ```typescript\n * const arrayBuffer = new ArrayBuffer(...);\n * const dotLottie = await loadFromArrayBuffer(arrayBuffer);\n * ```\n *\n * @public\n */\nexport async function loadFromArrayBuffer(arrayBuffer: ArrayBuffer): Promise {\n const dotLottie = new Uint8Array(arrayBuffer);\n\n const validationResult = await validateDotLottie(dotLottie);\n\n if (validationResult.error) {\n throw new DotLottieError(validationResult.error, ErrorCodes.INVALID_DOTLOTTIE);\n }\n\n return dotLottie;\n}\n\n/**\n * Loads a .lottie file from a given URL.\n *\n * @remarks\n * This function takes a URL string as input and fetches the .lottie file from the provided URL.\n * It returns a Promise that resolves with the DotLottie data as a Uint8Array.\n *\n * @param src - The URL source of the .lottie file.\n * @returns A Promise that resolves with the DotLottie data as a Uint8Array.\n * @throws {@link DotLottieError} if the URL is invalid or if the content type is incorrect.\n *\n * @example\n * ```typescript\n * const url = 'https://example.com/animation.lottie';\n * const dotLottie = await loadFromURL(url);\n * ```\n *\n * @public\n */\nexport async function loadFromURL(src: string): Promise {\n if (!isValidURL(src)) {\n throw new DotLottieError('Invalid url provided for .lottie file', ErrorCodes.INVALID_URL);\n }\n\n const response = await fetch(src);\n\n const arrayBuffer = await response.arrayBuffer();\n\n const contentType = response.headers.get('content-type');\n\n if (!contentType?.includes('application/zip')) {\n throw new DotLottieError(\n 'Invalid content type provided for .lottie file, expected application/zip',\n ErrorCodes.INVALID_DOTLOTTIE,\n );\n }\n\n const dotLottie = await loadFromArrayBuffer(arrayBuffer);\n\n return dotLottie;\n}\n\n/**\n * Retrieves an audio from the given DotLottie object by its filename.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array, the filename of the audio to retrieve, and an optional filter function.\n * It returns a Promise that resolves to the audio data URL or `undefined` if not found.\n *\n * @param dotLottie - The Uint8Array of DotLottie data.\n * @param filename - The filename of the image to get.\n * @param filter - An optional filter function to apply on the unzipping process.\n * @returns A Promise that resolves with the audio data URL or `undefined` if not found.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const filename = 'alarm.mp3';\n * const imageData = await getAudio(dotLottie, filename);\n * ```\n *\n * @public\n */\nexport async function getAudio(\n dotLottie: Uint8Array,\n filename: string,\n filter?: UnzipFileFilter,\n): Promise {\n const audioFilename = `audio/${filename}`;\n\n const unzipped = await unzipDotLottieFile(dotLottie, audioFilename, filter);\n\n if (typeof unzipped === 'undefined') {\n return undefined;\n }\n\n return dataUrlFromU8(unzipped);\n}\n\n/**\n * Retrieves all audio files from the given DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array and an optional filter function to further refine the extraction.\n * It returns a Promise that resolves to a record containing the audio data URLs mapped by their ID.\n *\n * @param dotLottie - The Uint8Array of DotLottie data.\n * @param filter - An optional filter function to apply on the unzipping process.\n * @returns A Promise that resolves to a record containing the audio data URLs mapped by their ID.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const allAudio = await getAllAudio(dotLottie);\n * ```\n *\n * @public\n */\nexport async function getAllAudio(dotLottie: Uint8Array, filter?: UnzipFileFilter): Promise> {\n const unzippedAudio = await unzipDotLottie(dotLottie, (file) => {\n const name = file.name.replace('audio/', '');\n\n return file.name.startsWith('audio/') && (!filter || filter({ ...file, name }));\n });\n\n const audio: Record = {};\n\n for (const audioPath in unzippedAudio) {\n const unzippedSingleAudio = unzippedAudio[audioPath];\n\n if (unzippedSingleAudio instanceof Uint8Array) {\n const audioId = audioPath.replace('audio/', '');\n\n audio[audioId] = dataUrlFromU8(unzippedSingleAudio);\n }\n }\n\n return audio;\n}\n\n/**\n * Inlines audio assets for the given animations within a DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array and a record containing the animations to process.\n * It identifies the audio used in the animations and replaces their references with the actual audio data.\n * This operation is performed asynchronously, and the function returns a Promise that resolves when the operation is complete.\n *\n * @param dotLottie - The DotLottie object containing the animations.\n * @param animations - A record containing the animations to process.\n * @returns A Promise that resolves when the operation is complete, returning nothing.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const animations = { animation1: {...}, animation2: {...} };\n * await inlineAudioAssets(dotLottie, animations);\n * ```\n *\n * @public\n */\nexport async function inlineAudioAssets(\n dotLottie: Uint8Array,\n animations: Record,\n): Promise {\n const audioMap = new Map>();\n\n for (const [animationId, animationData] of Object.entries(animations)) {\n for (const asset of animationData.assets || []) {\n if (isAudioAsset(asset)) {\n const audioId = asset.p;\n\n if (!audioMap.has(audioId)) {\n audioMap.set(audioId, new Set());\n }\n audioMap.get(audioId)?.add(animationId);\n }\n }\n }\n\n const unzippedAudio = await getAllAudio(dotLottie, (file) => audioMap.has(file.name));\n\n for (const [audioId, animationIdsSet] of audioMap) {\n const audioDataURL = unzippedAudio[audioId];\n\n if (audioDataURL) {\n for (const animationId of animationIdsSet) {\n const animationData = animations[animationId];\n\n for (const asset of animationData?.assets || []) {\n if (isAudioAsset(asset) && asset.p === audioId) {\n asset.p = audioDataURL;\n asset.u = '';\n asset.e = 1;\n }\n }\n }\n }\n }\n}\n\n/**\n * Retrieves an image from the given DotLottie object by its filename.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array, the filename of the image to retrieve, and an optional filter function.\n * It returns a Promise that resolves to the image data URL or `undefined` if not found.\n *\n * @param dotLottie - The Uint8Array of DotLottie data.\n * @param filename - The filename of the image to get.\n * @param filter - An optional filter function to apply on the unzipping process.\n * @returns A Promise that resolves with the image data URL or `undefined` if not found.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const filename = 'image.png';\n * const imageData = await getImage(dotLottie, filename);\n * ```\n *\n * @public\n */\nexport async function getImage(\n dotLottie: Uint8Array,\n filename: string,\n filter?: UnzipFileFilter,\n): Promise {\n const imageFilename = `images/${filename}`;\n\n const unzipped = await unzipDotLottieFile(dotLottie, imageFilename, filter);\n\n if (typeof unzipped === 'undefined') {\n return undefined;\n }\n\n return dataUrlFromU8(unzipped);\n}\n\n/**\n * Retrieves all images from the given DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array and an optional filter function to further refine the extraction.\n * It returns a Promise that resolves to a record containing the image data URLs mapped by their ID.\n *\n * @param dotLottie - The Uint8Array of DotLottie data.\n * @param filter - An optional filter function to apply on the unzipping process.\n * @returns A Promise that resolves to a record containing the image data URLs mapped by their ID.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const images = await getImages(dotLottie);\n * ```\n *\n * @public\n */\nexport async function getImages(dotLottie: Uint8Array, filter?: UnzipFileFilter): Promise> {\n const unzippedImages = await unzipDotLottie(dotLottie, (file) => {\n const name = file.name.replace('images/', '');\n\n return file.name.startsWith('images/') && (!filter || filter({ ...file, name }));\n });\n\n const images: Record = {};\n\n for (const imagePath in unzippedImages) {\n const unzippedImage = unzippedImages[imagePath];\n\n if (unzippedImage instanceof Uint8Array) {\n const imageId = imagePath.replace('images/', '');\n\n images[imageId] = dataUrlFromU8(unzippedImage);\n }\n }\n\n return images;\n}\n\n/**\n * Inlines image assets for the given animations within a DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array and a record containing the animations to process.\n * It identifies the images used in the animations and replaces their references with the actual image data.\n * This operation is performed asynchronously, and the function returns a Promise that resolves when the operation is complete.\n *\n * @param dotLottie - The DotLottie object containing the animations.\n * @param animations - A record containing the animations to process.\n * @returns A Promise that resolves when the operation is complete, returning nothing.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const animations = { animation1: {...}, animation2: {...} };\n * await inlineImageAssets(dotLottie, animations);\n * ```\n *\n * @public\n */\nexport async function inlineImageAssets(\n dotLottie: Uint8Array,\n animations: Record,\n): Promise {\n const imagesMap = new Map>();\n\n for (const [animationId, animationData] of Object.entries(animations)) {\n for (const asset of animationData.assets || []) {\n if (isImageAsset(asset)) {\n const imageId = asset.p;\n\n if (!imagesMap.has(imageId)) {\n imagesMap.set(imageId, new Set());\n }\n imagesMap.get(imageId)?.add(animationId);\n }\n }\n }\n\n const unzippedImages = await getImages(dotLottie, (file) => imagesMap.has(file.name));\n\n for (const [imageId, animationIdsSet] of imagesMap) {\n const imageDataURL = unzippedImages[imageId];\n\n if (imageDataURL) {\n for (const animationId of animationIdsSet) {\n const animationData = animations[animationId];\n\n for (const asset of animationData?.assets || []) {\n if (isImageAsset(asset) && asset.p === imageId) {\n asset.p = imageDataURL;\n asset.u = '';\n asset.e = 1;\n }\n }\n }\n }\n }\n}\n\n/**\n * Retrieves an animation from the given DotLottie object by its ID.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array, the animation ID to retrieve, and an optional inlineAssets option.\n * It returns a Promise that resolves to the animation data or `undefined` if not found.\n *\n * @param dotLottie - The Uint8Array of DotLottie data.\n * @param animationId - The animation ID to get.\n * @param options - An object containing an optional `inlineAssets` boolean to control whether image assets should be inlined.\n * @param filter - An optional function to filter the files to be unzipped.\n * @returns A Promise that resolves with the animation data or `undefined` if not found.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const animationId = 'example';\n * const animationData = await getAnimation(dotLottie, animationId, { inlineAssets: true });\n * ```\n *\n * @public\n */\nexport async function getAnimation(\n dotLottie: Uint8Array,\n animationId: string,\n { inlineAssets }: { inlineAssets?: boolean } = {},\n filter?: UnzipFileFilter,\n): Promise {\n const animationFilename = `animations/${animationId}.json`;\n\n const unzippedAnimation = await unzipDotLottieFile(dotLottie, animationFilename, filter);\n\n if (typeof unzippedAnimation === 'undefined') {\n return undefined;\n }\n\n const animationData = JSON.parse(strFromU8(unzippedAnimation, false)) as AnimationData;\n\n if (!inlineAssets) {\n return animationData;\n }\n\n const animationsMap = {\n [animationId]: animationData,\n };\n\n await inlineImageAssets(dotLottie, animationsMap);\n\n await inlineAudioAssets(dotLottie, animationsMap);\n\n return animationData;\n}\n\n/**\n * Retrieves the animations from the given DotLottie object, with optional filtering and asset inlining.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array, an optional inlineAssets option, and an optional filter function.\n * It returns a Promise that resolves to a record containing the animation data mapped by their ID.\n *\n * @param dotLottie - The Uint8Array of DotLottie data.\n * @param options - An object containing an optional `inlineAssets` boolean to control whether assets should be inlined.\n * @param filter - An optional function to filter the files to be unzipped.\n * @returns A Promise that resolves to a record containing the animation data mapped by their ID.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const animations = await getAnimations(dotLottie, { inlineAssets: true });\n * ```\n *\n * @public\n */\nexport async function getAnimations(\n dotLottie: Uint8Array,\n { inlineAssets }: { inlineAssets?: boolean } = {},\n filter?: UnzipFileFilter,\n): Promise> {\n const animationsMap: Record = {};\n const unzippedAnimations = await unzipDotLottie(dotLottie, (file) => {\n const filename = file.name.replace('animations/', '').replace('.json', '');\n\n return file.name.startsWith('animations/') && (!filter || filter({ ...file, name: filename }));\n });\n\n for (const animationPath in unzippedAnimations) {\n const data = unzippedAnimations[animationPath];\n\n if (data instanceof Uint8Array) {\n const animationId = animationPath.replace('animations/', '').replace('.json', '');\n const animationData = JSON.parse(strFromU8(data, false)) as AnimationData;\n\n animationsMap[animationId] = animationData;\n }\n }\n\n if (!inlineAssets) {\n return animationsMap;\n }\n\n await inlineImageAssets(dotLottie, animationsMap);\n\n return animationsMap;\n}\n\n/**\n * Retrieves the themes from the given DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array and an optional filter function to refine the extraction of themes.\n * It returns a Promise that resolves to a record containing the themes mapped by their ID.\n *\n * @param dotLottie - The DotLottie object containing the themes.\n * @param filter - An optional function to filter the files to be unzipped.\n * @returns A Promise that resolves to a record containing the themes mapped by their ID.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const themes = await getThemes(dotLottie);\n * ```\n */\nexport async function getThemes(\n dotLottie: Uint8Array,\n filter?: UnzipFileFilter,\n): Promise>> {\n const themesMap: Record> = {};\n\n const unzippedThemes = await unzipDotLottie(dotLottie, (file) => {\n const name = file.name.replace('themes/', '').replace('.json', '');\n\n return file.name.startsWith('themes/') && (!filter || filter({ ...file, name }));\n });\n\n for (const themePath in unzippedThemes) {\n const data = unzippedThemes[themePath];\n\n if (data instanceof Uint8Array) {\n const themeId = themePath.replace('themes/', '').replace('.json', '');\n\n themesMap[themeId] = JSON.parse(strFromU8(data, false));\n }\n }\n\n return themesMap;\n}\n\n/**\n * Retrieves a specific theme by ID from the given DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array, the theme ID to retrieve, and an optional filter function.\n * It returns a Promise that resolves to the theme as a string or `undefined` if not found.\n *\n * @param dotLottie - The DotLottie object containing the theme.\n * @param themeId - The ID of the theme to retrieve.\n * @param filter - An optional function to filter the files to be unzipped.\n * @returns A Promise that resolves to the theme as a string or `undefined` if not found.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const themeId = 'dark';\n * const theme = await getTheme(dotLottie, themeId);\n * ```\n */\nexport async function getTheme(\n dotLottie: Uint8Array,\n themeId: string,\n filter?: UnzipFileFilter,\n): Promise | undefined> {\n const themeFilename = `themes/${themeId}.json`;\n\n const unzippedTheme = await unzipDotLottieFile(dotLottie, themeFilename, filter);\n\n if (typeof unzippedTheme === 'undefined') {\n return undefined;\n }\n\n return JSON.parse(strFromU8(unzippedTheme, false));\n}\n\n/**\n * Retrieves the state machines from the given DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array and an optional filter function to refine the extraction of state machines.\n * It returns a Promise that resolves to a record containing the state machines mapped by their ID.\n *\n * @param dotLottie - The DotLottie object containing the state machines.\n * @param filter - An optional function to filter the files to be unzipped.\n * @returns A Promise that resolves to a record containing the state machines mapped by their ID.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const machines = await getStateMachines(dotLottie);\n * ```\n */\nexport async function getStateMachines(\n dotLottie: Uint8Array,\n filter?: UnzipFileFilter,\n): Promise> {\n const statesMap: Record = {};\n\n const unzippedStates = await unzipDotLottie(dotLottie, (file) => {\n const name = file.name.replace('states/', '').replace('.json', '');\n\n return file.name.startsWith('states/') && (!filter || filter({ ...file, name }));\n });\n\n for (const statePath in unzippedStates) {\n const data = unzippedStates[statePath];\n\n if (data instanceof Uint8Array) {\n const themeId = statePath.replace('states/', '').replace('.json', '');\n\n statesMap[themeId] = strFromU8(data, false);\n }\n }\n\n return statesMap;\n}\n\n/**\n * Retrieves a specific state machine by ID from the given DotLottie object.\n *\n * @remarks\n * This function accepts a DotLottie object as a Uint8Array, the state ID to retrieve, and an optional filter function.\n * It returns a Promise that resolves to the state machine as a string or `undefined` if not found.\n *\n * @param dotLottie - The DotLottie object containing the theme.\n * @param stateMachineId - The ID of the state machine to retrieve.\n * @param filter - An optional function to filter the files to be unzipped.\n * @returns A Promise that resolves to the state machine as a string or `undefined` if not found.\n *\n * @example\n * ```typescript\n * const dotLottie = new Uint8Array(...);\n * const stateMachineId = 'walk';\n * const stateMachine = await getState(dotLottie, stateMachineId);\n * ```\n */\nexport async function getStateMachine(\n dotLottie: Uint8Array,\n stateMachineId: string,\n filter?: UnzipFileFilter,\n): Promise {\n const stateMachineFilename = `states/${stateMachineId}.json`;\n\n const unzippedStateMachine = await unzipDotLottieFile(dotLottie, stateMachineFilename, filter);\n\n if (typeof unzippedStateMachine === 'undefined') {\n return undefined;\n }\n\n const stateMachine = JSON.parse(strFromU8(unzippedStateMachine, false)) as LottieStateMachine;\n\n return stateMachine;\n}\n","/**\n * Copyright 2023 Design Barn Inc.\n */\n\nimport type { ZipOptions } from 'fflate';\n\nimport type { LottieAnimationCommon } from './lottie-animation-common';\nimport { dataUrlFromU8, DotLottieError, ErrorCodes } from './utils';\n\nexport type AudioData = string | ArrayBuffer | Blob;\n\nexport interface AudioOptions {\n data?: AudioData;\n fileName: string;\n id: string;\n parentAnimations?: LottieAnimationCommon[];\n url?: string;\n zipOptions?: ZipOptions;\n}\n\nexport class LottieAudioCommon {\n protected _data?: AudioData;\n\n protected _id: string = '';\n\n protected _url?: string;\n\n protected _fileName: string = '';\n\n protected _parentAnimations: LottieAnimationCommon[];\n\n protected _zipOptions: ZipOptions;\n\n public constructor(options: AudioOptions) {\n this._requireValidId(options.id);\n this._requireValidFileName(options.fileName);\n\n this._zipOptions = options.zipOptions ?? {};\n\n if (options.data) {\n this._data = options.data;\n }\n\n if (options.id) {\n this._id = options.id;\n }\n\n if (options.url) {\n this._url = options.url;\n }\n\n if (options.fileName) {\n this._fileName = options.fileName;\n }\n\n this._parentAnimations = options.parentAnimations || [];\n }\n\n public get zipOptions(): ZipOptions {\n return this._zipOptions;\n }\n\n public set zipOptions(zipOptions: ZipOptions) {\n this._zipOptions = zipOptions;\n }\n\n public get fileName(): string {\n return this._fileName;\n }\n\n public set fileName(fileName: string) {\n if (!fileName) throw new DotLottieError('Invalid audio file name', ErrorCodes.ASSET_NOT_FOUND);\n this._fileName = fileName;\n }\n\n public get id(): string {\n return this._id;\n }\n\n public set id(id: string) {\n if (!id) throw new DotLottieError('Invalid audio id', ErrorCodes.ASSET_NOT_FOUND);\n this._id = id;\n }\n\n public get data(): AudioData | undefined {\n return this._data;\n }\n\n public set data(data: AudioData | undefined) {\n if (!data) {\n throw new DotLottieError('Invalid data');\n }\n\n this._data = data;\n }\n\n public get parentAnimations(): LottieAnimationCommon[] {\n return this._parentAnimations;\n }\n\n public set parentAnimations(parentAnimations: LottieAnimationCommon[]) {\n this._parentAnimations = parentAnimations;\n }\n\n public async toDataURL(): Promise {\n if (this._data && this._isDataURL(this._data)) return this.data as string;\n\n const arrayBuffer = await this.toArrayBuffer();\n\n return dataUrlFromU8(new Uint8Array(arrayBuffer));\n }\n\n /**\n * Renames the id and fileName to newName.\n * @param newName - A new id and filename for the audio.\n */\n public renameAudio(newName: string): void {\n this.id = newName;\n\n if (this.fileName) {\n let fileExt = this.fileName.split('.').pop();\n\n if (!fileExt) {\n fileExt = '.png';\n }\n // Default to png if the file extension isn't available\n this.fileName = `${newName}.${fileExt}`;\n }\n }\n\n public async toArrayBuffer(): Promise {\n const blob = await (await this.toBlob()).arrayBuffer();\n\n return blob;\n }\n\n public async toBlob(): Promise {\n if (!this._data && this._url) {\n this._data = await this._fromUrlToBlob(this._url);\n }\n\n if (!this._data) {\n throw new Error('Invalid data');\n }\n\n if (this._isDataURL(this._data)) {\n const data = this._data as string;\n\n const [header, base64] = data.split(',');\n\n // If the data doesnt contain the encoding URL, return it\n if ((!header || !base64) && data.length) {\n return new Blob([data]);\n }\n\n if (!header || !base64) {\n throw new Error('Invalid data');\n }\n\n // eslint-disable-next-line require-unicode-regexp\n const type = header.replace('data:', '').replace(/;base64$/, '');\n\n return new Blob([base64], { type });\n }\n\n if (this._isArrayBuffer(this._data)) {\n return new Blob([this._data]);\n }\n\n if (this._isBlob(this._data)) {\n return this._data as Blob;\n }\n\n throw new Error('Invalid data');\n }\n\n protected async _fromUrlToBlob(url: string): Promise {\n const response = await fetch(url);\n\n return response.blob();\n }\n\n protected _isArrayBuffer(data: AudioData): boolean {\n return data instanceof ArrayBuffer;\n }\n\n protected _isDataURL(data: AudioData): boolean {\n return typeof data === 'string' && data.startsWith('data:');\n }\n\n protected _isBlob(data: AudioData): boolean {\n return data instanceof Blob;\n }\n\n /**\n * Ensure that the provided id is a valid string.\n * The id must be a non-empty string, otherwise an error will be thrown.\n * @param id - The id to validate.\n * @throws Error - if the id is not a valid string.\n */\n private _requireValidId(id: string | undefined): asserts id is string {\n if (!id) throw new DotLottieError('Invalid audio id');\n }\n\n /**\n * Ensure that the provided fileName is a valid string.\n * The fileName must be a non-empty string, otherwise an error will be thrown.\n * @param fileName - The fileName to validate.\n * @throws Error - if the fileName is not a valid string.\n */\n private _requireValidFileName(fileName: string | undefined): asserts fileName is string {\n if (!fileName) throw new DotLottieError('Invalid audio fileName');\n }\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar View = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture;\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(function (item) {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var component = 'div';\n var style = StyleSheet.compose(hasTextAncestor && styles.inline, props.style);\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.style = style;\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps);\n});\nView.displayName = 'View';\nvar classes = css.create({\n view: {\n alignItems: 'stretch',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n zIndex: 0\n }\n});\nvar classList = [classes.view];\nvar styles = StyleSheet.create({\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport flattenStyle from './flattenStyle';\nimport validate from './validate';\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = ReactNativePropRegistry.register(absoluteFillObject);\nvar StyleSheet = {\n absoluteFill: absoluteFill,\n absoluteFillObject: absoluteFillObject,\n compose: function compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n\n if (len > 2) {\n var readableStyles = Array.prototype.slice.call(arguments).map(function (a) {\n return flattenStyle(a);\n });\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n\n }\n\n if (style1 && style2) {\n return [style1, style2];\n } else {\n return style1 || style2;\n }\n },\n create: function create(styles) {\n var result = {};\n Object.keys(styles).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n validate(key, styles);\n }\n\n var id = styles[key] && ReactNativePropRegistry.register(styles[key]);\n result[key] = id;\n });\n return result;\n },\n flatten: flattenStyle,\n // `hairlineWidth` is not implemented using screen density as browsers may\n // round sub-pixel values down to `0`, causing the line not to be rendered.\n hairlineWidth: 1\n};\nexport default StyleSheet;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from './StyleSheet'; // allow original component styles to be inspected in React Dev Tools\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nexport default StyleSheet;","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Logger } from '@firebase/logger';\n\nexport const logger = new Logger('@firebase/app-check');\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppConfig\n} from '@firebase/app-types';\nimport {\n _FirebaseNamespace,\n FirebaseService\n} from '@firebase/app-types/private';\nimport { deepCopy } from '@firebase/util';\nimport {\n ComponentContainer,\n Component,\n ComponentType,\n Name,\n InstantiationMode\n} from '@firebase/component';\nimport { AppError, ERROR_FACTORY } from './errors';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport { logger } from './logger';\n\n/**\n * Global context object for a collection of services using\n * a shared authentication state.\n */\nexport class FirebaseAppImpl implements FirebaseApp {\n private readonly options_: FirebaseOptions;\n private readonly name_: string;\n private isDeleted_ = false;\n private automaticDataCollectionEnabled_: boolean;\n private container: ComponentContainer;\n\n constructor(\n options: FirebaseOptions,\n config: FirebaseAppConfig,\n private readonly firebase_: _FirebaseNamespace\n ) {\n this.name_ = config.name!;\n this.automaticDataCollectionEnabled_ =\n config.automaticDataCollectionEnabled || false;\n this.options_ = deepCopy(options);\n this.container = new ComponentContainer(config.name!);\n\n // add itself to container\n this._addComponent(new Component('app', () => this, ComponentType.PUBLIC));\n // populate ComponentContainer with existing components\n this.firebase_.INTERNAL.components.forEach(component =>\n this._addComponent(component)\n );\n }\n\n get automaticDataCollectionEnabled(): boolean {\n this.checkDestroyed_();\n return this.automaticDataCollectionEnabled_;\n }\n\n set automaticDataCollectionEnabled(val) {\n this.checkDestroyed_();\n this.automaticDataCollectionEnabled_ = val;\n }\n\n get name(): string {\n this.checkDestroyed_();\n return this.name_;\n }\n\n get options(): FirebaseOptions {\n this.checkDestroyed_();\n return this.options_;\n }\n\n delete(): Promise {\n return new Promise(resolve => {\n this.checkDestroyed_();\n resolve();\n })\n .then(() => {\n this.firebase_.INTERNAL.removeApp(this.name_);\n\n return Promise.all(\n this.container.getProviders().map(provider => provider.delete())\n );\n })\n .then((): void => {\n this.isDeleted_ = true;\n });\n }\n\n /**\n * Return a service instance associated with this app (creating it\n * on demand), identified by the passed instanceIdentifier.\n *\n * NOTE: Currently storage and functions are the only ones that are leveraging this\n * functionality. They invoke it by calling:\n *\n * ```javascript\n * firebase.app().storage('STORAGE BUCKET ID')\n * ```\n *\n * The service name is passed to this already\n * @internal\n */\n _getService(\n name: string,\n instanceIdentifier: string = DEFAULT_ENTRY_NAME\n ): FirebaseService {\n this.checkDestroyed_();\n\n // Initialize instance if InstatiationMode is `EXPLICIT`.\n const provider = this.container.getProvider(name as Name);\n if (\n !provider.isInitialized() &&\n provider.getComponent()?.instantiationMode === InstantiationMode.EXPLICIT\n ) {\n provider.initialize();\n }\n\n // getImmediate will always succeed because _getService is only called for registered components.\n return (provider.getImmediate({\n identifier: instanceIdentifier\n }) as unknown) as FirebaseService;\n }\n /**\n * Remove a service instance from the cache, so we will create a new instance for this service\n * when people try to get this service again.\n *\n * NOTE: currently only firestore is using this functionality to support firestore shutdown.\n *\n * @param name The service name\n * @param instanceIdentifier instance identifier in case multiple instances are allowed\n * @internal\n */\n _removeServiceInstance(\n name: string,\n instanceIdentifier: string = DEFAULT_ENTRY_NAME\n ): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.container.getProvider(name as any).clearInstance(instanceIdentifier);\n }\n\n /**\n * @param component the component being added to this app's container\n */\n _addComponent(component: Component): void {\n try {\n this.container.addComponent(component);\n } catch (e) {\n logger.debug(\n `Component ${component.name} failed to register with FirebaseApp ${this.name}`,\n e\n );\n }\n }\n\n _addOrOverwriteComponent(component: Component): void {\n this.container.addOrOverwriteComponent(component);\n }\n\n toJSON(): object {\n return {\n name: this.name,\n automaticDataCollectionEnabled: this.automaticDataCollectionEnabled,\n options: this.options\n };\n }\n\n /**\n * This function will throw an Error if the App has already been deleted -\n * use before performing API actions on the App.\n */\n private checkDestroyed_(): void {\n if (this.isDeleted_) {\n throw ERROR_FACTORY.create(AppError.APP_DELETED, { appName: this.name_ });\n }\n }\n}\n\n// Prevent dead-code elimination of these methods w/o invalid property\n// copying.\n(FirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options) ||\n FirebaseAppImpl.prototype.delete ||\n console.log('dc');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { FirebaseNamespace } from '@firebase/app-types';\nimport { _FirebaseNamespace } from '@firebase/app-types/private';\nimport { createSubscribe, deepExtend, ErrorFactory } from '@firebase/util';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { createFirebaseNamespaceCore } from './firebaseNamespaceCore';\n\n/**\n * Return a firebase namespace object.\n *\n * In production, this will be called exactly once and the result\n * assigned to the 'firebase' global. It may be called multiple times\n * in unit tests.\n */\nexport function createFirebaseNamespace(): FirebaseNamespace {\n const namespace = createFirebaseNamespaceCore(FirebaseAppImpl);\n (namespace as _FirebaseNamespace).INTERNAL = {\n ...(namespace as _FirebaseNamespace).INTERNAL,\n createFirebaseNamespace,\n extendNamespace,\n createSubscribe,\n ErrorFactory,\n deepExtend\n };\n\n /**\n * Patch the top-level firebase namespace with additional properties.\n *\n * firebase.INTERNAL.extendNamespace()\n */\n function extendNamespace(props: { [prop: string]: unknown }): void {\n deepExtend(namespace, props);\n }\n\n return namespace;\n}\n\nexport const firebase = createFirebaseNamespace();\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseNamespace,\n FirebaseAppConfig\n} from '@firebase/app-types';\nimport {\n _FirebaseApp,\n _FirebaseNamespace,\n FirebaseService,\n FirebaseServiceNamespace\n} from '@firebase/app-types/private';\nimport { deepExtend, contains } from '@firebase/util';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { ERROR_FACTORY, AppError } from './errors';\nimport { FirebaseAppLiteImpl } from './lite/firebaseAppLite';\nimport { DEFAULT_ENTRY_NAME, PLATFORM_LOG_STRING } from './constants';\nimport { version } from '../../firebase/package.json';\nimport { logger } from './logger';\nimport {\n setUserLogHandler,\n setLogLevel,\n LogCallback,\n LogOptions\n} from '@firebase/logger';\nimport { Component, ComponentType, Name } from '@firebase/component';\n\n/**\n * Because auth can't share code with other components, we attach the utility functions\n * in an internal namespace to share code.\n * This function return a firebase namespace object without\n * any utility functions, so it can be shared between the regular firebaseNamespace and\n * the lite version.\n */\nexport function createFirebaseNamespaceCore(\n firebaseAppImpl: typeof FirebaseAppImpl | typeof FirebaseAppLiteImpl\n): FirebaseNamespace {\n const apps: { [name: string]: FirebaseApp } = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const components = new Map>();\n\n // A namespace is a plain JavaScript Object.\n const namespace: FirebaseNamespace = {\n // Hack to prevent Babel from modifying the object returned\n // as the firebase namespace.\n // @ts-ignore\n __esModule: true,\n initializeApp,\n // @ts-ignore\n app,\n registerVersion,\n setLogLevel,\n onLog,\n // @ts-ignore\n apps: null,\n SDK_VERSION: version,\n INTERNAL: {\n registerComponent,\n removeApp,\n components,\n useAsService\n }\n };\n\n // Inject a circular default export to allow Babel users who were previously\n // using:\n //\n // import firebase from 'firebase';\n // which becomes: var firebase = require('firebase').default;\n //\n // instead of\n //\n // import * as firebase from 'firebase';\n // which becomes: var firebase = require('firebase');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (namespace as any)['default'] = namespace;\n\n // firebase.apps is a read-only getter.\n Object.defineProperty(namespace, 'apps', {\n get: getApps\n });\n\n /**\n * Called by App.delete() - but before any services associated with the App\n * are deleted.\n */\n function removeApp(name: string): void {\n delete apps[name];\n }\n\n /**\n * Get the App object for a given name (or DEFAULT).\n */\n function app(name?: string): FirebaseApp {\n name = name || DEFAULT_ENTRY_NAME;\n if (!contains(apps, name)) {\n throw ERROR_FACTORY.create(AppError.NO_APP, { appName: name });\n }\n return apps[name];\n }\n\n // @ts-ignore\n app['App'] = firebaseAppImpl;\n /**\n * Create a new App instance (name must be unique).\n */\n function initializeApp(\n options: FirebaseOptions,\n config?: FirebaseAppConfig\n ): FirebaseApp;\n function initializeApp(options: FirebaseOptions, name?: string): FirebaseApp;\n function initializeApp(\n options: FirebaseOptions,\n rawConfig = {}\n ): FirebaseApp {\n if (typeof rawConfig !== 'object' || rawConfig === null) {\n const name = rawConfig;\n rawConfig = { name };\n }\n\n const config = rawConfig as FirebaseAppConfig;\n\n if (config.name === undefined) {\n config.name = DEFAULT_ENTRY_NAME;\n }\n\n const { name } = config;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(AppError.BAD_APP_NAME, {\n appName: String(name)\n });\n }\n\n if (contains(apps, name)) {\n throw ERROR_FACTORY.create(AppError.DUPLICATE_APP, { appName: name });\n }\n\n const app = new firebaseAppImpl(\n options,\n config,\n namespace as _FirebaseNamespace\n );\n\n apps[name] = app;\n\n return app;\n }\n\n /*\n * Return an array of all the non-deleted FirebaseApps.\n */\n function getApps(): FirebaseApp[] {\n // Make a copy so caller cannot mutate the apps list.\n return Object.keys(apps).map(name => apps[name]);\n }\n\n function registerComponent(\n component: Component\n ): FirebaseServiceNamespace | null {\n const componentName = component.name;\n if (components.has(componentName)) {\n logger.debug(\n `There were multiple attempts to register component ${componentName}.`\n );\n\n return component.type === ComponentType.PUBLIC\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (namespace as any)[componentName]\n : null;\n }\n\n components.set(componentName, component);\n\n // create service namespace for public components\n if (component.type === ComponentType.PUBLIC) {\n // The Service namespace is an accessor function ...\n const serviceNamespace = (\n appArg: FirebaseApp = app()\n ): FirebaseService => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof (appArg as any)[componentName] !== 'function') {\n // Invalid argument.\n // This happens in the following case: firebase.storage('gs:/')\n throw ERROR_FACTORY.create(AppError.INVALID_APP_ARGUMENT, {\n appName: componentName\n });\n }\n\n // Forward service instance lookup to the FirebaseApp.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (appArg as any)[componentName]();\n };\n\n // ... and a container for service-level properties.\n if (component.serviceProps !== undefined) {\n deepExtend(serviceNamespace, component.serviceProps);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (namespace as any)[componentName] = serviceNamespace;\n\n // Patch the FirebaseAppImpl prototype\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (firebaseAppImpl.prototype as any)[componentName] =\n // TODO: The eslint disable can be removed and the 'ignoreRestArgs'\n // option added to the no-explicit-any rule when ESlint releases it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (...args: any) {\n const serviceFxn = this._getService.bind(this, componentName);\n return serviceFxn.apply(\n this,\n component.multipleInstances ? args : []\n );\n };\n }\n\n // add the component to existing app instances\n for (const appName of Object.keys(apps)) {\n (apps[appName] as _FirebaseApp)._addComponent(component);\n }\n\n return component.type === ComponentType.PUBLIC\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (namespace as any)[componentName]\n : null;\n }\n\n function registerVersion(\n libraryKeyOrName: string,\n version: string,\n variant?: string\n ): void {\n // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n let library = PLATFORM_LOG_STRING[libraryKeyOrName] ?? libraryKeyOrName;\n if (variant) {\n library += `-${variant}`;\n }\n const libraryMismatch = library.match(/\\s|\\//);\n const versionMismatch = version.match(/\\s|\\//);\n if (libraryMismatch || versionMismatch) {\n const warning = [\n `Unable to register library \"${library}\" with version \"${version}\":`\n ];\n if (libraryMismatch) {\n warning.push(\n `library name \"${library}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n if (versionMismatch) {\n warning.push(\n `version name \"${version}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n logger.warn(warning.join(' '));\n return;\n }\n registerComponent(\n new Component(\n `${library}-version` as Name,\n () => ({ library, version }),\n ComponentType.VERSION\n )\n );\n }\n\n function onLog(logCallback: LogCallback | null, options?: LogOptions): void {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(AppError.INVALID_LOG_ARGUMENT);\n }\n setUserLogHandler(logCallback, options);\n }\n\n // Map the requested service to a registered service name\n // (used to map auth to serverAuth service when needed).\n function useAsService(app: FirebaseApp, name: string): string | null {\n if (name === 'serverAuth') {\n return null;\n }\n\n const useService = name;\n\n return useService;\n }\n\n return namespace;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport {\n ComponentContainer,\n ComponentType,\n Provider,\n Name\n} from '@firebase/component';\n\nexport class PlatformLoggerService {\n constructor(private readonly container: ComponentContainer) {}\n // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n getPlatformInfoString(): string {\n const providers = this.container.getProviders();\n // Loop through providers and get library/version pairs from any that are\n // version components.\n return providers\n .map(provider => {\n if (isVersionServiceProvider(provider)) {\n const service = (provider as Provider<'app-version'>).getImmediate();\n return `${service.library}/${service.version}`;\n } else {\n return null;\n }\n })\n .filter(logString => logString)\n .join(' ');\n }\n}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */\nfunction isVersionServiceProvider(provider: Provider): boolean {\n const component = provider.getComponent();\n return component?.type === ComponentType.VERSION;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nimport firebase from '@firebase/app';\nimport '@firebase/installations';\nimport { FirebaseAnalytics } from '@firebase/analytics-types';\nimport { FirebaseAnalyticsInternal } from '@firebase/analytics-interop-types';\nimport { _FirebaseNamespace } from '@firebase/app-types/private';\nimport {\n factory,\n settings,\n resetGlobalVars,\n getGlobalVars\n} from './src/factory';\nimport { EventName } from './src/constants';\nimport {\n Component,\n ComponentType,\n ComponentContainer\n} from '@firebase/component';\nimport { ERROR_FACTORY, AnalyticsError } from './src/errors';\nimport {\n isIndexedDBAvailable,\n validateIndexedDBOpenable,\n areCookiesEnabled,\n isBrowserExtension\n} from '@firebase/util';\nimport { name, version } from './package.json';\n\ndeclare global {\n interface Window {\n [key: string]: unknown;\n }\n}\n\n/**\n * Type constant for Firebase Analytics.\n */\nconst ANALYTICS_TYPE = 'analytics';\n\nexport function registerAnalytics(instance: _FirebaseNamespace): void {\n instance.INTERNAL.registerComponent(\n new Component(\n ANALYTICS_TYPE,\n container => {\n // getImmediate for FirebaseApp will always succeed\n const app = container.getProvider('app').getImmediate();\n const installations = container\n .getProvider('installations')\n .getImmediate();\n\n return factory(app, installations);\n },\n ComponentType.PUBLIC\n ).setServiceProps({\n settings,\n EventName,\n isSupported\n })\n );\n\n instance.INTERNAL.registerComponent(\n new Component('analytics-internal', internalFactory, ComponentType.PRIVATE)\n );\n\n instance.registerVersion(name, version);\n\n function internalFactory(\n container: ComponentContainer\n ): FirebaseAnalyticsInternal {\n try {\n const analytics = container.getProvider(ANALYTICS_TYPE).getImmediate();\n return {\n logEvent: analytics.logEvent\n };\n } catch (e) {\n throw ERROR_FACTORY.create(AnalyticsError.INTEROP_COMPONENT_REG_FAILED, {\n reason: e\n });\n }\n }\n}\n\nexport { factory, settings, resetGlobalVars, getGlobalVars };\n\nregisterAnalytics(firebase as _FirebaseNamespace);\n\n/**\n * Define extension behavior of `registerAnalytics`\n */\ndeclare module '@firebase/app-types' {\n interface FirebaseNamespace {\n analytics(app?: FirebaseApp): FirebaseAnalytics;\n }\n interface FirebaseApp {\n analytics(): FirebaseAnalytics;\n }\n}\n\n/**\n * this is a public static method provided to users that wraps four different checks:\n *\n * 1. check if it's not a browser extension environment.\n * 1. check if cookie is enabled in current browser.\n * 3. check if IndexedDB is supported by the browser environment.\n * 4. check if the current browser context is valid for using IndexedDB.\n *\n */\nasync function isSupported(): Promise {\n if (isBrowserExtension()) {\n return false;\n }\n if (!areCookiesEnabled()) {\n return false;\n }\n if (!isIndexedDBAvailable()) {\n return false;\n }\n\n try {\n const isDBOpenable: boolean = await validateIndexedDBOpenable();\n return isDBOpenable;\n } catch (error) {\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { FirebaseNamespace } from '@firebase/app-types';\nimport { _FirebaseNamespace } from '@firebase/app-types/private';\nimport { Component, ComponentType } from '@firebase/component';\nimport { PlatformLoggerService } from './platformLoggerService';\nimport { name, version } from '../package.json';\n\nexport function registerCoreComponents(\n firebase: FirebaseNamespace,\n variant?: string\n): void {\n (firebase as _FirebaseNamespace).INTERNAL.registerComponent(\n new Component(\n 'platform-logger',\n container => new PlatformLoggerService(container),\n ComponentType.PRIVATE\n )\n );\n // Register `app` package.\n firebase.registerVersion(name, version, variant);\n // Register platform SDK identifier (no version).\n firebase.registerVersion('fire-js', '');\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\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","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\n// Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646\n// react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726\n// To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.\n// See https://github.com/react-navigation/react-navigation/pull/11423 for more context.\nexport const isNewBackTitleImplementation = true;\n","import MarkedList from './MarkedList';\n\nexport * from './shared-types';\nexport * from './MarkerBox';\nexport * from './MarkedList';\nexport * from './MarkedListItem';\nexport { default as MarkerBox } from './MarkerBox';\nexport { default as MarkedListItem } from './MarkedListItem';\nexport { default as useMarkedList } from './useMarkedList';\nexport { MarkedList };\nexport default MarkedList;\n","import React, { memo, forwardRef } from 'react';\nimport { Platform } from 'react-native';\nimport type { ILinkProps } from './types';\nimport Box from '../Box';\nimport Text from '../Text';\nimport { usePropsResolution } from '../../../hooks';\nimport { useLink } from './useLink';\nimport { mergeRefs } from '../../../utils';\nimport { Pressable } from '../Pressable';\nimport { useHover } from '@react-native-aria/interactions';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Link = ({ isHovered: isHoveredProp, ...props }: ILinkProps, ref: any) => {\n const _ref = React.useRef(null);\n const { isHovered } = useHover({}, _ref);\n const {\n isUnderlined,\n children,\n _text,\n href,\n onPress,\n isExternal,\n ...resolvedProps\n } = usePropsResolution('Link', props, {\n isHovered: isHoveredProp || isHovered,\n });\n const { linkProps } = useLink({ href, onPress, isExternal, _ref });\n\n const linkTextProps = {\n textDecorationLine: isUnderlined ? 'underline' : 'none',\n ..._text,\n };\n // function getHoverProps() {\n // let hoverTextProps = {\n // ...linkTextProps,\n // ..._hover?._text,\n // };\n // return {\n // ...hoverTextProps,\n // };\n // }\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n <>\n {/* On web we render Link in anchor tag */}\n {Platform.OS === 'web' ? (\n \n {children}\n \n ) : (\n \n {React.Children.map(children, (child) =>\n typeof child === 'string' || typeof child === 'number' ? (\n \n {child}\n \n ) : (\n child\n )\n )}\n \n )}\n \n );\n};\n\nexport default memo(forwardRef(Link));\nexport type { ILinkProps };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createAction = exports.createReducer = exports.createSyncAction = undefined;\n\nvar _createSyncAction = require('./create-sync-action');\n\nvar _createSyncAction2 = _interopRequireDefault(_createSyncAction);\n\nvar _createReducer = require('./create-reducer');\n\nvar _createReducer2 = _interopRequireDefault(_createReducer);\n\nvar _createAction = require('./create-action');\n\nvar _createAction2 = _interopRequireDefault(_createAction);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.createSyncAction = _createSyncAction2.default;\nexports.createReducer = _createReducer2.default;\nexports.createAction = _createAction2.default;","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\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 canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\n\nvar ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\nmodule.exports = ExecutionEnvironment;","// 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","/**\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 * @format\n */\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport NativeEventEmitter from '../NativeEventEmitter';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant'; // TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\n\nvar NativeAnimatedModule = Platform.OS === 'ios' && global.RN$Bridgeless ? NativeAnimatedTurboModule : NativeAnimatedNonTurboModule;\nvar __nativeAnimatedNodeTagCount = 1;\n/* used for animated nodes */\n\nvar __nativeAnimationIdCount = 1;\n/* used for started animations */\n\nvar nativeEventEmitter;\nvar waitingForQueuedOperations = new Set();\nvar queueOperations = false;\nvar queue = [];\n/**\n * Simple wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods\n */\n\nvar API = {\n getValue: function getValue(tag, saveValueCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (NativeAnimatedModule.getValue) {\n NativeAnimatedModule.getValue(tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function setWaitingForIdentifier(id) {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n },\n unsetWaitingForIdentifier: function unsetWaitingForIdentifier(id) {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function disableQueue() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.startOperationBatch();\n }\n\n for (var q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n\n queue.length = 0;\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.finishOperationBatch();\n }\n },\n queueOperation: function queueOperation(fn) {\n if (queueOperations) {\n queue.push(fn);\n } else {\n fn();\n }\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.createAnimatedNode(tag, config);\n });\n },\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.startListeningToAnimatedNodeValue(tag);\n });\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.stopListeningToAnimatedNodeValue(tag);\n });\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.connectAnimatedNodes(parentTag, childTag);\n });\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.disconnectAnimatedNodes(parentTag, childTag);\n });\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.startAnimatingNode(animationId, nodeTag, config, endCallback);\n });\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.stopAnimation(animationId);\n });\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.setAnimatedNodeValue(nodeTag, value);\n });\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.setAnimatedNodeOffset(nodeTag, offset);\n });\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.flattenAnimatedNodeOffset(nodeTag);\n });\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.extractAnimatedNodeOffset(nodeTag);\n });\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.connectAnimatedNodeToView(nodeTag, viewTag);\n });\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.disconnectAnimatedNodeFromView(nodeTag, viewTag);\n });\n },\n restoreDefaultValues: function restoreDefaultValues(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available'); // Backwards compat with older native runtimes, can be removed later.\n\n if (NativeAnimatedModule.restoreDefaultValues != null) {\n API.queueOperation(function () {\n return NativeAnimatedModule.restoreDefaultValues(nodeTag);\n });\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.dropAnimatedNode(tag);\n });\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.addAnimatedEventToView(viewTag, eventName, eventMapping);\n });\n },\n removeAnimatedEventFromView: function removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag);\n });\n }\n};\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric property that doesn't need\n * to be updated through the shadow view hierarchy (all non-layout properties).\n */\n\nvar SUPPORTED_STYLES = {\n opacity: true,\n transform: true,\n borderRadius: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n zIndex: true,\n\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true\n};\nvar 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};\nvar SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true\n};\n\nfunction addWhitelistedStyleProp(prop) {\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop) {\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction validateTransform(configs) {\n configs.forEach(function (config) {\n if (!SUPPORTED_TRANSFORMS.hasOwnProperty(config.property)) {\n throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n }\n });\n}\n\nfunction validateStyles(styles) {\n for (var _key in styles) {\n if (!SUPPORTED_STYLES.hasOwnProperty(_key)) {\n throw new Error(\"Style property '\" + _key + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction validateInterpolation(config) {\n for (var _key2 in config) {\n if (!SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(_key2)) {\n throw new Error(\"Interpolation property '\" + _key2 + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction generateNewNodeTag() {\n return __nativeAnimatedNodeTagCount++;\n}\n\nexport function generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nvar _warnedMissingNativeAnimated = false;\nexport function shouldUseNativeDriver(config) {\n if (config.useNativeDriver == null) {\n console.warn('Animated: `useNativeDriver` was not specified. This is a required ' + 'option and must be explicitly set to `true` or `false`');\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (!_warnedMissingNativeAnimated) {\n console.warn('Animated: `useNativeDriver` is not supported because the native ' + 'animated module is missing. Falling back to JS-based animation. To ' + 'resolve this, add `RCTAnimation` module to this app, or remove ' + '`useNativeDriver`. ' + 'Make sure to run `pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md');\n _warnedMissingNativeAnimated = true;\n }\n\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value) {\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\n if (/deg$/.test(value)) {\n var degrees = parseFloat(value) || 0;\n var radians = degrees * Math.PI / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API: API,\n addWhitelistedStyleProp: addWhitelistedStyleProp,\n addWhitelistedTransformProp: addWhitelistedTransformProp,\n addWhitelistedInterpolationParam: addWhitelistedInterpolationParam,\n validateStyles: validateStyles,\n validateTransform: validateTransform,\n validateInterpolation: validateInterpolation,\n generateNewNodeTag: generateNewNodeTag,\n generateNewAnimationId: generateNewAnimationId,\n assertNativeAnimatedModule: assertNativeAnimatedModule,\n shouldUseNativeDriver: shouldUseNativeDriver,\n transformDataType: transformDataType,\n\n // $FlowExpectedError - unsafe getter lint suppresion\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(NativeAnimatedModule);\n }\n\n return nativeEventEmitter;\n }\n\n};","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Integration } from '@sentry/types';\n\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions */\nexport interface InternalGlobal {\n navigator?: { userAgent?: string };\n console: Console;\n Sentry?: {\n Integrations?: Integration[];\n };\n onerror?: {\n (event: object | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n onunhandledrejection?: {\n (event: unknown): boolean;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n SENTRY_SDK_SOURCE?: SdkSource;\n /**\n * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map\n * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS\n * file.\n */\n _sentryDebugIds?: Record;\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n /**\n * Raw module metadata that is injected by bundler plugins.\n *\n * Keys are `error.stack` strings, values are the metadata.\n */\n _sentryModuleMetadata?: Record;\n}\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj: { Math?: Math }): any | undefined {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ: InternalGlobal =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function (this: any) {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nexport function getGlobalObject(): T & InternalGlobal {\n return GLOBAL_OBJ as T & InternalGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const gbl = (obj || GLOBAL_OBJ) as InternalGlobal;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import type { ConsoleLevel } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS: readonly ConsoleLevel[] = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** This may be mutated by the console instrumentation. */\nexport const originalConsoleMethods: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key in ConsoleLevel]?: (...args: any[]) => void;\n} = {};\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n isEnabled(): boolean;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console as Console;\n const wrappedFuncs: Partial = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) as ConsoleLevel[];\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] as LoggerMethod;\n wrappedFuncs[level] = console[level] as LoggerMethod | undefined;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] as LoggerMethod;\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\nexport const logger = makeLogger();\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 * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1; // Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\n\nvar AnimatedNode = /*#__PURE__*/function () {\n var _proto = AnimatedNode.prototype;\n\n _proto.__attach = function __attach() {};\n\n _proto.__detach = function __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n };\n\n _proto.__getValue = function __getValue() {};\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this.__getValue();\n };\n\n _proto.__addChild = function __addChild(child) {};\n\n _proto.__removeChild = function __removeChild(child) {};\n\n _proto.__getChildren = function __getChildren() {\n return [];\n }\n /* Methods and props used by native Animated impl */\n ;\n\n function AnimatedNode() {\n this._listeners = {};\n }\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\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.html#addlistener\n */\n ;\n\n _proto.addListener = function addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n\n return id;\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.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n delete this._listeners[id];\n\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this._listeners = {};\n\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n };\n\n _proto.hasListeners = function hasListeners() {\n return !!Object.keys(this._listeners).length;\n };\n\n _proto._startListeningToNativeValueUpdates = function _startListeningToNativeValueUpdates() {\n var _this = this;\n\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', function (data) {\n if (data.tag !== _this.__getNativeTag()) {\n return;\n }\n\n _this._onAnimatedValueUpdateReceived(data.value);\n });\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n };\n\n _proto.__callListeners = function __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value: value\n });\n }\n };\n\n _proto._stopListeningForNativeValueUpdates = function _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n };\n\n _proto.__getNativeTag = function __getNativeTag() {\n var _this$__nativeTag;\n\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, this.__getNativeConfig());\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n };\n\n _proto.toJSON = function toJSON() {\n return this.__getValue();\n };\n\n return AnimatedNode;\n}();\n\nexport default AnimatedNode;","import { GLOBAL_OBJ } from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n","export const SDK_VERSION = '7.105.0';\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalSingleton,\n isThenable,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport { SDK_VERSION } from './version';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = parseFloat(SDK_VERSION);\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\nexport interface RunWithAsyncContextOptions {\n /** Whether to reuse an existing async context if one exists. Defaults to false. */\n reuseExisting?: boolean;\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Strategy used to track async context.\n */\nexport interface AsyncContextStrategy {\n /**\n * Gets the current async context. Returns undefined if there is no current async context.\n */\n getCurrentHub: () => Hub | undefined;\n /**\n * Runs the supplied callback in its own async context.\n */\n runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions): T;\n}\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n acs?: AsyncContextStrategy;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n private _isolationScope: Scope;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n *\n * @deprecated Instantiation of Hub objects is deprecated and the constructor will be removed in version 8 of the SDK.\n *\n * If you are currently using the Hub for multi-client use like so:\n *\n * ```\n * // OLD\n * const hub = new Hub();\n * hub.bindClient(client);\n * makeMain(hub)\n * ```\n *\n * instead initialize the client as follows:\n *\n * ```\n * // NEW\n * Sentry.withIsolationScope(() => {\n * Sentry.setCurrentClient(client);\n * client.init();\n * });\n * ```\n *\n * If you are using the Hub to capture events like so:\n *\n * ```\n * // OLD\n * const client = new Client();\n * const hub = new Hub(client);\n * hub.captureException()\n * ```\n *\n * instead capture isolated events as follows:\n *\n * ```\n * // NEW\n * const client = new Client();\n * const scope = new Scope();\n * scope.setClient(client);\n * scope.captureException();\n * ```\n */\n public constructor(\n client?: Client,\n scope?: Scope,\n isolationScope?: Scope,\n private readonly _version: number = API_VERSION,\n ) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n assignedScope.setClient(client);\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n assignedIsolationScope.setClient(client);\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n this._stack = [{ scope: assignedScope }];\n\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n this.bindClient(client);\n }\n\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Checks if this hub's version is older than the given version.\n *\n * @param version A version number to compare to.\n * @return True if the given version is newer; otherwise false.\n *\n * @deprecated This will be removed in v8.\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * This binds the given client to the current scope.\n * @param client An SDK client (client) instance.\n *\n * @deprecated Use `initAndBind()` directly, or `setCurrentClient()` and/or `client.init()` instead.\n */\n public bindClient(client?: Client): void {\n // eslint-disable-next-line deprecation/deprecation\n const top = this.getStackTop();\n top.client = client;\n top.scope.setClient(client);\n // eslint-disable-next-line deprecation/deprecation\n if (client && client.setupIntegrations) {\n // eslint-disable-next-line deprecation/deprecation\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope().clone();\n // eslint-disable-next-line deprecation/deprecation\n this.getStack().push({\n // eslint-disable-next-line deprecation/deprecation\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public popScope(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n if (this.getStack().length <= 1) return false;\n // eslint-disable-next-line deprecation/deprecation\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.withScope()` instead.\n */\n public withScope(callback: (scope: Scope) => T): T {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.pushScope();\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return res;\n },\n e => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n },\n );\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return maybePromiseResult;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.getClient()` instead.\n */\n public getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().client as C;\n }\n\n /**\n * Returns the scope of the top stack.\n *\n * @deprecated Use `Sentry.getCurrentScope()` instead.\n */\n public getScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().scope;\n }\n\n /**\n * @deprecated Use `Sentry.getIsolationScope()` instead.\n */\n public getIsolationScope(): Scope {\n return this._isolationScope;\n }\n\n /**\n * Returns the scope stack for domains or the process.\n * @deprecated This will be removed in v8.\n */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n * @deprecated This will be removed in v8.\n */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureException()` instead.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureException(exception, {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureMessage()` instead.\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n ): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureMessage(message, level, {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureEvent()` instead.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureEvent(event, { ...hint, event_id: eventId });\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated This will be removed in v8.\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.addBreadcrumb()` instead.\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n // TODO(v8): I know this comment doesn't make much sense because the hub will be deprecated but I still wanted to\n // write it down. In theory, we would have to add the breadcrumbs to the isolation scope here, however, that would\n // duplicate all of the breadcrumbs. There was the possibility of adding breadcrumbs to both, the isolation scope\n // and the normal scope, and deduplicating it down the line in the event processing pipeline. However, that would\n // have been very fragile, because the breadcrumb objects would have needed to keep their identity all throughout\n // the event processing pipeline.\n // In the new implementation, the top level `Sentry.addBreadcrumb()` should ONLY write to the isolation scope.\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setUser()` instead.\n */\n public setUser(user: User | null): void {\n // TODO(v8): The top level `Sentry.setUser()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setUser(user);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTags()` instead.\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n // TODO(v8): The top level `Sentry.setTags()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTags(tags);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtras()` instead.\n */\n public setExtras(extras: Extras): void {\n // TODO(v8): The top level `Sentry.setExtras()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtras(extras);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTag()` instead.\n */\n public setTag(key: string, value: Primitive): void {\n // TODO(v8): The top level `Sentry.setTag()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTag(key, value);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtra()` instead.\n */\n public setExtra(key: string, extra: Extra): void {\n // TODO(v8): The top level `Sentry.setExtra()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtra(key, extra);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setContext()` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n // TODO(v8): The top level `Sentry.setContext()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setContext(name, context);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `getScope()` directly.\n */\n public configureScope(callback: (scope: Scope) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n // eslint-disable-next-line deprecation/deprecation\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.getClient().getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) return null;\n try {\n // eslint-disable-next-line deprecation/deprecation\n return client.getIntegration(integration);\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n const result = this._callExtensionMethod('startTransaction', context, customSamplingContext);\n\n if (DEBUG_BUILD && !result) {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) {\n logger.warn(\n \"Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'\",\n );\n } else {\n logger.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `spanToTraceHeader()` instead.\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use top level `captureSession` instead.\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n // eslint-disable-next-line deprecation/deprecation\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `endSession` instead.\n */\n public endSession(): void {\n // eslint-disable-next-line deprecation/deprecation\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `startSession` instead.\n */\n public startSession(context?: SessionContext): Session {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n // eslint-disable-next-line deprecation/deprecation\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n *\n * @deprecated Use top-level `getClient().getOptions().sendDefaultPii` instead. This function\n * only unnecessarily increased API surface but only wrapped accessing the option.\n */\n public shouldSendDefaultPii(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-expect-error Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n *\n * @deprecated Use `setCurrentClient()` instead.\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n *\n * @deprecated Use the respective replacement method directly instead.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context,\n * meaning that it will remain stable for the same Hub.\n */\nexport function getIsolationScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getIsolationScope();\n}\n\nfunction getGlobalHub(registry: Carrier = getMainCarrier()): Hub {\n // If there's no hub, or its an old API, assign a new one\n\n if (\n !hasHubOnCarrier(registry) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(registry).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(registry, new Hub());\n }\n\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\nexport function ensureHubOnCarrier(carrier: Carrier, parent: Hub = getGlobalHub()): void {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (\n !hasHubOnCarrier(carrier) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(carrier).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n const client = parent.getClient();\n // eslint-disable-next-line deprecation/deprecation\n const scope = parent.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const isolationScope = parent.getIsolationScope();\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(carrier, new Hub(client, scope.clone(), isolationScope.clone()));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nexport function setAsyncContextStrategy(strategy: AsyncContextStrategy | undefined): void {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nexport function runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions = {}): T {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n // eslint-disable-next-line deprecation/deprecation\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","import type { Span, SpanJSON, SpanTimeInput, TraceContext } from '@sentry/types';\nimport { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds } from '@sentry/utils';\nimport type { Span as SpanClass } from '../tracing/span';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, tags, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n data,\n op,\n parent_span_id,\n span_id,\n status,\n tags,\n trace_id,\n origin,\n });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input intp a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n * Note that all fields returned here are optional and need to be guarded against.\n *\n * Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n * This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n * And `spanToJSON` needs the Span class from `span.ts` to check here.\n * TODO v8: When we remove the deprecated stuff from `span.ts`, we can remove the circular dependency again.\n */\nexport function spanToJSON(span: Span): Partial {\n if (spanIsSpanClass(span)) {\n return span.getSpanJSON();\n }\n\n // Fallback: We also check for `.toJSON()` here...\n // eslint-disable-next-line deprecation/deprecation\n if (typeof span.toJSON === 'function') {\n // eslint-disable-next-line deprecation/deprecation\n return span.toJSON();\n }\n\n return {};\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSpanClass(span: Span): span is SpanClass {\n return typeof (span as SpanClass).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n // eslint-disable-next-line no-bitwise\n return Boolean(traceFlags & TRACE_FLAG_SAMPLED);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { ParameterizedString, PolymorphicEvent, Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isParameterizedString(wat: unknown): wat is ParameterizedString {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\ninterface VueViewModel {\n // Vue3\n __isVue?: boolean;\n // Vue2\n _isVue?: boolean;\n}\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isVueViewModel(wat: unknown): boolean {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat as VueViewModel).__isVue || (wat as VueViewModel)._isVue));\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar Platform = {\n OS: 'web',\n select: function select(obj) {\n return 'web' in obj ? obj.web : obj.default;\n },\n\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n\n return false;\n }\n\n};\nexport default Platform;","import { DEBUG_BUILD } from '../debug-build';\nimport { logger } from '../logger';\nimport { getFunctionName } from '../stacktrace';\n\nexport type InstrumentHandlerType = 'console' | 'dom' | 'fetch' | 'history' | 'xhr' | 'error' | 'unhandledrejection';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n// We keep the handlers globally\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Add a handler function. */\nexport function addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nexport function resetInstrumentationHandlers(): void {\n Object.keys(handlers).forEach(key => {\n handlers[key as InstrumentHandlerType] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nexport function maybeInstrument(type: InstrumentHandlerType, instrumentFn: () => void): void {\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nexport function triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { DEBUG_BUILD } from './debug-build';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { logger } from './logger';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: object, name: string, value: unknown): void {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject(\n value: V,\n):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj as Record)[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nexport function dropUndefinedKeys(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue: T, memoizationMap: Map): T {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: { [key: string]: any } = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue as T;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: unknown[] = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item: unknown) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input: unknown): input is Record {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) as { constructor: { name: string } }).constructor.name;\n return !name || name === 'Object';\n } catch {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\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 */\n\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n\n function findAnimatedStyles(node) {\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n\n findAnimatedStyles(rootNode);\n /* $FlowFixMe */\n\n animatedStyles.forEach(function (animatedStyle) {\n return animatedStyle.update();\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.html\n */\n\n\nvar AnimatedValue = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValue, _AnimatedWithChildren);\n\n function AnimatedValue(value) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n _this._startingValue = _this._value = value;\n _this._offset = 0;\n _this._animation = null;\n return _this;\n }\n\n var _proto = AnimatedValue.prototype;\n\n _proto.__detach = function __detach() {\n var _this2 = this;\n\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), function (value) {\n _this2._value = value;\n });\n }\n\n this.stopAnimation();\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._value + this._offset;\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.html#setvalue\n */\n ;\n\n _proto.setValue = function setValue(value) {\n if (this._animation) {\n this._animation.stop();\n\n this._animation = null;\n }\n\n this._updateValue(value, !this.__isNative\n /* don't perform a flush for natively driven values */\n );\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value);\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.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this._offset = offset;\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\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.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\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.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this._offset += this._value;\n this._value = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\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.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n callback && callback(this.__getValue());\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false\n /*flush*/\n );\n }\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n ;\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\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.html#animate\n */\n ;\n\n _proto.animate = function animate(animation, callback) {\n var _this3 = this;\n\n var handle = null;\n\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, function (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 _this3._updateValue(value, true\n /* flush */\n );\n }, function (result) {\n _this3._animation = null;\n\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n\n callback && callback(result);\n }, previousAnimation, this);\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.stopTracking = function stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.track = function track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n };\n\n _proto._updateValue = function _updateValue(value, flush) {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n\n if (flush) {\n _flush(this);\n }\n\n _AnimatedWithChildren.prototype.__callListeners.call(this, this.__getValue());\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n };\n\n return AnimatedValue;\n}(AnimatedWithChildren);\n\nexport default AnimatedValue;","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n getRandomValues(array: Uint8Array): Uint8Array;\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = (): number => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\n\nvar createElement = function createElement(component, props) {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props);\n\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return /*#__PURE__*/React.createElement.apply(React, [Component, domProps].concat(children));\n};\n\nexport default createElement;","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nimport {\n InstantiationMode,\n InstanceFactory,\n ComponentType,\n Dictionary,\n Name,\n onInstanceCreatedCallback\n} from './types';\n\n/**\n * Component for service name T, e.g. `auth`, `auth-internal`\n */\nexport class Component {\n multipleInstances = false;\n /**\n * Properties to be added to the service namespace\n */\n serviceProps: Dictionary = {};\n\n instantiationMode = InstantiationMode.LAZY;\n\n onInstanceCreated: onInstanceCreatedCallback | null = null;\n\n /**\n *\n * @param name The public service name, e.g. app, auth, firestore, database\n * @param instanceFactory Service factory responsible for creating the public interface\n * @param type whether the service provided by the component is public or private\n */\n constructor(\n readonly name: T,\n readonly instanceFactory: InstanceFactory,\n readonly type: ComponentType\n ) {}\n\n setInstantiationMode(mode: InstantiationMode): this {\n this.instantiationMode = mode;\n return this;\n }\n\n setMultipleInstances(multipleInstances: boolean): this {\n this.multipleInstances = multipleInstances;\n return this;\n }\n\n setServiceProps(props: Dictionary): this {\n this.serviceProps = props;\n return this;\n }\n\n setInstanceCreatedCallback(callback: onInstanceCreatedCallback): this {\n this.onInstanceCreated = callback;\n return this;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Deferred } from '@firebase/util';\nimport { ComponentContainer } from './component_container';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport {\n InitializeOptions,\n InstantiationMode,\n Name,\n NameServiceMapping,\n OnInitCallBack\n} from './types';\nimport { Component } from './component';\n\n/**\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\n * NameServiceMapping[T] is an alias for the type of the instance\n */\nexport class Provider {\n private component: Component | null = null;\n private readonly instances: Map = new Map();\n private readonly instancesDeferred: Map<\n string,\n Deferred\n > = new Map();\n private readonly instancesOptions: Map> =\n new Map();\n private onInitCallbacks: Map>> = new Map();\n\n constructor(\n private readonly name: T,\n private readonly container: ComponentContainer\n ) {}\n\n /**\n * @param identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n */\n get(identifier?: string): Promise {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n const deferred = new Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred);\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n // initialize the service if it can be auto-initialized\n try {\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {\n // when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier)!.promise;\n }\n\n /**\n *\n * @param options.identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n * @param options.optional If optional is false or not provided, the method throws an error when\n * the service is not immediately available.\n * If optional is true, the method returns null if the service is not immediately available.\n */\n getImmediate(options: {\n identifier?: string;\n optional: true;\n }): NameServiceMapping[T] | null;\n getImmediate(options?: {\n identifier?: string;\n optional?: false;\n }): NameServiceMapping[T];\n getImmediate(options?: {\n identifier?: string;\n optional?: boolean;\n }): NameServiceMapping[T] | null {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n options?.identifier\n );\n const optional = options?.optional ?? false;\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n try {\n return this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n } else {\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\n if (optional) {\n return null;\n } else {\n throw Error(`Service ${this.name} is not available`);\n }\n }\n }\n\n getComponent(): Component | null {\n return this.component;\n }\n\n setComponent(component: Component): void {\n if (component.name !== this.name) {\n throw Error(\n `Mismatching Component ${component.name} for Provider ${this.name}.`\n );\n }\n\n if (this.component) {\n throw Error(`Component for ${this.name} has already been provided`);\n }\n\n this.component = component;\n\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n if (!this.shouldAutoInitialize()) {\n return;\n }\n\n // if the service is eager, initialize the default instance\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\n } catch (e) {\n // when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n })!;\n instanceDeferred.resolve(instance);\n } catch (e) {\n // when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n }\n\n clearInstance(identifier: string = DEFAULT_ENTRY_NAME): void {\n this.instancesDeferred.delete(identifier);\n this.instancesOptions.delete(identifier);\n this.instances.delete(identifier);\n }\n\n // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n async delete(): Promise {\n const services = Array.from(this.instances.values());\n\n await Promise.all([\n ...services\n .filter(service => 'INTERNAL' in service) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any).INTERNAL!.delete()),\n ...services\n .filter(service => '_delete' in service) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any)._delete())\n ]);\n }\n\n isComponentSet(): boolean {\n return this.component != null;\n }\n\n isInitialized(identifier: string = DEFAULT_ENTRY_NAME): boolean {\n return this.instances.has(identifier);\n }\n\n getOptions(identifier: string = DEFAULT_ENTRY_NAME): Record {\n return this.instancesOptions.get(identifier) || {};\n }\n\n initialize(opts: InitializeOptions = {}): NameServiceMapping[T] {\n const { options = {} } = opts;\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n opts.instanceIdentifier\n );\n if (this.isInitialized(normalizedIdentifier)) {\n throw Error(\n `${this.name}(${normalizedIdentifier}) has already been initialized`\n );\n }\n\n if (!this.isComponentSet()) {\n throw Error(`Component ${this.name} has not been registered yet`);\n }\n\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier,\n options\n })!;\n\n // resolve any pending promise waiting for the service instance\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedDeferredIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\n instanceDeferred.resolve(instance);\n }\n }\n\n return instance;\n }\n\n /**\n *\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n *\n * @param identifier An optional instance identifier\n * @returns a function to unregister the callback\n */\n onInit(callback: OnInitCallBack, identifier?: string): () => void {\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n const existingCallbacks =\n this.onInitCallbacks.get(normalizedIdentifier) ??\n new Set>();\n existingCallbacks.add(callback);\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n\n const existingInstance = this.instances.get(normalizedIdentifier);\n if (existingInstance) {\n callback(existingInstance, normalizedIdentifier);\n }\n\n return () => {\n existingCallbacks.delete(callback);\n };\n }\n\n /**\n * Invoke onInit callbacks synchronously\n * @param instance the service instance`\n */\n private invokeOnInitCallbacks(\n instance: NameServiceMapping[T],\n identifier: string\n ): void {\n const callbacks = this.onInitCallbacks.get(identifier);\n if (!callbacks) {\n return;\n }\n for (const callback of callbacks) {\n try {\n callback(instance, identifier);\n } catch {\n // ignore errors in the onInit callback\n }\n }\n }\n\n private getOrInitializeService({\n instanceIdentifier,\n options = {}\n }: {\n instanceIdentifier: string;\n options?: Record;\n }): NameServiceMapping[T] | null {\n let instance = this.instances.get(instanceIdentifier);\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, {\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n options\n });\n this.instances.set(instanceIdentifier, instance);\n this.instancesOptions.set(instanceIdentifier, options);\n\n /**\n * Invoke onInit listeners.\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\n * while onInit listeners are registered by consumers of the provider.\n */\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\n\n /**\n * Order is important\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\n * makes `isInitialized()` return true.\n */\n if (this.component.onInstanceCreated) {\n try {\n this.component.onInstanceCreated(\n this.container,\n instanceIdentifier,\n instance\n );\n } catch {\n // ignore errors in the onInstanceCreatedCallback\n }\n }\n }\n\n return instance || null;\n }\n\n private normalizeInstanceIdentifier(\n identifier: string = DEFAULT_ENTRY_NAME\n ): string {\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n }\n\n private shouldAutoInitialize(): boolean {\n return (\n !!this.component &&\n this.component.instantiationMode !== InstantiationMode.EXPLICIT\n );\n }\n}\n\n// undefined should be passed to the service factory for the default instance\nfunction normalizeIdentifierForFactory(identifier: string): string | undefined {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component: Component): boolean {\n return component.instantiationMode === InstantiationMode.EAGER;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Provider } from './provider';\nimport { Component } from './component';\nimport { Name } from './types';\n\n/**\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\n */\nexport class ComponentContainer {\n private readonly providers = new Map>();\n\n constructor(private readonly name: string) {}\n\n /**\n *\n * @param component Component being added\n * @param overwrite When a component with the same name has already been registered,\n * if overwrite is true: overwrite the existing component with the new component and create a new\n * provider with the new component. It can be useful in tests where you want to use different mocks\n * for different tests.\n * if overwrite is false: throw an exception\n */\n addComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n throw new Error(\n `Component ${component.name} has already been registered with ${this.name}`\n );\n }\n\n provider.setComponent(component);\n }\n\n addOrOverwriteComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n }\n\n /**\n * getProvider provides a type safe interface where it can only be called with a field name\n * present in NameServiceMapping interface.\n *\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\n * themselves.\n */\n getProvider(name: T): Provider {\n if (this.providers.has(name)) {\n return (this.providers.get(name) as unknown) as Provider;\n }\n\n // create a Provider for a service that hasn't registered with Firebase\n const provider = new Provider(name, this);\n this.providers.set(name, (provider as unknown) as Provider);\n\n return provider as Provider;\n }\n\n getProviders(): Array> {\n return Array.from(this.providers.values());\n }\n}\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\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 match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\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/**\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 * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\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 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/** 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/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** 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 Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : 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 ? entries.length : 0;\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}\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 return this.has(key) && delete this.__data__[key];\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 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 ? entries.length : 0;\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}\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 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 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 ? entries.length : 0;\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.__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 return getMapData(this, key)['delete'](key);\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 getMapData(this, key).set(key, value);\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 * 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 `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\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) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\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 * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\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 * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\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 * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\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 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 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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\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 */\nexport var defaultProps = {\n children: true,\n dataSet: true,\n nativeID: true,\n ref: true,\n suppressHydrationWarning: true,\n testID: true\n};\nexport var accessibilityProps = {\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true,\n dir: true,\n focusable: true,\n // Deprecated\n accessible: true,\n accessibilityState: true,\n accessibilityValue: true\n};\nexport var clickProps = {\n onClick: true,\n onClickCapture: true,\n onContextMenu: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n classList: true,\n style: true\n};","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = global || self, factory(global.ReactStripe = {}, global.React));\n}(this, (function (exports, React) { 'use strict';\n\n React = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\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\n return obj;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _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 }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n 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 }\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\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 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n var ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n var factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret_1) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\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 checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n var propTypes = createCommonjsModule(function (module) {\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 // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = factoryWithThrowingShims();\n }\n });\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(INVALID_STRIPE_ERROR);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(validateStripe)\n };\n }\n\n var stripe = validateStripe(raw);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n var CartElementContext = /*#__PURE__*/React.createContext(null);\n CartElementContext.displayName = 'CartElementContext';\n var parseCartElementContext = function parseCartElementContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n cart = _React$useState2[0],\n setCart = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n cartState = _React$useState4[0],\n setCartState = _React$useState4[1]; // For a sync stripe instance, initialize into context\n\n\n var _React$useState5 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n ctx = _React$useState6[0],\n setContext = _React$useState6[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n var anyStripe = ctx.stripe;\n\n if (!anyStripe || !anyStripe._registerWrapper || !anyStripe.registerAppInfo) {\n return;\n }\n\n anyStripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"1.16.5\"\n });\n\n anyStripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"1.16.5\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CartElementContext.Provider, {\n value: {\n cart: cart,\n setCart: setCart,\n cartState: cartState,\n setCartState: setCartState\n }\n }, children));\n };\n Elements.propTypes = {\n stripe: propTypes.any,\n options: propTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n var useCartElementContextWithUseCase = function useCartElementContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(CartElementContext);\n return parseCartElementContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n stripe = _useElementsContextWi2.stripe;\n\n return stripe;\n };\n /**\n * @docs https://stripe.com/docs/payments/checkout/cart-element\n */\n\n var useCartElement = function useCartElement() {\n var _useCartElementContex = useCartElementContextWithUseCase('calls useCartElement()'),\n cart = _useCartElementContex.cart;\n\n return cart;\n };\n /**\n * @docs https://stripe.com/docs/payments/checkout/cart-element\n */\n\n var useCartElementState = function useCartElementState() {\n var _useCartElementContex2 = useCartElementContextWithUseCase('calls useCartElementState()'),\n cartState = _useCartElementContex2.cartState;\n\n return cartState;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: propTypes.func.isRequired\n };\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onCheckout = _ref.onCheckout,\n onLineItemClick = _ref.onLineItemClick,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n\n var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n elements = _useElementsContextWi.elements;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null);\n\n var _useCartElementContex = useCartElementContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n setCart = _useCartElementContex.setCart,\n setCartState = _useCartElementContex.setCartState; // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'lineitemclick', onLineItemClick);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n var readyCallback;\n\n if (type === 'cart') {\n readyCallback = function readyCallback(event) {\n setCartState(event);\n onReady && onReady(event);\n };\n } else if (onReady) {\n if (type === 'payButton') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n var changeCallback = type === 'cart' ? function (event) {\n setCartState(event);\n onChange && onChange(event);\n } : onChange;\n useAttachEvent(element, 'change', changeCallback);\n var checkoutCallback = type === 'cart' ? function (event) {\n setCartState(event);\n onCheckout && onCheckout(event);\n } : onCheckout;\n useAttachEvent(element, 'checkout', checkoutCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && elements && domNode.current !== null) {\n var newElement = elements.create(type, options);\n\n if (type === 'cart' && setCart) {\n // we know that elements.create return value must be of type StripeCartElement if type is 'cart',\n // we need to cast because typescript is not able to infer which overloaded method is used based off param type\n setCart(newElement);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n newElement.mount(domNode.current);\n }\n }, [elements, options, setCart]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current) {\n elementRef.current.destroy();\n elementRef.current = null;\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n // Validate that we are in the right context by calling useElementsContextWithUseCase.\n useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n useCartElementContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: propTypes.string,\n className: propTypes.string,\n onChange: propTypes.func,\n onBlur: propTypes.func,\n onFocus: propTypes.func,\n onReady: propTypes.func,\n onEscape: propTypes.func,\n onClick: propTypes.func,\n onLoadError: propTypes.func,\n onLoaderStart: propTypes.func,\n onNetworksChange: propTypes.func,\n onCheckout: propTypes.func,\n onLineItemClick: propTypes.func,\n onConfirm: propTypes.func,\n onCancel: propTypes.func,\n onShippingAddressChange: propTypes.func,\n onShippingRateChange: propTypes.func,\n options: propTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PayButtonElement = createElementComponent('payButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/elements/cart-element\n */\n\n var CartElement = createElementComponent('cart', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CartElement = CartElement;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EpsBankElement = EpsBankElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PayButtonElement = PayButtonElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCartElement = useCartElement;\n exports.useCartElementState = useCartElementState;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * lodash 4.0.0 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","import React from 'react';\nimport { useStyledSystemPropsResolver } from '../hooks/';\n\nexport const makeStyledComponent = (Comp: any) => {\n return React.forwardRef(({ debug, ...props }: any, ref: any) => {\n const [style, restProps] = useStyledSystemPropsResolver(props);\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cstyleSystem`,\n 'background: #4b5563; color: #d97706; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log('%c props: ', 'color: #4ade80; font-weight: 700;', props);\n /* eslint-disable-next-line */\n console.log('%c style: ', 'color: #22d3ee; font-weight: 700;', style);\n /* eslint-disable-next-line */\n console.log(\n '%c restProps: ',\n 'color: #22d3ee; font-weight: 700;',\n restProps\n );\n }\n return (\n \n {props.children}\n \n );\n });\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/* eslint-disable */\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 * From React 16.0.0\n * \n */\nimport isUnitlessNumber from '../unitlessNumbers';\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","/* eslint-disable */\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 * From React 16.3.0\n * \n */\nimport dangerousStyleValue from './dangerousStyleValue';\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\n\nvar getRect = function getRect(node) {\n // Unlike the DOM's getBoundingClientRect, React Native layout measurements\n // for \"height\" and \"width\" ignore scale transforms.\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n top: top,\n left: left\n };\n};\n\nvar _measureLayout = function measureLayout(node, relativeToNativeNode, callback) {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(function () {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar focusableElements = {\n A: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur: function blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus: function focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus, so we don't want to set the value on elements\n // that support keyboard focus by default.\n\n if (node.getAttribute('tabIndex') == null && focusableElements[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n measure: function measure(node, callback) {\n _measureLayout(node, null, callback);\n },\n measureInWindow: function measureInWindow(node, callback) {\n if (node) {\n setTimeout(function () {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout: function measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n _measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView: function updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation: function configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental: function setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","import { __extends as t, __spreadArray as e, __awaiter as n, __generator as r } from \"tslib\";\n\nimport { getUA as i, isSafari as o, isMobileCordova as s, isReactNative as u, isElectron as a, isIE as c, isUWP as h, isBrowserExtension as f, getModularInstance as l, createMockUserToken as d } from \"@firebase/util\";\n\nimport { Logger as p, LogLevel as y } from \"@firebase/logger\";\n\nimport { XhrIo as v, EventType as m, ErrorCode as g, createWebChannelTransport as w, getStatEventTarget as b, FetchXmlHttpFactory as I, WebChannel as T, Event as _, Stat as E } from \"@firebase/webchannel-wrapper\";\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * `ListenSequence` is a monotonic sequence. It is initialized with a minimum value to\n * exceed. All subsequent calls to next will return increasing values. If provided with a\n * `SequenceNumberSyncer`, it will additionally bump its next value when told of a new value, as\n * well as write out sequence numbers that it produces via `next()`.\n */ var S = /** @class */ function() {\n function t(t, e) {\n var n = this;\n this.previousValue = t, e && (e.sequenceNumberHandler = function(t) {\n return n.t(t);\n }, this.i = function(t) {\n return e.writeSequenceNumber(t);\n });\n }\n return t.prototype.t = function(t) {\n return this.previousValue = Math.max(t, this.previousValue), this.previousValue;\n }, t.prototype.next = function() {\n var t = ++this.previousValue;\n return this.i && this.i(t), t;\n }, t;\n}();\n\nS.o = -1;\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nvar N = {\n // Causes are copied from:\n // https://github.com/grpc/grpc/blob/bceec94ea4fc5f0085d81235d8e1c06798dc341a/include/grpc%2B%2B/impl/codegen/status_code_enum.h\n /** Not an error; returned on success. */\n OK: \"ok\",\n /** The operation was cancelled (typically by the caller). */\n CANCELLED: \"cancelled\",\n /** Unknown error or an error from a different error domain. */\n UNKNOWN: \"unknown\",\n /**\n * Client specified an invalid argument. Note that this differs from\n * FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are\n * problematic regardless of the state of the system (e.g., a malformed file\n * name).\n */\n INVALID_ARGUMENT: \"invalid-argument\",\n /**\n * Deadline expired before operation could complete. For operations that\n * change the state of the system, this error may be returned even if the\n * operation has completed successfully. For example, a successful response\n * from a server could have been delayed long enough for the deadline to\n * expire.\n */\n DEADLINE_EXCEEDED: \"deadline-exceeded\",\n /** Some requested entity (e.g., file or directory) was not found. */\n NOT_FOUND: \"not-found\",\n /**\n * Some entity that we attempted to create (e.g., file or directory) already\n * exists.\n */\n ALREADY_EXISTS: \"already-exists\",\n /**\n * The caller does not have permission to execute the specified operation.\n * PERMISSION_DENIED must not be used for rejections caused by exhausting\n * some resource (use RESOURCE_EXHAUSTED instead for those errors).\n * PERMISSION_DENIED must not be used if the caller can not be identified\n * (use UNAUTHENTICATED instead for those errors).\n */\n PERMISSION_DENIED: \"permission-denied\",\n /**\n * The request does not have valid authentication credentials for the\n * operation.\n */\n UNAUTHENTICATED: \"unauthenticated\",\n /**\n * Some resource has been exhausted, perhaps a per-user quota, or perhaps the\n * entire file system is out of space.\n */\n RESOURCE_EXHAUSTED: \"resource-exhausted\",\n /**\n * Operation was rejected because the system is not in a state required for\n * the operation's execution. For example, directory to be deleted may be\n * non-empty, an rmdir operation is applied to a non-directory, etc.\n *\n * A litmus test that may help a service implementor in deciding\n * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:\n * (a) Use UNAVAILABLE if the client can retry just the failing call.\n * (b) Use ABORTED if the client should retry at a higher-level\n * (e.g., restarting a read-modify-write sequence).\n * (c) Use FAILED_PRECONDITION if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, FAILED_PRECONDITION\n * should be returned since the client should not retry unless\n * they have first fixed up the directory by deleting files from it.\n * (d) Use FAILED_PRECONDITION if the client performs conditional\n * REST Get/Update/Delete on a resource and the resource on the\n * server does not match the condition. E.g., conflicting\n * read-modify-write on the same resource.\n */\n FAILED_PRECONDITION: \"failed-precondition\",\n /**\n * The operation was aborted, typically due to a concurrency issue like\n * sequencer check failures, transaction aborts, etc.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n ABORTED: \"aborted\",\n /**\n * Operation was attempted past the valid range. E.g., seeking or reading\n * past end of file.\n *\n * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed\n * if the system state changes. For example, a 32-bit file system will\n * generate INVALID_ARGUMENT if asked to read at an offset that is not in the\n * range [0,2^32-1], but it will generate OUT_OF_RANGE if asked to read from\n * an offset past the current file size.\n *\n * There is a fair bit of overlap between FAILED_PRECONDITION and\n * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific error)\n * when it applies so that callers who are iterating through a space can\n * easily look for an OUT_OF_RANGE error to detect when they are done.\n */\n OUT_OF_RANGE: \"out-of-range\",\n /** Operation is not implemented or not supported/enabled in this service. */\n UNIMPLEMENTED: \"unimplemented\",\n /**\n * Internal errors. Means some invariants expected by underlying System has\n * been broken. If you see one of these errors, Something is very broken.\n */\n INTERNAL: \"internal\",\n /**\n * The service is currently unavailable. This is a most likely a transient\n * condition and may be corrected by retrying with a backoff.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n UNAVAILABLE: \"unavailable\",\n /** Unrecoverable data loss or corruption. */\n DATA_LOSS: \"data-loss\"\n}, D = /** @class */ function(e) {\n /** @hideconstructor */\n function n(\n /**\n * The backend error code associated with this error.\n */\n t, \n /**\n * A custom error description.\n */\n n) {\n var r = this;\n return (r = e.call(this, n) || this).code = t, r.message = n, \n /** The custom name for all FirestoreErrors. */\n r.name = \"FirebaseError\", \n // HACK: We write a toString property directly because Error is not a real\n // class and so inheritance does not work correctly. We could alternatively\n // do the same \"back-door inheritance\" trick that FirebaseError does.\n r.toString = function() {\n return r.name + \": [code=\" + r.code + \"]: \" + r.message;\n }, r;\n }\n return t(n, e), n;\n}(Error), A = new p(\"@firebase/firestore\");\n\n/** An error returned by a Firestore operation. */\n// Helper methods are needed because variables can't be exported as read/write\nfunction k() {\n return A.logLevel;\n}\n\n/**\n * Sets the verbosity of Cloud Firestore logs (debug, error, or silent).\n *\n * @param logLevel - The verbosity you set for activity and error logging. Can\n * be any of the following values:\n *\n *
    \n *
  • `debug` for the most verbose logging level, primarily for\n * debugging.
  • \n *
  • `error` to log errors only.
  • \n *
  • `silent` to turn off logging.
  • \n *
\n */ function C(t) {\n for (var n = [], r = 1; r < arguments.length; r++) n[r - 1] = arguments[r];\n if (A.logLevel <= y.DEBUG) {\n var i = n.map(L);\n A.debug.apply(A, e([ \"Firestore (8.10.1): \" + t ], i));\n }\n}\n\nfunction x(t) {\n for (var n = [], r = 1; r < arguments.length; r++) n[r - 1] = arguments[r];\n if (A.logLevel <= y.ERROR) {\n var i = n.map(L);\n A.error.apply(A, e([ \"Firestore (8.10.1): \" + t ], i));\n }\n}\n\nfunction R(t) {\n for (var n = [], r = 1; r < arguments.length; r++) n[r - 1] = arguments[r];\n if (A.logLevel <= y.WARN) {\n var i = n.map(L);\n A.warn.apply(A, e([ \"Firestore (8.10.1): \" + t ], i));\n }\n}\n\n/**\n * Converts an additional log parameter to a string representation.\n */ function L(t) {\n if (\"string\" == typeof t) return t;\n try {\n return e = t, JSON.stringify(e);\n } catch (e) {\n // Converting to JSON failed, just log the object directly\n return t;\n }\n var e;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Unconditionally fails, throwing an Error with the given message.\n * Messages are stripped in production builds.\n *\n * Returns `never` and can be used in expressions:\n * @example\n * let futureVar = fail('not implemented yet');\n */ function O(t) {\n void 0 === t && (t = \"Unexpected state\");\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n var e = \"FIRESTORE (8.10.1) INTERNAL ASSERTION FAILED: \" + t;\n // NOTE: We don't use FirestoreError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw x(e), new Error(e)\n /**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * Messages are stripped in production builds.\n */;\n}\n\nfunction P(t, e) {\n t || O();\n}\n\n/**\n * Casts `obj` to `T`. In non-production builds, verifies that `obj` is an\n * instance of `T` before casting.\n */ function F(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n return t;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Generates `nBytes` of random bytes.\n *\n * If `nBytes < 0` , an error will be thrown.\n */ function M(t) {\n // Polyfills for IE and WebWorker by using `self` and `msCrypto` when `crypto` is not available.\n var e = \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n \"undefined\" != typeof self && (self.crypto || self.msCrypto), n = new Uint8Array(t);\n if (e && \"function\" == typeof e.getRandomValues) e.getRandomValues(n); else \n // Falls back to Math.random\n for (var r = 0; r < t; r++) n[r] = Math.floor(256 * Math.random());\n return n;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var V = /** @class */ function() {\n function t() {}\n return t.u = function() {\n for (\n // Alphanumeric characters\n var t = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", e = Math.floor(256 / t.length) * t.length, n = \"\"\n // The largest byte value that is a multiple of `char.length`.\n ; n.length < 20; ) for (var r = M(40), i = 0; i < r.length; ++i) \n // Only accept values that are [0, maxMultiple), this ensures they can\n // be evenly mapped to indices of `chars` via a modulo operation.\n n.length < 20 && r[i] < e && (n += t.charAt(r[i] % t.length));\n return n;\n }, t;\n}();\n\nfunction q(t, e) {\n return t < e ? -1 : t > e ? 1 : 0;\n}\n\n/** Helper to compare arrays using isEqual(). */ function U(t, e, n) {\n return t.length === e.length && t.every((function(t, r) {\n return n(t, e[r]);\n }));\n}\n\n/**\n * Returns the immediate lexicographically-following string. This is useful to\n * construct an inclusive range for indexeddb iterators.\n */ function B(t) {\n // Return the input string, with an additional NUL byte appended.\n return t + \"\\0\";\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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// The earliest date supported by Firestore timestamps (0001-01-01T00:00:00Z).\n/**\n * A `Timestamp` represents a point in time independent of any time zone or\n * calendar, represented as seconds and fractions of seconds at nanosecond\n * resolution in UTC Epoch time.\n *\n * It is encoded using the Proleptic Gregorian Calendar which extends the\n * Gregorian calendar backwards to year one. It is encoded assuming all minutes\n * are 60 seconds long, i.e. leap seconds are \"smeared\" so that no leap second\n * table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59.999999999Z.\n *\n * For examples and further specifications, refer to the\n * {@link https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto | Timestamp definition}.\n */ var j = /** @class */ function() {\n /**\n * Creates a new timestamp.\n *\n * @param seconds - The number of seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n * @param nanoseconds - The non-negative fractions of a second at nanosecond\n * resolution. Negative second values with fractions must still have\n * non-negative nanoseconds values that count forward in time. Must be\n * from 0 to 999,999,999 inclusive.\n */\n function t(\n /**\n * The number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.\n */\n t, \n /**\n * The fractions of a second at nanosecond resolution.*\n */\n e) {\n if (this.seconds = t, this.nanoseconds = e, e < 0) throw new D(N.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (e >= 1e9) throw new D(N.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (t < -62135596800) throw new D(N.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t);\n // This will break in the year 10,000.\n if (t >= 253402300800) throw new D(N.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t);\n }\n /**\n * Creates a new timestamp with the current date, with millisecond precision.\n *\n * @returns a new timestamp representing the current date.\n */ return t.now = function() {\n return t.fromMillis(Date.now());\n }, \n /**\n * Creates a new timestamp from the given date.\n *\n * @param date - The date to initialize the `Timestamp` from.\n * @returns A new `Timestamp` representing the same point in time as the given\n * date.\n */\n t.fromDate = function(e) {\n return t.fromMillis(e.getTime());\n }, \n /**\n * Creates a new timestamp from the given number of milliseconds.\n *\n * @param milliseconds - Number of milliseconds since Unix epoch\n * 1970-01-01T00:00:00Z.\n * @returns A new `Timestamp` representing the same point in time as the given\n * number of milliseconds.\n */\n t.fromMillis = function(e) {\n var n = Math.floor(e / 1e3);\n return new t(n, Math.floor(1e6 * (e - 1e3 * n)));\n }, \n /**\n * Converts a `Timestamp` to a JavaScript `Date` object. This conversion\n * causes a loss of precision since `Date` objects only support millisecond\n * precision.\n *\n * @returns JavaScript `Date` object representing the same point in time as\n * this `Timestamp`, with millisecond precision.\n */\n t.prototype.toDate = function() {\n return new Date(this.toMillis());\n }, \n /**\n * Converts a `Timestamp` to a numeric timestamp (in milliseconds since\n * epoch). This operation causes a loss of precision.\n *\n * @returns The point in time corresponding to this timestamp, represented as\n * the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.\n */\n t.prototype.toMillis = function() {\n return 1e3 * this.seconds + this.nanoseconds / 1e6;\n }, t.prototype._compareTo = function(t) {\n return this.seconds === t.seconds ? q(this.nanoseconds, t.nanoseconds) : q(this.seconds, t.seconds);\n }, \n /**\n * Returns true if this `Timestamp` is equal to the provided one.\n *\n * @param other - The `Timestamp` to compare against.\n * @returns true if this `Timestamp` is equal to the provided one.\n */\n t.prototype.isEqual = function(t) {\n return t.seconds === this.seconds && t.nanoseconds === this.nanoseconds;\n }, \n /** Returns a textual representation of this `Timestamp`. */ t.prototype.toString = function() {\n return \"Timestamp(seconds=\" + this.seconds + \", nanoseconds=\" + this.nanoseconds + \")\";\n }, \n /** Returns a JSON-serializable representation of this `Timestamp`. */ t.prototype.toJSON = function() {\n return {\n seconds: this.seconds,\n nanoseconds: this.nanoseconds\n };\n }, \n /**\n * Converts this object to a primitive string, which allows `Timestamp` objects\n * to be compared using the `>`, `<=`, `>=` and `>` operators.\n */\n t.prototype.valueOf = function() {\n // This method returns a string of the form . where\n // is translated to have a non-negative value and both \n // and are left-padded with zeroes to be a consistent length.\n // Strings with this format then have a lexiographical ordering that matches\n // the expected ordering. The translation is done to avoid having\n // a leading negative sign (i.e. a leading '-' character) in its string\n // representation, which would affect its lexiographical ordering.\n var t = this.seconds - -62135596800;\n // Note: Up to 12 decimal digits are required to represent all valid\n // 'seconds' values.\n return String(t).padStart(12, \"0\") + \".\" + String(this.nanoseconds).padStart(9, \"0\");\n }, t;\n}(), K = /** @class */ function() {\n function t(t) {\n this.timestamp = t;\n }\n return t.fromTimestamp = function(e) {\n return new t(e);\n }, t.min = function() {\n return new t(new j(0, 0));\n }, t.prototype.compareTo = function(t) {\n return this.timestamp._compareTo(t.timestamp);\n }, t.prototype.isEqual = function(t) {\n return this.timestamp.isEqual(t.timestamp);\n }, \n /** Returns a number representation of the version for use in spec tests. */ t.prototype.toMicroseconds = function() {\n // Convert to microseconds.\n return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3;\n }, t.prototype.toString = function() {\n return \"SnapshotVersion(\" + this.timestamp.toString() + \")\";\n }, t.prototype.toTimestamp = function() {\n return this.timestamp;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A version of a document in Firestore. This corresponds to the version\n * timestamp, such as update_time or read_time.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nfunction G(t) {\n var e = 0;\n for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e++;\n return e;\n}\n\nfunction Q(t, e) {\n for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e(n, t[n]);\n}\n\nfunction z(t) {\n for (var e in t) if (Object.prototype.hasOwnProperty.call(t, e)) return !1;\n return !0;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Path represents an ordered sequence of string segments.\n */ var W = /** @class */ function() {\n function t(t, e, n) {\n void 0 === e ? e = 0 : e > t.length && O(), void 0 === n ? n = t.length - e : n > t.length - e && O(), \n this.segments = t, this.offset = e, this.len = n;\n }\n return Object.defineProperty(t.prototype, \"length\", {\n get: function() {\n return this.len;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(e) {\n return 0 === t.comparator(this, e);\n }, t.prototype.child = function(e) {\n var n = this.segments.slice(this.offset, this.limit());\n return e instanceof t ? e.forEach((function(t) {\n n.push(t);\n })) : n.push(e), this.construct(n);\n }, \n /** The index of one past the last segment of the path. */ t.prototype.limit = function() {\n return this.offset + this.length;\n }, t.prototype.popFirst = function(t) {\n return t = void 0 === t ? 1 : t, this.construct(this.segments, this.offset + t, this.length - t);\n }, t.prototype.popLast = function() {\n return this.construct(this.segments, this.offset, this.length - 1);\n }, t.prototype.firstSegment = function() {\n return this.segments[this.offset];\n }, t.prototype.lastSegment = function() {\n return this.get(this.length - 1);\n }, t.prototype.get = function(t) {\n return this.segments[this.offset + t];\n }, t.prototype.isEmpty = function() {\n return 0 === this.length;\n }, t.prototype.isPrefixOf = function(t) {\n if (t.length < this.length) return !1;\n for (var e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }, t.prototype.isImmediateParentOf = function(t) {\n if (this.length + 1 !== t.length) return !1;\n for (var e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }, t.prototype.forEach = function(t) {\n for (var e = this.offset, n = this.limit(); e < n; e++) t(this.segments[e]);\n }, t.prototype.toArray = function() {\n return this.segments.slice(this.offset, this.limit());\n }, t.comparator = function(t, e) {\n for (var n = Math.min(t.length, e.length), r = 0; r < n; r++) {\n var i = t.get(r), o = e.get(r);\n if (i < o) return -1;\n if (i > o) return 1;\n }\n return t.length < e.length ? -1 : t.length > e.length ? 1 : 0;\n }, t;\n}(), H = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(n, e), n.prototype.construct = function(t, e, r) {\n return new n(t, e, r);\n }, n.prototype.canonicalString = function() {\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n return this.toArray().join(\"/\");\n }, n.prototype.toString = function() {\n return this.canonicalString();\n }, \n /**\n * Creates a resource path from the given slash-delimited string. If multiple\n * arguments are provided, all components are combined. Leading and trailing\n * slashes from all components are ignored.\n */\n n.fromString = function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n for (var r = [], i = 0, o = t; i < o.length; i++) {\n var s = o[i];\n if (s.indexOf(\"//\") >= 0) throw new D(N.INVALID_ARGUMENT, \"Invalid segment (\" + s + \"). Paths must not contain // in them.\");\n // Strip leading and traling slashed.\n r.push.apply(r, s.split(\"/\").filter((function(t) {\n return t.length > 0;\n })));\n }\n return new n(r);\n }, n.emptyPath = function() {\n return new n([]);\n }, n;\n}(W), Y = /^[_a-zA-Z][_a-zA-Z0-9]*$/, $ = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(n, e), n.prototype.construct = function(t, e, r) {\n return new n(t, e, r);\n }, \n /**\n * Returns true if the string could be used as a segment in a field path\n * without escaping.\n */\n n.isValidIdentifier = function(t) {\n return Y.test(t);\n }, n.prototype.canonicalString = function() {\n return this.toArray().map((function(t) {\n return t = t.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\"), n.isValidIdentifier(t) || (t = \"`\" + t + \"`\"), \n t;\n })).join(\".\");\n }, n.prototype.toString = function() {\n return this.canonicalString();\n }, \n /**\n * Returns true if this field references the key of a document.\n */\n n.prototype.isKeyField = function() {\n return 1 === this.length && \"__name__\" === this.get(0);\n }, \n /**\n * The field designating the key of a document.\n */\n n.keyField = function() {\n return new n([ \"__name__\" ]);\n }, \n /**\n * Parses a field string from the given server-formatted string.\n *\n * - Splitting the empty string is not allowed (for now at least).\n * - Empty segments within the string (e.g. if there are two consecutive\n * separators) are not allowed.\n *\n * TODO(b/37244157): we should make this more strict. Right now, it allows\n * non-identifier path components, even if they aren't escaped.\n */\n n.fromServerFormat = function(t) {\n for (var e = [], r = \"\", i = 0, o = function() {\n if (0 === r.length) throw new D(N.INVALID_ARGUMENT, \"Invalid field path (\" + t + \"). Paths must not be empty, begin with '.', end with '.', or contain '..'\");\n e.push(r), r = \"\";\n }, s = !1; i < t.length; ) {\n var u = t[i];\n if (\"\\\\\" === u) {\n if (i + 1 === t.length) throw new D(N.INVALID_ARGUMENT, \"Path has trailing escape character: \" + t);\n var a = t[i + 1];\n if (\"\\\\\" !== a && \".\" !== a && \"`\" !== a) throw new D(N.INVALID_ARGUMENT, \"Path has invalid escape sequence: \" + t);\n r += a, i += 2;\n } else \"`\" === u ? (s = !s, i++) : \".\" !== u || s ? (r += u, i++) : (o(), i++);\n }\n if (o(), s) throw new D(N.INVALID_ARGUMENT, \"Unterminated ` in path: \" + t);\n return new n(e);\n }, n.emptyPath = function() {\n return new n([]);\n }, n;\n}(W), X = /** @class */ function() {\n function t(t) {\n this.fields = t, \n // TODO(dimond): validation of FieldMask\n // Sort the field mask to support `FieldMask.isEqual()` and assert below.\n t.sort($.comparator)\n /**\n * Verifies that `fieldPath` is included by at least one field in this field\n * mask.\n *\n * This is an O(n) operation, where `n` is the size of the field mask.\n */;\n }\n return t.prototype.covers = function(t) {\n for (var e = 0, n = this.fields; e < n.length; e++) {\n if (n[e].isPrefixOf(t)) return !0;\n }\n return !1;\n }, t.prototype.isEqual = function(t) {\n return U(this.fields, t.fields, (function(t, e) {\n return t.isEqual(e);\n }));\n }, t;\n}(), J = /** @class */ function() {\n function t(t) {\n this.binaryString = t;\n }\n return t.fromBase64String = function(e) {\n return new t(atob(e));\n }, t.fromUint8Array = function(e) {\n return new t(\n /**\n * Helper function to convert an Uint8array to a binary string.\n */\n function(t) {\n for (var e = \"\", n = 0; n < t.length; ++n) e += String.fromCharCode(t[n]);\n return e;\n }(e));\n }, t.prototype.toBase64 = function() {\n return t = this.binaryString, btoa(t);\n /** Converts a binary string to a Base64 encoded string. */ var t;\n /** True if and only if the Base64 conversion functions are available. */ }, \n t.prototype.toUint8Array = function() {\n return function(t) {\n for (var e = new Uint8Array(t.length), n = 0; n < t.length; n++) e[n] = t.charCodeAt(n);\n return e;\n }(this.binaryString);\n }, t.prototype.approximateByteSize = function() {\n return 2 * this.binaryString.length;\n }, t.prototype.compareTo = function(t) {\n return q(this.binaryString, t.binaryString);\n }, t.prototype.isEqual = function(t) {\n return this.binaryString === t.binaryString;\n }, t;\n}();\n\n/**\n * A slash-separated path for navigating resources (documents and collections)\n * within Firestore.\n */ J.EMPTY_BYTE_STRING = new J(\"\");\n\nvar Z = new RegExp(/^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:\\.(\\d+))?Z$/);\n\n/**\n * Converts the possible Proto values for a timestamp value into a \"seconds and\n * nanos\" representation.\n */ function tt(t) {\n // The json interface (for the browser) will return an iso timestamp string,\n // while the proto js library (for node) will return a\n // google.protobuf.Timestamp instance.\n if (P(!!t), \"string\" == typeof t) {\n // The date string can have higher precision (nanos) than the Date class\n // (millis), so we do some custom parsing here.\n // Parse the nanos right out of the string.\n var e = 0, n = Z.exec(t);\n if (P(!!n), n[1]) {\n // Pad the fraction out to 9 digits (nanos).\n var r = n[1];\n r = (r + \"000000000\").substr(0, 9), e = Number(r);\n }\n // Parse the date to get the seconds.\n var i = new Date(t);\n return {\n seconds: Math.floor(i.getTime() / 1e3),\n nanos: e\n };\n }\n return {\n seconds: et(t.seconds),\n nanos: et(t.nanos)\n };\n}\n\n/**\n * Converts the possible Proto types for numbers into a JavaScript number.\n * Returns 0 if the value is not numeric.\n */ function et(t) {\n // TODO(bjornick): Handle int64 greater than 53 bits.\n return \"number\" == typeof t ? t : \"string\" == typeof t ? Number(t) : 0;\n}\n\n/** Converts the possible Proto types for Blobs into a ByteString. */ function nt(t) {\n return \"string\" == typeof t ? J.fromBase64String(t) : J.fromUint8Array(t);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Represents a locally-applied ServerTimestamp.\n *\n * Server Timestamps are backed by MapValues that contain an internal field\n * `__type__` with a value of `server_timestamp`. The previous value and local\n * write time are stored in its `__previous_value__` and `__local_write_time__`\n * fields respectively.\n *\n * Notes:\n * - ServerTimestampValue instances are created as the result of applying a\n * transform. They can only exist in the local view of a document. Therefore\n * they do not need to be parsed or serialized.\n * - When evaluated locally (e.g. for snapshot.data()), they by default\n * evaluate to `null`. This behavior can be configured by passing custom\n * FieldValueOptions to value().\n * - With respect to other ServerTimestampValues, they sort by their\n * localWriteTime.\n */ function rt(t) {\n var e, n;\n return \"server_timestamp\" === (null === (n = ((null === (e = null == t ? void 0 : t.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue);\n}\n\n/**\n * Creates a new ServerTimestamp proto value (using the internal format).\n */\n/**\n * Returns the value of the field before this ServerTimestamp was set.\n *\n * Preserving the previous values allows the user to display the last resoled\n * value until the backend responds with the timestamp.\n */ function it(t) {\n var e = t.mapValue.fields.__previous_value__;\n return rt(e) ? it(e) : e;\n}\n\n/**\n * Returns the local time at which this timestamp was first set.\n */ function ot(t) {\n var e = tt(t.mapValue.fields.__local_write_time__.timestampValue);\n return new j(e.seconds, e.nanos);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** Sentinel value that sorts before any Mutation Batch ID. */\n/**\n * Returns whether a variable is either undefined or null.\n */ function st(t) {\n return null == t;\n}\n\n/** Returns whether the value represents -0. */ function ut(t) {\n // Detect if the value is -0.0. Based on polyfill from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n return 0 === t && 1 / t == -1 / 0;\n}\n\n/**\n * Returns whether a value is an integer and in the safe integer range\n * @param value - The value to test for being an integer and in the safe range\n */ function at(t) {\n return \"number\" == typeof t && Number.isInteger(t) && !ut(t) && t <= Number.MAX_SAFE_INTEGER && t >= Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var ct = /** @class */ function() {\n function t(t) {\n this.path = t;\n }\n return t.fromPath = function(e) {\n return new t(H.fromString(e));\n }, t.fromName = function(e) {\n return new t(H.fromString(e).popFirst(5));\n }, \n /** Returns true if the document is in the specified collectionId. */ t.prototype.hasCollectionId = function(t) {\n return this.path.length >= 2 && this.path.get(this.path.length - 2) === t;\n }, t.prototype.isEqual = function(t) {\n return null !== t && 0 === H.comparator(this.path, t.path);\n }, t.prototype.toString = function() {\n return this.path.toString();\n }, t.comparator = function(t, e) {\n return H.comparator(t.path, e.path);\n }, t.isDocumentKey = function(t) {\n return t.length % 2 == 0;\n }, \n /**\n * Creates and returns a new document key with the given segments.\n *\n * @param segments - The segments of the path to the document\n * @returns A new instance of DocumentKey\n */\n t.fromSegments = function(e) {\n return new t(new H(e.slice()));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** Extracts the backend's type order for the provided value. */ function ht(t) {\n return \"nullValue\" in t ? 0 /* NullValue */ : \"booleanValue\" in t ? 1 /* BooleanValue */ : \"integerValue\" in t || \"doubleValue\" in t ? 2 /* NumberValue */ : \"timestampValue\" in t ? 3 /* TimestampValue */ : \"stringValue\" in t ? 5 /* StringValue */ : \"bytesValue\" in t ? 6 /* BlobValue */ : \"referenceValue\" in t ? 7 /* RefValue */ : \"geoPointValue\" in t ? 8 /* GeoPointValue */ : \"arrayValue\" in t ? 9 /* ArrayValue */ : \"mapValue\" in t ? rt(t) ? 4 /* ServerTimestampValue */ : 10 /* ObjectValue */ : O();\n}\n\n/** Tests `left` and `right` for equality based on the backend semantics. */ function ft(t, e) {\n var n = ht(t);\n if (n !== ht(e)) return !1;\n switch (n) {\n case 0 /* NullValue */ :\n return !0;\n\n case 1 /* BooleanValue */ :\n return t.booleanValue === e.booleanValue;\n\n case 4 /* ServerTimestampValue */ :\n return ot(t).isEqual(ot(e));\n\n case 3 /* TimestampValue */ :\n return function(t, e) {\n if (\"string\" == typeof t.timestampValue && \"string\" == typeof e.timestampValue && t.timestampValue.length === e.timestampValue.length) \n // Use string equality for ISO 8601 timestamps\n return t.timestampValue === e.timestampValue;\n var n = tt(t.timestampValue), r = tt(e.timestampValue);\n return n.seconds === r.seconds && n.nanos === r.nanos;\n }(t, e);\n\n case 5 /* StringValue */ :\n return t.stringValue === e.stringValue;\n\n case 6 /* BlobValue */ :\n return function(t, e) {\n return nt(t.bytesValue).isEqual(nt(e.bytesValue));\n }(t, e);\n\n case 7 /* RefValue */ :\n return t.referenceValue === e.referenceValue;\n\n case 8 /* GeoPointValue */ :\n return function(t, e) {\n return et(t.geoPointValue.latitude) === et(e.geoPointValue.latitude) && et(t.geoPointValue.longitude) === et(e.geoPointValue.longitude);\n }(t, e);\n\n case 2 /* NumberValue */ :\n return function(t, e) {\n if (\"integerValue\" in t && \"integerValue\" in e) return et(t.integerValue) === et(e.integerValue);\n if (\"doubleValue\" in t && \"doubleValue\" in e) {\n var n = et(t.doubleValue), r = et(e.doubleValue);\n return n === r ? ut(n) === ut(r) : isNaN(n) && isNaN(r);\n }\n return !1;\n }(t, e);\n\n case 9 /* ArrayValue */ :\n return U(t.arrayValue.values || [], e.arrayValue.values || [], ft);\n\n case 10 /* ObjectValue */ :\n return function(t, e) {\n var n = t.mapValue.fields || {}, r = e.mapValue.fields || {};\n if (G(n) !== G(r)) return !1;\n for (var i in n) if (n.hasOwnProperty(i) && (void 0 === r[i] || !ft(n[i], r[i]))) return !1;\n return !0;\n }(t, e);\n\n default:\n return O();\n }\n}\n\nfunction lt(t, e) {\n return void 0 !== (t.values || []).find((function(t) {\n return ft(t, e);\n }));\n}\n\nfunction dt(t, e) {\n var n = ht(t), r = ht(e);\n if (n !== r) return q(n, r);\n switch (n) {\n case 0 /* NullValue */ :\n return 0;\n\n case 1 /* BooleanValue */ :\n return q(t.booleanValue, e.booleanValue);\n\n case 2 /* NumberValue */ :\n return function(t, e) {\n var n = et(t.integerValue || t.doubleValue), r = et(e.integerValue || e.doubleValue);\n return n < r ? -1 : n > r ? 1 : n === r ? 0 : \n // one or both are NaN.\n isNaN(n) ? isNaN(r) ? 0 : -1 : 1;\n }(t, e);\n\n case 3 /* TimestampValue */ :\n return pt(t.timestampValue, e.timestampValue);\n\n case 4 /* ServerTimestampValue */ :\n return pt(ot(t), ot(e));\n\n case 5 /* StringValue */ :\n return q(t.stringValue, e.stringValue);\n\n case 6 /* BlobValue */ :\n return function(t, e) {\n var n = nt(t), r = nt(e);\n return n.compareTo(r);\n }(t.bytesValue, e.bytesValue);\n\n case 7 /* RefValue */ :\n return function(t, e) {\n for (var n = t.split(\"/\"), r = e.split(\"/\"), i = 0; i < n.length && i < r.length; i++) {\n var o = q(n[i], r[i]);\n if (0 !== o) return o;\n }\n return q(n.length, r.length);\n }(t.referenceValue, e.referenceValue);\n\n case 8 /* GeoPointValue */ :\n return function(t, e) {\n var n = q(et(t.latitude), et(e.latitude));\n return 0 !== n ? n : q(et(t.longitude), et(e.longitude));\n }(t.geoPointValue, e.geoPointValue);\n\n case 9 /* ArrayValue */ :\n return function(t, e) {\n for (var n = t.values || [], r = e.values || [], i = 0; i < n.length && i < r.length; ++i) {\n var o = dt(n[i], r[i]);\n if (o) return o;\n }\n return q(n.length, r.length);\n }(t.arrayValue, e.arrayValue);\n\n case 10 /* ObjectValue */ :\n return function(t, e) {\n var n = t.fields || {}, r = Object.keys(n), i = e.fields || {}, o = Object.keys(i);\n // Even though MapValues are likely sorted correctly based on their insertion\n // order (e.g. when received from the backend), local modifications can bring\n // elements out of order. We need to re-sort the elements to ensure that\n // canonical IDs are independent of insertion order.\n r.sort(), o.sort();\n for (var s = 0; s < r.length && s < o.length; ++s) {\n var u = q(r[s], o[s]);\n if (0 !== u) return u;\n var a = dt(n[r[s]], i[o[s]]);\n if (0 !== a) return a;\n }\n return q(r.length, o.length);\n }(t.mapValue, e.mapValue);\n\n default:\n throw O();\n }\n}\n\nfunction pt(t, e) {\n if (\"string\" == typeof t && \"string\" == typeof e && t.length === e.length) return q(t, e);\n var n = tt(t), r = tt(e), i = q(n.seconds, r.seconds);\n return 0 !== i ? i : q(n.nanos, r.nanos);\n}\n\nfunction yt(t) {\n return vt(t);\n}\n\nfunction vt(t) {\n return \"nullValue\" in t ? \"null\" : \"booleanValue\" in t ? \"\" + t.booleanValue : \"integerValue\" in t ? \"\" + t.integerValue : \"doubleValue\" in t ? \"\" + t.doubleValue : \"timestampValue\" in t ? function(t) {\n var e = tt(t);\n return \"time(\" + e.seconds + \",\" + e.nanos + \")\";\n }(t.timestampValue) : \"stringValue\" in t ? t.stringValue : \"bytesValue\" in t ? nt(t.bytesValue).toBase64() : \"referenceValue\" in t ? (n = t.referenceValue, \n ct.fromName(n).toString()) : \"geoPointValue\" in t ? \"geo(\" + (e = t.geoPointValue).latitude + \",\" + e.longitude + \")\" : \"arrayValue\" in t ? function(t) {\n for (var e = \"[\", n = !0, r = 0, i = t.values || []; r < i.length; r++) {\n n ? n = !1 : e += \",\", e += vt(i[r]);\n }\n return e + \"]\";\n }(t.arrayValue) : \"mapValue\" in t ? function(t) {\n for (\n // Iteration order in JavaScript is not guaranteed. To ensure that we generate\n // matching canonical IDs for identical maps, we need to sort the keys.\n var e = \"{\", n = !0, r = 0, i = Object.keys(t.fields || {}).sort(); r < i.length; r++) {\n var o = i[r];\n n ? n = !1 : e += \",\", e += o + \":\" + vt(t.fields[o]);\n }\n return e + \"}\";\n }(t.mapValue) : O();\n var e, n;\n}\n\nfunction mt(t, e) {\n return {\n referenceValue: \"projects/\" + t.projectId + \"/databases/\" + t.database + \"/documents/\" + e.path.canonicalString()\n };\n}\n\n/** Returns true if `value` is an IntegerValue . */ function gt(t) {\n return !!t && \"integerValue\" in t;\n}\n\n/** Returns true if `value` is a DoubleValue. */\n/** Returns true if `value` is an ArrayValue. */ function wt(t) {\n return !!t && \"arrayValue\" in t;\n}\n\n/** Returns true if `value` is a NullValue. */ function bt(t) {\n return !!t && \"nullValue\" in t;\n}\n\n/** Returns true if `value` is NaN. */ function It(t) {\n return !!t && \"doubleValue\" in t && isNaN(Number(t.doubleValue));\n}\n\n/** Returns true if `value` is a MapValue. */ function Tt(t) {\n return !!t && \"mapValue\" in t;\n}\n\n/** Creates a deep copy of `source`. */ function _t(t) {\n if (t.geoPointValue) return {\n geoPointValue: Object.assign({}, t.geoPointValue)\n };\n if (t.timestampValue && \"object\" == typeof t.timestampValue) return {\n timestampValue: Object.assign({}, t.timestampValue)\n };\n if (t.mapValue) {\n var e = {\n mapValue: {\n fields: {}\n }\n };\n return Q(t.mapValue.fields, (function(t, n) {\n return e.mapValue.fields[t] = _t(n);\n })), e;\n }\n if (t.arrayValue) {\n for (var n = {\n arrayValue: {\n values: []\n }\n }, r = 0; r < (t.arrayValue.values || []).length; ++r) n.arrayValue.values[r] = _t(t.arrayValue.values[r]);\n return n;\n }\n return Object.assign({}, t);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * An ObjectValue represents a MapValue in the Firestore Proto and offers the\n * ability to add and remove fields (via the ObjectValueBuilder).\n */ var Et = /** @class */ function() {\n function t(t) {\n this.value = t;\n }\n return t.empty = function() {\n return new t({\n mapValue: {}\n });\n }, \n /**\n * Returns the value at the given path or null.\n *\n * @param path - the path to search\n * @returns The value at the path or null if the path is not set.\n */\n t.prototype.field = function(t) {\n if (t.isEmpty()) return this.value;\n for (var e = this.value, n = 0; n < t.length - 1; ++n) if (!Tt(e = (e.mapValue.fields || {})[t.get(n)])) return null;\n return (e = (e.mapValue.fields || {})[t.lastSegment()]) || null;\n }, \n /**\n * Sets the field to the provided value.\n *\n * @param path - The field path to set.\n * @param value - The value to set.\n */\n t.prototype.set = function(t, e) {\n this.getFieldsMap(t.popLast())[t.lastSegment()] = _t(e);\n }, \n /**\n * Sets the provided fields to the provided values.\n *\n * @param data - A map of fields to values (or null for deletes).\n */\n t.prototype.setAll = function(t) {\n var e = this, n = $.emptyPath(), r = {}, i = [];\n t.forEach((function(t, o) {\n if (!n.isImmediateParentOf(o)) {\n // Insert the accumulated changes at this parent location\n var s = e.getFieldsMap(n);\n e.applyChanges(s, r, i), r = {}, i = [], n = o.popLast();\n }\n t ? r[o.lastSegment()] = _t(t) : i.push(o.lastSegment());\n }));\n var o = this.getFieldsMap(n);\n this.applyChanges(o, r, i);\n }, \n /**\n * Removes the field at the specified path. If there is no field at the\n * specified path, nothing is changed.\n *\n * @param path - The field path to remove.\n */\n t.prototype.delete = function(t) {\n var e = this.field(t.popLast());\n Tt(e) && e.mapValue.fields && delete e.mapValue.fields[t.lastSegment()];\n }, t.prototype.isEqual = function(t) {\n return ft(this.value, t.value);\n }, \n /**\n * Returns the map that contains the leaf element of `path`. If the parent\n * entry does not yet exist, or if it is not a map, a new map will be created.\n */\n t.prototype.getFieldsMap = function(t) {\n var e = this.value;\n e.mapValue.fields || (e.mapValue = {\n fields: {}\n });\n for (var n = 0; n < t.length; ++n) {\n var r = e.mapValue.fields[t.get(n)];\n Tt(r) && r.mapValue.fields || (r = {\n mapValue: {\n fields: {}\n }\n }, e.mapValue.fields[t.get(n)] = r), e = r;\n }\n return e.mapValue.fields;\n }, \n /**\n * Modifies `fieldsMap` by adding, replacing or deleting the specified\n * entries.\n */\n t.prototype.applyChanges = function(t, e, n) {\n Q(e, (function(e, n) {\n return t[e] = n;\n }));\n for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r];\n delete t[o];\n }\n }, t.prototype.clone = function() {\n return new t(_t(this.value));\n }, t;\n}();\n\n/**\n * Returns a FieldMask built from all fields in a MapValue.\n */ function St(t) {\n var e = [];\n return Q(t.fields, (function(t, n) {\n var r = new $([ t ]);\n if (Tt(n)) {\n var i = St(n.mapValue).fields;\n if (0 === i.length) \n // Preserve the empty map by adding it to the FieldMask.\n e.push(r); else \n // For nested and non-empty ObjectValues, add the FieldPath of the\n // leaf nodes.\n for (var o = 0, s = i; o < s.length; o++) {\n var u = s[o];\n e.push(r.child(u));\n }\n } else \n // For nested and non-empty ObjectValues, add the FieldPath of the leaf\n // nodes.\n e.push(r);\n })), new X(e)\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Represents a document in Firestore with a key, version, data and whether it\n * has local mutations applied to it.\n *\n * Documents can transition between states via `convertToFoundDocument()`,\n * `convertToNoDocument()` and `convertToUnknownDocument()`. If a document does\n * not transition to one of these states even after all mutations have been\n * applied, `isValidDocument()` returns false and the document should be removed\n * from all views.\n */;\n}\n\nvar Nt = /** @class */ function() {\n function t(t, e, n, r, i) {\n this.key = t, this.documentType = e, this.version = n, this.data = r, this.documentState = i\n /**\n * Creates a document with no known version or data, but which can serve as\n * base document for mutations.\n */;\n }\n return t.newInvalidDocument = function(e) {\n return new t(e, 0 /* INVALID */ , K.min(), Et.empty(), 0 /* SYNCED */);\n }, \n /**\n * Creates a new document that is known to exist with the given data at the\n * given version.\n */\n t.newFoundDocument = function(e, n, r) {\n return new t(e, 1 /* FOUND_DOCUMENT */ , n, r, 0 /* SYNCED */);\n }, \n /** Creates a new document that is known to not exist at the given version. */ t.newNoDocument = function(e, n) {\n return new t(e, 2 /* NO_DOCUMENT */ , n, Et.empty(), 0 /* SYNCED */);\n }, \n /**\n * Creates a new document that is known to exist at the given version but\n * whose data is not known (e.g. a document that was updated without a known\n * base document).\n */\n t.newUnknownDocument = function(e, n) {\n return new t(e, 3 /* UNKNOWN_DOCUMENT */ , n, Et.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);\n }, \n /**\n * Changes the document type to indicate that it exists and that its version\n * and data are known.\n */\n t.prototype.convertToFoundDocument = function(t, e) {\n return this.version = t, this.documentType = 1 /* FOUND_DOCUMENT */ , this.data = e, \n this.documentState = 0 /* SYNCED */ , this;\n }, \n /**\n * Changes the document type to indicate that it doesn't exist at the given\n * version.\n */\n t.prototype.convertToNoDocument = function(t) {\n return this.version = t, this.documentType = 2 /* NO_DOCUMENT */ , this.data = Et.empty(), \n this.documentState = 0 /* SYNCED */ , this;\n }, \n /**\n * Changes the document type to indicate that it exists at a given version but\n * that its data is not known (e.g. a document that was updated without a known\n * base document).\n */\n t.prototype.convertToUnknownDocument = function(t) {\n return this.version = t, this.documentType = 3 /* UNKNOWN_DOCUMENT */ , this.data = Et.empty(), \n this.documentState = 2 /* HAS_COMMITTED_MUTATIONS */ , this;\n }, t.prototype.setHasCommittedMutations = function() {\n return this.documentState = 2 /* HAS_COMMITTED_MUTATIONS */ , this;\n }, t.prototype.setHasLocalMutations = function() {\n return this.documentState = 1 /* HAS_LOCAL_MUTATIONS */ , this;\n }, Object.defineProperty(t.prototype, \"hasLocalMutations\", {\n get: function() {\n return 1 /* HAS_LOCAL_MUTATIONS */ === this.documentState;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"hasCommittedMutations\", {\n get: function() {\n return 2 /* HAS_COMMITTED_MUTATIONS */ === this.documentState;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"hasPendingWrites\", {\n get: function() {\n return this.hasLocalMutations || this.hasCommittedMutations;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isValidDocument = function() {\n return 0 /* INVALID */ !== this.documentType;\n }, t.prototype.isFoundDocument = function() {\n return 1 /* FOUND_DOCUMENT */ === this.documentType;\n }, t.prototype.isNoDocument = function() {\n return 2 /* NO_DOCUMENT */ === this.documentType;\n }, t.prototype.isUnknownDocument = function() {\n return 3 /* UNKNOWN_DOCUMENT */ === this.documentType;\n }, t.prototype.isEqual = function(e) {\n return e instanceof t && this.key.isEqual(e.key) && this.version.isEqual(e.version) && this.documentType === e.documentType && this.documentState === e.documentState && this.data.isEqual(e.data);\n }, t.prototype.clone = function() {\n return new t(this.key, this.documentType, this.version, this.data.clone(), this.documentState);\n }, t.prototype.toString = function() {\n return \"Document(\" + this.key + \", \" + this.version + \", \" + JSON.stringify(this.data.value) + \", {documentType: \" + this.documentType + \"}), {documentState: \" + this.documentState + \"})\";\n }, t;\n}(), Dt = function(t, e, n, r, i, o, s) {\n void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), \n void 0 === i && (i = null), void 0 === o && (o = null), void 0 === s && (s = null), \n this.path = t, this.collectionGroup = e, this.orderBy = n, this.filters = r, this.limit = i, \n this.startAt = o, this.endAt = s, this.h = null;\n};\n\n/**\n * Compares the value for field `field` in the provided documents. Throws if\n * the field does not exist in both documents.\n */\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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// Visible for testing\n/**\n * Initializes a Target with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n *\n * NOTE: you should always construct `Target` from `Query.toTarget` instead of\n * using this factory method, because `Query` provides an implicit `orderBy`\n * property.\n */\nfunction At(t, e, n, r, i, o, s) {\n return void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), \n void 0 === i && (i = null), void 0 === o && (o = null), void 0 === s && (s = null), \n new Dt(t, e, n, r, i, o, s);\n}\n\nfunction kt(t) {\n var e = F(t);\n if (null === e.h) {\n var n = e.path.canonicalString();\n null !== e.collectionGroup && (n += \"|cg:\" + e.collectionGroup), n += \"|f:\", n += e.filters.map((function(t) {\n return function(t) {\n // TODO(b/29183165): Technically, this won't be unique if two values have\n // the same description, such as the int 3 and the string \"3\". So we should\n // add the types in here somehow, too.\n return t.field.canonicalString() + t.op.toString() + yt(t.value);\n }(t);\n })).join(\",\"), n += \"|ob:\", n += e.orderBy.map((function(t) {\n return function(t) {\n // TODO(b/29183165): Make this collision robust.\n return t.field.canonicalString() + t.dir;\n }(t);\n })).join(\",\"), st(e.limit) || (n += \"|l:\", n += e.limit), e.startAt && (n += \"|lb:\", \n n += jt(e.startAt)), e.endAt && (n += \"|ub:\", n += jt(e.endAt)), e.h = n;\n }\n return e.h;\n}\n\nfunction Ct(t, e) {\n if (t.limit !== e.limit) return !1;\n if (t.orderBy.length !== e.orderBy.length) return !1;\n for (var n = 0; n < t.orderBy.length; n++) if (!Gt(t.orderBy[n], e.orderBy[n])) return !1;\n if (t.filters.length !== e.filters.length) return !1;\n for (var r = 0; r < t.filters.length; r++) if (i = t.filters[r], o = e.filters[r], \n i.op !== o.op || !i.field.isEqual(o.field) || !ft(i.value, o.value)) return !1;\n var i, o;\n return t.collectionGroup === e.collectionGroup && !!t.path.isEqual(e.path) && !!zt(t.startAt, e.startAt) && zt(t.endAt, e.endAt);\n}\n\nfunction xt(t) {\n return ct.isDocumentKey(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n}\n\nvar Rt = /** @class */ function(e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).field = t, i.op = n, i.value = r, i;\n }\n /**\n * Creates a filter based on the provided arguments.\n */ return t(n, e), n.create = function(t, e, r) {\n return t.isKeyField() ? \"in\" /* IN */ === e || \"not-in\" /* NOT_IN */ === e ? this.l(t, e, r) : new Lt(t, e, r) : \"array-contains\" /* ARRAY_CONTAINS */ === e ? new Mt(t, r) : \"in\" /* IN */ === e ? new Vt(t, r) : \"not-in\" /* NOT_IN */ === e ? new qt(t, r) : \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ === e ? new Ut(t, r) : new n(t, e, r);\n }, n.l = function(t, e, n) {\n return \"in\" /* IN */ === e ? new Ot(t, n) : new Pt(t, n);\n }, n.prototype.matches = function(t) {\n var e = t.data.field(this.field);\n // Types do not have to match in NOT_EQUAL filters.\n return \"!=\" /* NOT_EQUAL */ === this.op ? null !== e && this.m(dt(e, this.value)) : null !== e && ht(this.value) === ht(e) && this.m(dt(e, this.value));\n // Only compare types with matching backend order (such as double and int).\n }, n.prototype.m = function(t) {\n switch (this.op) {\n case \"<\" /* LESS_THAN */ :\n return t < 0;\n\n case \"<=\" /* LESS_THAN_OR_EQUAL */ :\n return t <= 0;\n\n case \"==\" /* EQUAL */ :\n return 0 === t;\n\n case \"!=\" /* NOT_EQUAL */ :\n return 0 !== t;\n\n case \">\" /* GREATER_THAN */ :\n return t > 0;\n\n case \">=\" /* GREATER_THAN_OR_EQUAL */ :\n return t >= 0;\n\n default:\n return O();\n }\n }, n.prototype.g = function() {\n return [ \"<\" /* LESS_THAN */ , \"<=\" /* LESS_THAN_OR_EQUAL */ , \">\" /* GREATER_THAN */ , \">=\" /* GREATER_THAN_OR_EQUAL */ , \"!=\" /* NOT_EQUAL */ , \"not-in\" /* NOT_IN */ ].indexOf(this.op) >= 0;\n }, n;\n}((function() {}));\n\nvar Lt = /** @class */ function(e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this, t, n, r) || this).key = ct.fromName(r.referenceValue), \n i;\n }\n return t(n, e), n.prototype.matches = function(t) {\n var e = ct.comparator(t.key, this.key);\n return this.m(e);\n }, n;\n}(Rt), Ot = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t, \"in\" /* IN */ , n) || this).keys = Ft(\"in\" /* IN */ , n), \n r;\n }\n return t(n, e), n.prototype.matches = function(t) {\n return this.keys.some((function(e) {\n return e.isEqual(t.key);\n }));\n }, n;\n}(Rt), Pt = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t, \"not-in\" /* NOT_IN */ , n) || this).keys = Ft(\"not-in\" /* NOT_IN */ , n), \n r;\n }\n return t(n, e), n.prototype.matches = function(t) {\n return !this.keys.some((function(e) {\n return e.isEqual(t.key);\n }));\n }, n;\n}(Rt);\n\n/** Filter that matches on key fields within an array. */ function Ft(t, e) {\n var n;\n return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map((function(t) {\n return ct.fromName(t.referenceValue);\n }));\n}\n\n/** A Filter that implements the array-contains operator. */ var Mt = /** @class */ function(e) {\n function n(t, n) {\n return e.call(this, t, \"array-contains\" /* ARRAY_CONTAINS */ , n) || this;\n }\n return t(n, e), n.prototype.matches = function(t) {\n var e = t.data.field(this.field);\n return wt(e) && lt(e.arrayValue, this.value);\n }, n;\n}(Rt), Vt = /** @class */ function(e) {\n function n(t, n) {\n return e.call(this, t, \"in\" /* IN */ , n) || this;\n }\n return t(n, e), n.prototype.matches = function(t) {\n var e = t.data.field(this.field);\n return null !== e && lt(this.value.arrayValue, e);\n }, n;\n}(Rt), qt = /** @class */ function(e) {\n function n(t, n) {\n return e.call(this, t, \"not-in\" /* NOT_IN */ , n) || this;\n }\n return t(n, e), n.prototype.matches = function(t) {\n if (lt(this.value.arrayValue, {\n nullValue: \"NULL_VALUE\"\n })) return !1;\n var e = t.data.field(this.field);\n return null !== e && !lt(this.value.arrayValue, e);\n }, n;\n}(Rt), Ut = /** @class */ function(e) {\n function n(t, n) {\n return e.call(this, t, \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , n) || this;\n }\n return t(n, e), n.prototype.matches = function(t) {\n var e = this, n = t.data.field(this.field);\n return !(!wt(n) || !n.arrayValue.values) && n.arrayValue.values.some((function(t) {\n return lt(e.value.arrayValue, t);\n }));\n }, n;\n}(Rt), Bt = function(t, e) {\n this.position = t, this.before = e;\n};\n\n/** A Filter that implements the IN operator. */ function jt(t) {\n // TODO(b/29183165): Make this collision robust.\n return (t.before ? \"b\" : \"a\") + \":\" + t.position.map((function(t) {\n return yt(t);\n })).join(\",\");\n}\n\n/**\n * An ordering on a field, in some Direction. Direction defaults to ASCENDING.\n */ var Kt = function(t, e /* ASCENDING */) {\n void 0 === e && (e = \"asc\"), this.field = t, this.dir = e;\n};\n\nfunction Gt(t, e) {\n return t.dir === e.dir && t.field.isEqual(e.field);\n}\n\n/**\n * Returns true if a document sorts before a bound using the provided sort\n * order.\n */ function Qt(t, e, n) {\n for (var r = 0, i = 0; i < t.position.length; i++) {\n var o = e[i], s = t.position[i];\n if (r = o.field.isKeyField() ? ct.comparator(ct.fromName(s.referenceValue), n.key) : dt(s, n.data.field(o.field)), \n \"desc\" /* DESCENDING */ === o.dir && (r *= -1), 0 !== r) break;\n }\n return t.before ? r <= 0 : r < 0;\n}\n\nfunction zt(t, e) {\n if (null === t) return null === e;\n if (null === e) return !1;\n if (t.before !== e.before || t.position.length !== e.position.length) return !1;\n for (var n = 0; n < t.position.length; n++) if (!ft(t.position[n], e.position[n])) return !1;\n return !0;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Query encapsulates all the query attributes we support in the SDK. It can\n * be run against the LocalStore, as well as be converted to a `Target` to\n * query the RemoteStore results.\n *\n * Visible for testing.\n */ var Wt = \n/**\n * Initializes a Query with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n */\nfunction(t, e, n, r, i, o /* First */ , s, u) {\n void 0 === e && (e = null), void 0 === n && (n = []), void 0 === r && (r = []), \n void 0 === i && (i = null), void 0 === o && (o = \"F\"), void 0 === s && (s = null), \n void 0 === u && (u = null), this.path = t, this.collectionGroup = e, this.explicitOrderBy = n, \n this.filters = r, this.limit = i, this.limitType = o, this.startAt = s, this.endAt = u, \n this.p = null, \n // The corresponding `Target` of this `Query` instance.\n this.T = null, this.startAt, this.endAt;\n};\n\n/** Creates a new Query instance with the options provided. */ function Ht(t, e, n, r, i, o, s, u) {\n return new Wt(t, e, n, r, i, o, s, u);\n}\n\n/** Creates a new Query for a query that matches all documents at `path` */ function Yt(t) {\n return new Wt(t);\n}\n\n/**\n * Helper to convert a collection group query into a collection query at a\n * specific path. This is used when executing collection group queries, since\n * we have to split the query into a set of collection queries at multiple\n * paths.\n */ function $t(t) {\n return !st(t.limit) && \"F\" /* First */ === t.limitType;\n}\n\nfunction Xt(t) {\n return !st(t.limit) && \"L\" /* Last */ === t.limitType;\n}\n\nfunction Jt(t) {\n return t.explicitOrderBy.length > 0 ? t.explicitOrderBy[0].field : null;\n}\n\nfunction Zt(t) {\n for (var e = 0, n = t.filters; e < n.length; e++) {\n var r = n[e];\n if (r.g()) return r.field;\n }\n return null;\n}\n\n/**\n * Checks if any of the provided Operators are included in the query and\n * returns the first one that is, or null if none are.\n */\n/**\n * Returns whether the query matches a collection group rather than a specific\n * collection.\n */ function te(t) {\n return null !== t.collectionGroup;\n}\n\n/**\n * Returns the implicit order by constraint that is used to execute the Query,\n * which can be different from the order by constraints the user provided (e.g.\n * the SDK and backend always orders by `__name__`).\n */ function ee(t) {\n var e = F(t);\n if (null === e.p) {\n e.p = [];\n var n = Zt(e), r = Jt(e);\n if (null !== n && null === r) \n // In order to implicitly add key ordering, we must also add the\n // inequality filter field for it to be a valid query.\n // Note that the default inequality field and key ordering is ascending.\n n.isKeyField() || e.p.push(new Kt(n)), e.p.push(new Kt($.keyField(), \"asc\" /* ASCENDING */)); else {\n for (var i = !1, o = 0, s = e.explicitOrderBy; o < s.length; o++) {\n var u = s[o];\n e.p.push(u), u.field.isKeyField() && (i = !0);\n }\n if (!i) {\n // The order of the implicit key ordering always matches the last\n // explicit order by\n var a = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : \"asc\" /* ASCENDING */;\n e.p.push(new Kt($.keyField(), a));\n }\n }\n }\n return e.p;\n}\n\n/**\n * Converts this `Query` instance to it's corresponding `Target` representation.\n */ function ne(t) {\n var e = F(t);\n if (!e.T) if (\"F\" /* First */ === e.limitType) e.T = At(e.path, e.collectionGroup, ee(e), e.filters, e.limit, e.startAt, e.endAt); else {\n for (\n // Flip the orderBy directions since we want the last results\n var n = [], r = 0, i = ee(e); r < i.length; r++) {\n var o = i[r], s = \"desc\" /* DESCENDING */ === o.dir ? \"asc\" /* ASCENDING */ : \"desc\" /* DESCENDING */;\n n.push(new Kt(o.field, s));\n }\n // We need to swap the cursors to match the now-flipped query ordering.\n var u = e.endAt ? new Bt(e.endAt.position, !e.endAt.before) : null, a = e.startAt ? new Bt(e.startAt.position, !e.startAt.before) : null;\n // Now return as a LimitType.First query.\n e.T = At(e.path, e.collectionGroup, n, e.filters, e.limit, u, a);\n }\n return e.T;\n}\n\nfunction re(t, e, n) {\n return new Wt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), e, n, t.startAt, t.endAt);\n}\n\nfunction ie(t, e) {\n return Ct(ne(t), ne(e)) && t.limitType === e.limitType;\n}\n\n// TODO(b/29183165): This is used to get a unique string from a query to, for\n// example, use as a dictionary key, but the implementation is subject to\n// collisions. Make it collision-free.\nfunction oe(t) {\n return kt(ne(t)) + \"|lt:\" + t.limitType;\n}\n\nfunction se(t) {\n return \"Query(target=\" + function(t) {\n var e = t.path.canonicalString();\n return null !== t.collectionGroup && (e += \" collectionGroup=\" + t.collectionGroup), \n t.filters.length > 0 && (e += \", filters: [\" + t.filters.map((function(t) {\n return (e = t).field.canonicalString() + \" \" + e.op + \" \" + yt(e.value);\n /** Returns a debug description for `filter`. */ var e;\n /** Filter that matches on key fields (i.e. '__name__'). */ })).join(\", \") + \"]\"), \n st(t.limit) || (e += \", limit: \" + t.limit), t.orderBy.length > 0 && (e += \", orderBy: [\" + t.orderBy.map((function(t) {\n return function(t) {\n return t.field.canonicalString() + \" (\" + t.dir + \")\";\n }(t);\n })).join(\", \") + \"]\"), t.startAt && (e += \", startAt: \" + jt(t.startAt)), t.endAt && (e += \", endAt: \" + jt(t.endAt)), \n \"Target(\" + e + \")\";\n }(ne(t)) + \"; limitType=\" + t.limitType + \")\";\n}\n\n/** Returns whether `doc` matches the constraints of `query`. */ function ue(t, e) {\n return e.isFoundDocument() && function(t, e) {\n var n = e.key.path;\n return null !== t.collectionGroup ? e.key.hasCollectionId(t.collectionGroup) && t.path.isPrefixOf(n) : ct.isDocumentKey(t.path) ? t.path.isEqual(n) : t.path.isImmediateParentOf(n);\n }(t, e) && function(t, e) {\n for (var n = 0, r = t.explicitOrderBy; n < r.length; n++) {\n var i = r[n];\n // order by key always matches\n if (!i.field.isKeyField() && null === e.data.field(i.field)) return !1;\n }\n return !0;\n }(t, e) && function(t, e) {\n for (var n = 0, r = t.filters; n < r.length; n++) {\n if (!r[n].matches(e)) return !1;\n }\n return !0;\n }(t, e) && function(t, e) {\n return !(t.startAt && !Qt(t.startAt, ee(t), e)) && (!t.endAt || !Qt(t.endAt, ee(t), e));\n }(t, e);\n}\n\nfunction ae(t) {\n return function(e, n) {\n for (var r = !1, i = 0, o = ee(t); i < o.length; i++) {\n var s = o[i], u = ce(s, e, n);\n if (0 !== u) return u;\n r = r || s.field.isKeyField();\n }\n return 0;\n };\n}\n\nfunction ce(t, e, n) {\n var r = t.field.isKeyField() ? ct.comparator(e.key, n.key) : function(t, e, n) {\n var r = e.data.field(t), i = n.data.field(t);\n return null !== r && null !== i ? dt(r, i) : O();\n }(t.field, e, n);\n switch (t.dir) {\n case \"asc\" /* ASCENDING */ :\n return r;\n\n case \"desc\" /* DESCENDING */ :\n return -1 * r;\n\n default:\n return O();\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Returns an DoubleValue for `value` that is encoded based the serializer's\n * `useProto3Json` setting.\n */ function he(t, e) {\n if (t.I) {\n if (isNaN(e)) return {\n doubleValue: \"NaN\"\n };\n if (e === 1 / 0) return {\n doubleValue: \"Infinity\"\n };\n if (e === -1 / 0) return {\n doubleValue: \"-Infinity\"\n };\n }\n return {\n doubleValue: ut(e) ? \"-0\" : e\n };\n}\n\n/**\n * Returns an IntegerValue for `value`.\n */ function fe(t) {\n return {\n integerValue: \"\" + t\n };\n}\n\n/**\n * Returns a value for a number that's appropriate to put into a proto.\n * The return value is an IntegerValue if it can safely represent the value,\n * otherwise a DoubleValue is returned.\n */ function le(t, e) {\n return at(e) ? fe(e) : he(t, e);\n}\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** Used to represent a field transform on a mutation. */ var de = function() {\n // Make sure that the structural type of `TransformOperation` is unique.\n // See https://github.com/microsoft/TypeScript/issues/5451\n this._ = void 0;\n};\n\n/**\n * Computes the local transform result against the provided `previousValue`,\n * optionally using the provided localWriteTime.\n */ function pe(t, e, n) {\n return t instanceof me ? function(t, e) {\n var n = {\n fields: {\n __type__: {\n stringValue: \"server_timestamp\"\n },\n __local_write_time__: {\n timestampValue: {\n seconds: t.seconds,\n nanos: t.nanoseconds\n }\n }\n }\n };\n return e && (n.fields.__previous_value__ = e), {\n mapValue: n\n };\n }(n, e) : t instanceof ge ? we(t, e) : t instanceof be ? Ie(t, e) : function(t, e) {\n // PORTING NOTE: Since JavaScript's integer arithmetic is limited to 53 bit\n // precision and resolves overflows by reducing precision, we do not\n // manually cap overflows at 2^63.\n var n = ve(t, e), r = _e(n) + _e(t.A);\n return gt(n) && gt(t.A) ? fe(r) : he(t.R, r);\n }(t, e);\n}\n\n/**\n * Computes a final transform result after the transform has been acknowledged\n * by the server, potentially using the server-provided transformResult.\n */ function ye(t, e, n) {\n // The server just sends null as the transform result for array operations,\n // so we have to calculate a result the same as we do for local\n // applications.\n return t instanceof ge ? we(t, e) : t instanceof be ? Ie(t, e) : n;\n}\n\n/**\n * If this transform operation is not idempotent, returns the base value to\n * persist for this transform. If a base value is returned, the transform\n * operation is always applied to this base value, even if document has\n * already been updated.\n *\n * Base values provide consistent behavior for non-idempotent transforms and\n * allow us to return the same latency-compensated value even if the backend\n * has already applied the transform operation. The base value is null for\n * idempotent transforms, as they can be re-played even if the backend has\n * already applied them.\n *\n * @returns a base value to store along with the mutation, or null for\n * idempotent transforms.\n */ function ve(t, e) {\n return t instanceof Te ? gt(n = e) || function(t) {\n return !!t && \"doubleValue\" in t;\n }(n) ? e : {\n integerValue: 0\n } : null;\n var n;\n}\n\n/** Transforms a value into a server-generated timestamp. */ var me = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(n, e), n;\n}(de), ge = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).elements = t, n;\n }\n return t(n, e), n;\n}(de);\n\n/** Transforms an array value via a union operation. */ function we(t, e) {\n for (var n = Ee(e), r = function(t) {\n n.some((function(e) {\n return ft(e, t);\n })) || n.push(t);\n }, i = 0, o = t.elements; i < o.length; i++) {\n r(o[i]);\n }\n return {\n arrayValue: {\n values: n\n }\n };\n}\n\n/** Transforms an array value via a remove operation. */ var be = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).elements = t, n;\n }\n return t(n, e), n;\n}(de);\n\nfunction Ie(t, e) {\n for (var n = Ee(e), r = function(t) {\n n = n.filter((function(e) {\n return !ft(e, t);\n }));\n }, i = 0, o = t.elements; i < o.length; i++) {\n r(o[i]);\n }\n return {\n arrayValue: {\n values: n\n }\n };\n}\n\n/**\n * Implements the backend semantics for locally computed NUMERIC_ADD (increment)\n * transforms. Converts all field values to integers or doubles, but unlike the\n * backend does not cap integer values at 2^63. Instead, JavaScript number\n * arithmetic is used and precision loss can occur for values greater than 2^53.\n */ var Te = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).R = t, r.A = n, r;\n }\n return t(n, e), n;\n}(de);\n\nfunction _e(t) {\n return et(t.integerValue || t.doubleValue);\n}\n\nfunction Ee(t) {\n return wt(t) && t.arrayValue.values ? t.arrayValue.values.slice() : [];\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** A field path and the TransformOperation to perform upon it. */ var Se = function(t, e) {\n this.field = t, this.transform = e;\n};\n\n/** The result of successfully applying a mutation to the backend. */\nvar Ne = function(\n/**\n * The version at which the mutation was committed:\n *\n * - For most operations, this is the updateTime in the WriteResult.\n * - For deletes, the commitTime of the WriteResponse (because deletes are\n * not stored and have no updateTime).\n *\n * Note that these versions can be different: No-op writes will not change\n * the updateTime even though the commitTime advances.\n */\nt, \n/**\n * The resulting fields returned from the backend after a mutation\n * containing field transforms has been committed. Contains one FieldValue\n * for each FieldTransform that was in the mutation.\n *\n * Will be empty if the mutation did not contain any field transforms.\n */\ne) {\n this.version = t, this.transformResults = e;\n}, De = /** @class */ function() {\n function t(t, e) {\n this.updateTime = t, this.exists = e\n /** Creates a new empty Precondition. */;\n }\n return t.none = function() {\n return new t;\n }, \n /** Creates a new Precondition with an exists flag. */ t.exists = function(e) {\n return new t(void 0, e);\n }, \n /** Creates a new Precondition based on a version a document exists at. */ t.updateTime = function(e) {\n return new t(e);\n }, Object.defineProperty(t.prototype, \"isNone\", {\n /** Returns whether this Precondition is empty. */ get: function() {\n return void 0 === this.updateTime && void 0 === this.exists;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(t) {\n return this.exists === t.exists && (this.updateTime ? !!t.updateTime && this.updateTime.isEqual(t.updateTime) : !t.updateTime);\n }, t;\n}();\n\n/**\n * Encodes a precondition for a mutation. This follows the model that the\n * backend accepts with the special case of an explicit \"empty\" precondition\n * (meaning no precondition).\n */\n/** Returns true if the preconditions is valid for the given document. */ function Ae(t, e) {\n return void 0 !== t.updateTime ? e.isFoundDocument() && e.version.isEqual(t.updateTime) : void 0 === t.exists || t.exists === e.isFoundDocument();\n}\n\n/**\n * A mutation describes a self-contained change to a document. Mutations can\n * create, replace, delete, and update subsets of documents.\n *\n * Mutations not only act on the value of the document but also its version.\n *\n * For local mutations (mutations that haven't been committed yet), we preserve\n * the existing version for Set and Patch mutations. For Delete mutations, we\n * reset the version to 0.\n *\n * Here's the expected transition table.\n *\n * MUTATION APPLIED TO RESULTS IN\n *\n * SetMutation Document(v3) Document(v3)\n * SetMutation NoDocument(v3) Document(v0)\n * SetMutation InvalidDocument(v0) Document(v0)\n * PatchMutation Document(v3) Document(v3)\n * PatchMutation NoDocument(v3) NoDocument(v3)\n * PatchMutation InvalidDocument(v0) UnknownDocument(v3)\n * DeleteMutation Document(v3) NoDocument(v0)\n * DeleteMutation NoDocument(v3) NoDocument(v0)\n * DeleteMutation InvalidDocument(v0) NoDocument(v0)\n *\n * For acknowledged mutations, we use the updateTime of the WriteResponse as\n * the resulting version for Set and Patch mutations. As deletes have no\n * explicit update time, we use the commitTime of the WriteResponse for\n * Delete mutations.\n *\n * If a mutation is acknowledged by the backend but fails the precondition check\n * locally, we transition to an `UnknownDocument` and rely on Watch to send us\n * the updated version.\n *\n * Field transforms are used only with Patch and Set Mutations. We use the\n * `updateTransforms` message to store transforms, rather than the `transforms`s\n * messages.\n *\n * ## Subclassing Notes\n *\n * Every type of mutation needs to implement its own applyToRemoteDocument() and\n * applyToLocalView() to implement the actual behavior of applying the mutation\n * to some source document (see `applySetMutationToRemoteDocument()` for an\n * example).\n */ var ke = function() {};\n\n/**\n * Applies this mutation to the given document for the purposes of computing a\n * new remote document. If the input document doesn't match the expected state\n * (e.g. it is invalid or outdated), the document type may transition to\n * unknown.\n *\n * @param mutation - The mutation to apply.\n * @param document - The document to mutate. The input document can be an\n * invalid document if the client has no knowledge of the pre-mutation state\n * of the document.\n * @param mutationResult - The result of applying the mutation from the backend.\n */ function Ce(t, e, n) {\n t instanceof Pe ? function(t, e, n) {\n // Unlike applySetMutationToLocalView, if we're applying a mutation to a\n // remote document the server has accepted the mutation so the precondition\n // must have held.\n var r = t.value.clone(), i = Ve(t.fieldTransforms, e, n.transformResults);\n r.setAll(i), e.convertToFoundDocument(n.version, r).setHasCommittedMutations();\n }(t, e, n) : t instanceof Fe ? function(t, e, n) {\n if (Ae(t.precondition, e)) {\n var r = Ve(t.fieldTransforms, e, n.transformResults), i = e.data;\n i.setAll(Me(t)), i.setAll(r), e.convertToFoundDocument(n.version, i).setHasCommittedMutations();\n } else e.convertToUnknownDocument(n.version);\n }(t, e, n) : function(t, e, n) {\n // Unlike applyToLocalView, if we're applying a mutation to a remote\n // document the server has accepted the mutation so the precondition must\n // have held.\n e.convertToNoDocument(n.version).setHasCommittedMutations();\n }(0, e, n);\n}\n\n/**\n * Applies this mutation to the given document for the purposes of computing\n * the new local view of a document. If the input document doesn't match the\n * expected state, the document is not modified.\n *\n * @param mutation - The mutation to apply.\n * @param document - The document to mutate. The input document can be an\n * invalid document if the client has no knowledge of the pre-mutation state\n * of the document.\n * @param localWriteTime - A timestamp indicating the local write time of the\n * batch this mutation is a part of.\n */ function xe(t, e, n) {\n t instanceof Pe ? function(t, e, n) {\n if (Ae(t.precondition, e)) {\n var r = t.value.clone(), i = qe(t.fieldTransforms, n, e);\n r.setAll(i), e.convertToFoundDocument(Oe(e), r).setHasLocalMutations();\n }\n }(t, e, n) : t instanceof Fe ? function(t, e, n) {\n if (Ae(t.precondition, e)) {\n var r = qe(t.fieldTransforms, n, e), i = e.data;\n i.setAll(Me(t)), i.setAll(r), e.convertToFoundDocument(Oe(e), i).setHasLocalMutations();\n }\n }(t, e, n) : function(t, e) {\n Ae(t.precondition, e) && \n // We don't call `setHasLocalMutations()` since we want to be backwards\n // compatible with the existing SDK behavior.\n e.convertToNoDocument(K.min());\n }(t, e);\n}\n\n/**\n * If this mutation is not idempotent, returns the base value to persist with\n * this mutation. If a base value is returned, the mutation is always applied\n * to this base value, even if document has already been updated.\n *\n * The base value is a sparse object that consists of only the document\n * fields for which this mutation contains a non-idempotent transformation\n * (e.g. a numeric increment). The provided value guarantees consistent\n * behavior for non-idempotent transforms and allow us to return the same\n * latency-compensated value even if the backend has already applied the\n * mutation. The base value is null for idempotent mutations, as they can be\n * re-played even if the backend has already applied them.\n *\n * @returns a base value to store along with the mutation, or null for\n * idempotent mutations.\n */ function Re(t, e) {\n for (var n = null, r = 0, i = t.fieldTransforms; r < i.length; r++) {\n var o = i[r], s = e.data.field(o.field), u = ve(o.transform, s || null);\n null != u && (null == n && (n = Et.empty()), n.set(o.field, u));\n }\n return n || null;\n}\n\nfunction Le(t, e) {\n return t.type === e.type && !!t.key.isEqual(e.key) && !!t.precondition.isEqual(e.precondition) && !!function(t, e) {\n return void 0 === t && void 0 === e || !(!t || !e) && U(t, e, (function(t, e) {\n return function(t, e) {\n return t.field.isEqual(e.field) && function(t, e) {\n return t instanceof ge && e instanceof ge || t instanceof be && e instanceof be ? U(t.elements, e.elements, ft) : t instanceof Te && e instanceof Te ? ft(t.A, e.A) : t instanceof me && e instanceof me;\n }(t.transform, e.transform);\n }(t, e);\n }));\n }(t.fieldTransforms, e.fieldTransforms) && (0 /* Set */ === t.type ? t.value.isEqual(e.value) : 1 /* Patch */ !== t.type || t.data.isEqual(e.data) && t.fieldMask.isEqual(e.fieldMask));\n}\n\n/**\n * Returns the version from the given document for use as the result of a\n * mutation. Mutations are defined to return the version of the base document\n * only if it is an existing document. Deleted and unknown documents have a\n * post-mutation version of SnapshotVersion.min().\n */ function Oe(t) {\n return t.isFoundDocument() ? t.version : K.min();\n}\n\n/**\n * A mutation that creates or replaces the document at the given key with the\n * object value contents.\n */ var Pe = /** @class */ function(e) {\n function n(t, n, r, i) {\n void 0 === i && (i = []);\n var o = this;\n return (o = e.call(this) || this).key = t, o.value = n, o.precondition = r, o.fieldTransforms = i, \n o.type = 0 /* Set */ , o;\n }\n return t(n, e), n;\n}(ke), Fe = /** @class */ function(e) {\n function n(t, n, r, i, o) {\n void 0 === o && (o = []);\n var s = this;\n return (s = e.call(this) || this).key = t, s.data = n, s.fieldMask = r, s.precondition = i, \n s.fieldTransforms = o, s.type = 1 /* Patch */ , s;\n }\n return t(n, e), n;\n}(ke);\n\nfunction Me(t) {\n var e = new Map;\n return t.fieldMask.fields.forEach((function(n) {\n if (!n.isEmpty()) {\n var r = t.data.field(n);\n e.set(n, r);\n }\n })), e\n /**\n * Creates a list of \"transform results\" (a transform result is a field value\n * representing the result of applying a transform) for use after a mutation\n * containing transforms has been acknowledged by the server.\n *\n * @param fieldTransforms - The field transforms to apply the result to.\n * @param mutableDocument - The current state of the document after applying all\n * previous mutations.\n * @param serverTransformResults - The transform results received by the server.\n * @returns The transform results list.\n */;\n}\n\nfunction Ve(t, e, n) {\n var r = new Map;\n P(t.length === n.length);\n for (var i = 0; i < n.length; i++) {\n var o = t[i], s = o.transform, u = e.data.field(o.field);\n r.set(o.field, ye(s, u, n[i]));\n }\n return r;\n}\n\n/**\n * Creates a list of \"transform results\" (a transform result is a field value\n * representing the result of applying a transform) for use when applying a\n * transform locally.\n *\n * @param fieldTransforms - The field transforms to apply the result to.\n * @param localWriteTime - The local time of the mutation (used to\n * generate ServerTimestampValues).\n * @param mutableDocument - The current state of the document after applying all\n * previous mutations.\n * @returns The transform results list.\n */ function qe(t, e, n) {\n for (var r = new Map, i = 0, o = t; i < o.length; i++) {\n var s = o[i], u = s.transform, a = n.data.field(s.field);\n r.set(s.field, pe(u, a, e));\n }\n return r;\n}\n\n/** A mutation that deletes the document at the given key. */ var Ue, Be, je = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).key = t, r.precondition = n, r.type = 2 /* Delete */ , \n r.fieldTransforms = [], r;\n }\n return t(n, e), n;\n}(ke), Ke = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).key = t, r.precondition = n, r.type = 3 /* Verify */ , \n r.fieldTransforms = [], r;\n }\n return t(n, e), n;\n}(ke), Ge = \n// TODO(b/33078163): just use simplest form of existence filter for now\nfunction(t) {\n this.count = t;\n};\n\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a non-write operation.\n *\n * See isPermanentWriteError for classifying write errors.\n */\nfunction Qe(t) {\n switch (t) {\n case N.OK:\n return O();\n\n case N.CANCELLED:\n case N.UNKNOWN:\n case N.DEADLINE_EXCEEDED:\n case N.RESOURCE_EXHAUSTED:\n case N.INTERNAL:\n case N.UNAVAILABLE:\n // Unauthenticated means something went wrong with our token and we need\n // to retry with new credentials which will happen automatically.\n case N.UNAUTHENTICATED:\n return !1;\n\n case N.INVALID_ARGUMENT:\n case N.NOT_FOUND:\n case N.ALREADY_EXISTS:\n case N.PERMISSION_DENIED:\n case N.FAILED_PRECONDITION:\n // Aborted might be retried in some scenarios, but that is dependant on\n // the context and should handled individually by the calling code.\n // See https://cloud.google.com/apis/design/errors.\n case N.ABORTED:\n case N.OUT_OF_RANGE:\n case N.UNIMPLEMENTED:\n case N.DATA_LOSS:\n return !0;\n\n default:\n return O();\n }\n}\n\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a write operation.\n *\n * Write operations must be handled specially because as of b/119437764, ABORTED\n * errors on the write stream should be retried too (even though ABORTED errors\n * are not generally retryable).\n *\n * Note that during the initial handshake on the write stream an ABORTED error\n * signals that we should discard our stream token (i.e. it is permanent). This\n * means a handshake error should be classified with isPermanentError, above.\n */\n/**\n * Maps an error Code from GRPC status code number, like 0, 1, or 14. These\n * are not the same as HTTP status codes.\n *\n * @returns The Code equivalent to the given GRPC status code. Fails if there\n * is no match.\n */ function ze(t) {\n if (void 0 === t) \n // This shouldn't normally happen, but in certain error cases (like trying\n // to send invalid proto messages) we may get an error with no GRPC code.\n return x(\"GRPC error has no .code\"), N.UNKNOWN;\n switch (t) {\n case Ue.OK:\n return N.OK;\n\n case Ue.CANCELLED:\n return N.CANCELLED;\n\n case Ue.UNKNOWN:\n return N.UNKNOWN;\n\n case Ue.DEADLINE_EXCEEDED:\n return N.DEADLINE_EXCEEDED;\n\n case Ue.RESOURCE_EXHAUSTED:\n return N.RESOURCE_EXHAUSTED;\n\n case Ue.INTERNAL:\n return N.INTERNAL;\n\n case Ue.UNAVAILABLE:\n return N.UNAVAILABLE;\n\n case Ue.UNAUTHENTICATED:\n return N.UNAUTHENTICATED;\n\n case Ue.INVALID_ARGUMENT:\n return N.INVALID_ARGUMENT;\n\n case Ue.NOT_FOUND:\n return N.NOT_FOUND;\n\n case Ue.ALREADY_EXISTS:\n return N.ALREADY_EXISTS;\n\n case Ue.PERMISSION_DENIED:\n return N.PERMISSION_DENIED;\n\n case Ue.FAILED_PRECONDITION:\n return N.FAILED_PRECONDITION;\n\n case Ue.ABORTED:\n return N.ABORTED;\n\n case Ue.OUT_OF_RANGE:\n return N.OUT_OF_RANGE;\n\n case Ue.UNIMPLEMENTED:\n return N.UNIMPLEMENTED;\n\n case Ue.DATA_LOSS:\n return N.DATA_LOSS;\n\n default:\n return O();\n }\n}\n\n/**\n * Converts an HTTP response's error status to the equivalent error code.\n *\n * @param status - An HTTP error response status (\"FAILED_PRECONDITION\",\n * \"UNKNOWN\", etc.)\n * @returns The equivalent Code. Non-matching responses are mapped to\n * Code.UNKNOWN.\n */ (Be = Ue || (Ue = {}))[Be.OK = 0] = \"OK\", Be[Be.CANCELLED = 1] = \"CANCELLED\", \nBe[Be.UNKNOWN = 2] = \"UNKNOWN\", Be[Be.INVALID_ARGUMENT = 3] = \"INVALID_ARGUMENT\", \nBe[Be.DEADLINE_EXCEEDED = 4] = \"DEADLINE_EXCEEDED\", Be[Be.NOT_FOUND = 5] = \"NOT_FOUND\", \nBe[Be.ALREADY_EXISTS = 6] = \"ALREADY_EXISTS\", Be[Be.PERMISSION_DENIED = 7] = \"PERMISSION_DENIED\", \nBe[Be.UNAUTHENTICATED = 16] = \"UNAUTHENTICATED\", Be[Be.RESOURCE_EXHAUSTED = 8] = \"RESOURCE_EXHAUSTED\", \nBe[Be.FAILED_PRECONDITION = 9] = \"FAILED_PRECONDITION\", Be[Be.ABORTED = 10] = \"ABORTED\", \nBe[Be.OUT_OF_RANGE = 11] = \"OUT_OF_RANGE\", Be[Be.UNIMPLEMENTED = 12] = \"UNIMPLEMENTED\", \nBe[Be.INTERNAL = 13] = \"INTERNAL\", Be[Be.UNAVAILABLE = 14] = \"UNAVAILABLE\", Be[Be.DATA_LOSS = 15] = \"DATA_LOSS\";\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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// An immutable sorted map implementation, based on a Left-leaning Red-Black\n// tree.\nvar We = /** @class */ function() {\n function t(t, e) {\n this.comparator = t, this.root = e || Ye.EMPTY;\n }\n // Returns a copy of the map, with the specified key/value added or replaced.\n return t.prototype.insert = function(e, n) {\n return new t(this.comparator, this.root.insert(e, n, this.comparator).copy(null, null, Ye.BLACK, null, null));\n }, \n // Returns a copy of the map, with the specified key removed.\n t.prototype.remove = function(e) {\n return new t(this.comparator, this.root.remove(e, this.comparator).copy(null, null, Ye.BLACK, null, null));\n }, \n // Returns the value of the node with the given key, or null.\n t.prototype.get = function(t) {\n for (var e = this.root; !e.isEmpty(); ) {\n var n = this.comparator(t, e.key);\n if (0 === n) return e.value;\n n < 0 ? e = e.left : n > 0 && (e = e.right);\n }\n return null;\n }, \n // Returns the index of the element in this sorted map, or -1 if it doesn't\n // exist.\n t.prototype.indexOf = function(t) {\n for (\n // Number of nodes that were pruned when descending right\n var e = 0, n = this.root; !n.isEmpty(); ) {\n var r = this.comparator(t, n.key);\n if (0 === r) return e + n.left.size;\n r < 0 ? n = n.left : (\n // Count all nodes left of the node plus the node itself\n e += n.left.size + 1, n = n.right);\n }\n // Node not found\n return -1;\n }, t.prototype.isEmpty = function() {\n return this.root.isEmpty();\n }, Object.defineProperty(t.prototype, \"size\", {\n // Returns the total number of nodes in the map.\n get: function() {\n return this.root.size;\n },\n enumerable: !1,\n configurable: !0\n }), \n // Returns the minimum key in the map.\n t.prototype.minKey = function() {\n return this.root.minKey();\n }, \n // Returns the maximum key in the map.\n t.prototype.maxKey = function() {\n return this.root.maxKey();\n }, \n // Traverses the map in key order and calls the specified action function\n // for each key/value pair. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.inorderTraversal = function(t) {\n return this.root.inorderTraversal(t);\n }, t.prototype.forEach = function(t) {\n this.inorderTraversal((function(e, n) {\n return t(e, n), !1;\n }));\n }, t.prototype.toString = function() {\n var t = [];\n return this.inorderTraversal((function(e, n) {\n return t.push(e + \":\" + n), !1;\n })), \"{\" + t.join(\", \") + \"}\";\n }, \n // Traverses the map in reverse key order and calls the specified action\n // function for each key/value pair. If action returns true, traversal is\n // aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.reverseTraversal = function(t) {\n return this.root.reverseTraversal(t);\n }, \n // Returns an iterator over the SortedMap.\n t.prototype.getIterator = function() {\n return new He(this.root, null, this.comparator, !1);\n }, t.prototype.getIteratorFrom = function(t) {\n return new He(this.root, t, this.comparator, !1);\n }, t.prototype.getReverseIterator = function() {\n return new He(this.root, null, this.comparator, !0);\n }, t.prototype.getReverseIteratorFrom = function(t) {\n return new He(this.root, t, this.comparator, !0);\n }, t;\n}(), He = /** @class */ function() {\n function t(t, e, n, r) {\n this.isReverse = r, this.nodeStack = [];\n for (var i = 1; !t.isEmpty(); ) if (i = e ? n(t.key, e) : 1, \n // flip the comparison if we're going in reverse\n r && (i *= -1), i < 0) \n // This node is less than our start key. ignore it\n t = this.isReverse ? t.left : t.right; else {\n if (0 === i) {\n // This node is exactly equal to our start key. Push it on the stack,\n // but stop iterating;\n this.nodeStack.push(t);\n break;\n }\n // This node is greater than our start key, add it to the stack and move\n // to the next one\n this.nodeStack.push(t), t = this.isReverse ? t.right : t.left;\n }\n }\n return t.prototype.getNext = function() {\n var t = this.nodeStack.pop(), e = {\n key: t.key,\n value: t.value\n };\n if (this.isReverse) for (t = t.left; !t.isEmpty(); ) this.nodeStack.push(t), t = t.right; else for (t = t.right; !t.isEmpty(); ) this.nodeStack.push(t), \n t = t.left;\n return e;\n }, t.prototype.hasNext = function() {\n return this.nodeStack.length > 0;\n }, t.prototype.peek = function() {\n if (0 === this.nodeStack.length) return null;\n var t = this.nodeStack[this.nodeStack.length - 1];\n return {\n key: t.key,\n value: t.value\n };\n }, t;\n}(), Ye = /** @class */ function() {\n function t(e, n, r, i, o) {\n this.key = e, this.value = n, this.color = null != r ? r : t.RED, this.left = null != i ? i : t.EMPTY, \n this.right = null != o ? o : t.EMPTY, this.size = this.left.size + 1 + this.right.size;\n }\n // Returns a copy of the current node, optionally replacing pieces of it.\n return t.prototype.copy = function(e, n, r, i, o) {\n return new t(null != e ? e : this.key, null != n ? n : this.value, null != r ? r : this.color, null != i ? i : this.left, null != o ? o : this.right);\n }, t.prototype.isEmpty = function() {\n return !1;\n }, \n // Traverses the tree in key order and calls the specified action function\n // for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.inorderTraversal = function(t) {\n return this.left.inorderTraversal(t) || t(this.key, this.value) || this.right.inorderTraversal(t);\n }, \n // Traverses the tree in reverse key order and calls the specified action\n // function for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n t.prototype.reverseTraversal = function(t) {\n return this.right.reverseTraversal(t) || t(this.key, this.value) || this.left.reverseTraversal(t);\n }, \n // Returns the minimum node in the tree.\n t.prototype.min = function() {\n return this.left.isEmpty() ? this : this.left.min();\n }, \n // Returns the maximum key in the tree.\n t.prototype.minKey = function() {\n return this.min().key;\n }, \n // Returns the maximum key in the tree.\n t.prototype.maxKey = function() {\n return this.right.isEmpty() ? this.key : this.right.maxKey();\n }, \n // Returns new tree, with the key/value added.\n t.prototype.insert = function(t, e, n) {\n var r = this, i = n(t, r.key);\n return (r = i < 0 ? r.copy(null, null, null, r.left.insert(t, e, n), null) : 0 === i ? r.copy(null, e, null, null, null) : r.copy(null, null, null, null, r.right.insert(t, e, n))).fixUp();\n }, t.prototype.removeMin = function() {\n if (this.left.isEmpty()) return t.EMPTY;\n var e = this;\n return e.left.isRed() || e.left.left.isRed() || (e = e.moveRedLeft()), (e = e.copy(null, null, null, e.left.removeMin(), null)).fixUp();\n }, \n // Returns new tree, with the specified item removed.\n t.prototype.remove = function(e, n) {\n var r, i = this;\n if (n(e, i.key) < 0) i.left.isEmpty() || i.left.isRed() || i.left.left.isRed() || (i = i.moveRedLeft()), \n i = i.copy(null, null, null, i.left.remove(e, n), null); else {\n if (i.left.isRed() && (i = i.rotateRight()), i.right.isEmpty() || i.right.isRed() || i.right.left.isRed() || (i = i.moveRedRight()), \n 0 === n(e, i.key)) {\n if (i.right.isEmpty()) return t.EMPTY;\n r = i.right.min(), i = i.copy(r.key, r.value, null, null, i.right.removeMin());\n }\n i = i.copy(null, null, null, null, i.right.remove(e, n));\n }\n return i.fixUp();\n }, t.prototype.isRed = function() {\n return this.color;\n }, \n // Returns new tree after performing any needed rotations.\n t.prototype.fixUp = function() {\n var t = this;\n return t.right.isRed() && !t.left.isRed() && (t = t.rotateLeft()), t.left.isRed() && t.left.left.isRed() && (t = t.rotateRight()), \n t.left.isRed() && t.right.isRed() && (t = t.colorFlip()), t;\n }, t.prototype.moveRedLeft = function() {\n var t = this.colorFlip();\n return t.right.left.isRed() && (t = (t = (t = t.copy(null, null, null, null, t.right.rotateRight())).rotateLeft()).colorFlip()), \n t;\n }, t.prototype.moveRedRight = function() {\n var t = this.colorFlip();\n return t.left.left.isRed() && (t = (t = t.rotateRight()).colorFlip()), t;\n }, t.prototype.rotateLeft = function() {\n var e = this.copy(null, null, t.RED, null, this.right.left);\n return this.right.copy(null, null, this.color, e, null);\n }, t.prototype.rotateRight = function() {\n var e = this.copy(null, null, t.RED, this.left.right, null);\n return this.left.copy(null, null, this.color, null, e);\n }, t.prototype.colorFlip = function() {\n var t = this.left.copy(null, null, !this.left.color, null, null), e = this.right.copy(null, null, !this.right.color, null, null);\n return this.copy(null, null, !this.color, t, e);\n }, \n // For testing.\n t.prototype.checkMaxDepth = function() {\n var t = this.check();\n return Math.pow(2, t) <= this.size + 1;\n }, \n // In a balanced RB tree, the black-depth (number of black nodes) from root to\n // leaves is equal on both sides. This function verifies that or asserts.\n t.prototype.check = function() {\n if (this.isRed() && this.left.isRed()) throw O();\n if (this.right.isRed()) throw O();\n var t = this.left.check();\n if (t !== this.right.check()) throw O();\n return t + (this.isRed() ? 0 : 1);\n }, t;\n}();\n\n// end SortedMap\n// An iterator over an LLRBNode.\n// end LLRBNode\n// Empty node is shared between all LLRB trees.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nYe.EMPTY = null, Ye.RED = !0, Ye.BLACK = !1, \n// end LLRBEmptyNode\nYe.EMPTY = new (/** @class */ function() {\n function t() {\n this.size = 0;\n }\n return Object.defineProperty(t.prototype, \"key\", {\n get: function() {\n throw O();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"value\", {\n get: function() {\n throw O();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"color\", {\n get: function() {\n throw O();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"left\", {\n get: function() {\n throw O();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"right\", {\n get: function() {\n throw O();\n },\n enumerable: !1,\n configurable: !0\n }), \n // Returns a copy of the current node.\n t.prototype.copy = function(t, e, n, r, i) {\n return this;\n }, \n // Returns a copy of the tree, with the specified key/value added.\n t.prototype.insert = function(t, e, n) {\n return new Ye(t, e);\n }, \n // Returns a copy of the tree, with the specified key removed.\n t.prototype.remove = function(t, e) {\n return this;\n }, t.prototype.isEmpty = function() {\n return !0;\n }, t.prototype.inorderTraversal = function(t) {\n return !1;\n }, t.prototype.reverseTraversal = function(t) {\n return !1;\n }, t.prototype.minKey = function() {\n return null;\n }, t.prototype.maxKey = function() {\n return null;\n }, t.prototype.isRed = function() {\n return !1;\n }, \n // For testing.\n t.prototype.checkMaxDepth = function() {\n return !0;\n }, t.prototype.check = function() {\n return 0;\n }, t;\n}());\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * SortedSet is an immutable (copy-on-write) collection that holds elements\n * in order specified by the provided comparator.\n *\n * NOTE: if provided comparator returns 0 for two elements, we consider them to\n * be equal!\n */\nvar $e = /** @class */ function() {\n function t(t) {\n this.comparator = t, this.data = new We(this.comparator);\n }\n return t.prototype.has = function(t) {\n return null !== this.data.get(t);\n }, t.prototype.first = function() {\n return this.data.minKey();\n }, t.prototype.last = function() {\n return this.data.maxKey();\n }, Object.defineProperty(t.prototype, \"size\", {\n get: function() {\n return this.data.size;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.indexOf = function(t) {\n return this.data.indexOf(t);\n }, \n /** Iterates elements in order defined by \"comparator\" */ t.prototype.forEach = function(t) {\n this.data.inorderTraversal((function(e, n) {\n return t(e), !1;\n }));\n }, \n /** Iterates over `elem`s such that: range[0] <= elem < range[1]. */ t.prototype.forEachInRange = function(t, e) {\n for (var n = this.data.getIteratorFrom(t[0]); n.hasNext(); ) {\n var r = n.getNext();\n if (this.comparator(r.key, t[1]) >= 0) return;\n e(r.key);\n }\n }, \n /**\n * Iterates over `elem`s such that: start <= elem until false is returned.\n */\n t.prototype.forEachWhile = function(t, e) {\n var n;\n for (n = void 0 !== e ? this.data.getIteratorFrom(e) : this.data.getIterator(); n.hasNext(); ) if (!t(n.getNext().key)) return;\n }, \n /** Finds the least element greater than or equal to `elem`. */ t.prototype.firstAfterOrEqual = function(t) {\n var e = this.data.getIteratorFrom(t);\n return e.hasNext() ? e.getNext().key : null;\n }, t.prototype.getIterator = function() {\n return new Xe(this.data.getIterator());\n }, t.prototype.getIteratorFrom = function(t) {\n return new Xe(this.data.getIteratorFrom(t));\n }, \n /** Inserts or updates an element */ t.prototype.add = function(t) {\n return this.copy(this.data.remove(t).insert(t, !0));\n }, \n /** Deletes an element */ t.prototype.delete = function(t) {\n return this.has(t) ? this.copy(this.data.remove(t)) : this;\n }, t.prototype.isEmpty = function() {\n return this.data.isEmpty();\n }, t.prototype.unionWith = function(t) {\n var e = this;\n // Make sure `result` always refers to the larger one of the two sets.\n return e.size < t.size && (e = t, t = this), t.forEach((function(t) {\n e = e.add(t);\n })), e;\n }, t.prototype.isEqual = function(e) {\n if (!(e instanceof t)) return !1;\n if (this.size !== e.size) return !1;\n for (var n = this.data.getIterator(), r = e.data.getIterator(); n.hasNext(); ) {\n var i = n.getNext().key, o = r.getNext().key;\n if (0 !== this.comparator(i, o)) return !1;\n }\n return !0;\n }, t.prototype.toArray = function() {\n var t = [];\n return this.forEach((function(e) {\n t.push(e);\n })), t;\n }, t.prototype.toString = function() {\n var t = [];\n return this.forEach((function(e) {\n return t.push(e);\n })), \"SortedSet(\" + t.toString() + \")\";\n }, t.prototype.copy = function(e) {\n var n = new t(this.comparator);\n return n.data = e, n;\n }, t;\n}(), Xe = /** @class */ function() {\n function t(t) {\n this.iter = t;\n }\n return t.prototype.getNext = function() {\n return this.iter.getNext().key;\n }, t.prototype.hasNext = function() {\n return this.iter.hasNext();\n }, t;\n}(), Je = new We(ct.comparator);\n\nfunction Ze() {\n return Je;\n}\n\nvar tn = new We(ct.comparator);\n\nfunction en() {\n return tn;\n}\n\nvar nn = new We(ct.comparator);\n\nfunction rn() {\n return nn;\n}\n\nvar on = new $e(ct.comparator);\n\nfunction sn() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n for (var n = on, r = 0, i = t; r < i.length; r++) {\n var o = i[r];\n n = n.add(o);\n }\n return n;\n}\n\nvar un = new $e(q);\n\nfunction an() {\n return un;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * An event from the RemoteStore. It is split into targetChanges (changes to the\n * state or the set of documents in our watched targets) and documentUpdates\n * (changes to the actual documents).\n */ var cn = /** @class */ function() {\n function t(\n /**\n * The snapshot version this event brings us up to, or MIN if not set.\n */\n t, \n /**\n * A map from target to changes to the target. See TargetChange.\n */\n e, \n /**\n * A set of targets that is known to be inconsistent. Listens for these\n * targets should be re-established without resume tokens.\n */\n n, \n /**\n * A set of which documents have changed or been deleted, along with the\n * doc's new values (if not deleted).\n */\n r, \n /**\n * A set of which document updates are due only to limbo resolution targets.\n */\n i) {\n this.snapshotVersion = t, this.targetChanges = e, this.targetMismatches = n, this.documentUpdates = r, \n this.resolvedLimboDocuments = i;\n }\n /**\n * HACK: Views require RemoteEvents in order to determine whether the view is\n * CURRENT, but secondary tabs don't receive remote events. So this method is\n * used to create a synthesized RemoteEvent that can be used to apply a\n * CURRENT status change to a View, for queries executed in a different tab.\n */\n // PORTING NOTE: Multi-tab only\n return t.createSynthesizedRemoteEventForCurrentChange = function(e, n) {\n var r = new Map;\n return r.set(e, hn.createSynthesizedTargetChangeForCurrentChange(e, n)), new t(K.min(), r, an(), Ze(), sn());\n }, t;\n}(), hn = /** @class */ function() {\n function t(\n /**\n * An opaque, server-assigned token that allows watching a query to be resumed\n * after disconnecting without retransmitting all the data that matches the\n * query. The resume token essentially identifies a point in time from which\n * the server should resume sending results.\n */\n t, \n /**\n * The \"current\" (synced) status of this target. Note that \"current\"\n * has special meaning in the RPC protocol that implies that a target is\n * both up-to-date and consistent with the rest of the watch stream.\n */\n e, \n /**\n * The set of documents that were newly assigned to this target as part of\n * this remote event.\n */\n n, \n /**\n * The set of documents that were already assigned to this target but received\n * an update during this remote event.\n */\n r, \n /**\n * The set of documents that were removed from this target as part of this\n * remote event.\n */\n i) {\n this.resumeToken = t, this.current = e, this.addedDocuments = n, this.modifiedDocuments = r, \n this.removedDocuments = i\n /**\n * This method is used to create a synthesized TargetChanges that can be used to\n * apply a CURRENT status change to a View (for queries executed in a different\n * tab) or for new queries (to raise snapshots with correct CURRENT status).\n */;\n }\n return t.createSynthesizedTargetChangeForCurrentChange = function(e, n) {\n return new t(J.EMPTY_BYTE_STRING, n, sn(), sn(), sn());\n }, t;\n}(), fn = function(\n/** The new document applies to all of these targets. */\nt, \n/** The new document is removed from all of these targets. */\ne, \n/** The key of the document for this change. */\nn, \n/**\n * The new document or NoDocument if it was deleted. Is null if the\n * document went out of view without the server sending a new document.\n */\nr) {\n this.v = t, this.removedTargetIds = e, this.key = n, this.P = r;\n}, ln = function(t, e) {\n this.targetId = t, this.V = e;\n}, dn = function(\n/** What kind of change occurred to the watch target. */\nt, \n/** The target IDs that were added/removed/set. */\ne, \n/**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */\nn\n/** An RPC error indicating why the watch failed. */ , r) {\n void 0 === n && (n = J.EMPTY_BYTE_STRING), void 0 === r && (r = null), this.state = t, \n this.targetIds = e, this.resumeToken = n, this.cause = r;\n}, pn = /** @class */ function() {\n function t() {\n /**\n * The number of pending responses (adds or removes) that we are waiting on.\n * We only consider targets active that have no pending responses.\n */\n this.S = 0, \n /**\n * Keeps track of the document changes since the last raised snapshot.\n *\n * These changes are continuously updated as we receive document updates and\n * always reflect the current set of changes against the last issued snapshot.\n */\n this.D = mn(), \n /** See public getters for explanations of these fields. */\n this.C = J.EMPTY_BYTE_STRING, this.N = !1, \n /**\n * Whether this target state should be included in the next snapshot. We\n * initialize to true so that newly-added targets are included in the next\n * RemoteEvent.\n */\n this.k = !0;\n }\n return Object.defineProperty(t.prototype, \"current\", {\n /**\n * Whether this target has been marked 'current'.\n *\n * 'Current' has special meaning in the RPC protocol: It implies that the\n * Watch backend has sent us all changes up to the point at which the target\n * was added and that the target is consistent with the rest of the watch\n * stream.\n */\n get: function() {\n return this.N;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"resumeToken\", {\n /** The last resume token sent to us for this target. */ get: function() {\n return this.C;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"F\", {\n /** Whether this target has pending target adds or target removes. */ get: function() {\n return 0 !== this.S;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"$\", {\n /** Whether we have modified any state that should trigger a snapshot. */ get: function() {\n return this.k;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Applies the resume token to the TargetChange, but only when it has a new\n * value. Empty resumeTokens are discarded.\n */\n t.prototype.O = function(t) {\n t.approximateByteSize() > 0 && (this.k = !0, this.C = t);\n }, \n /**\n * Creates a target change from the current set of changes.\n *\n * To reset the document changes after raising this snapshot, call\n * `clearPendingChanges()`.\n */\n t.prototype.M = function() {\n var t = sn(), e = sn(), n = sn();\n return this.D.forEach((function(r, i) {\n switch (i) {\n case 0 /* Added */ :\n t = t.add(r);\n break;\n\n case 2 /* Modified */ :\n e = e.add(r);\n break;\n\n case 1 /* Removed */ :\n n = n.add(r);\n break;\n\n default:\n O();\n }\n })), new hn(this.C, this.N, t, e, n);\n }, \n /**\n * Resets the document changes and sets `hasPendingChanges` to false.\n */\n t.prototype.L = function() {\n this.k = !1, this.D = mn();\n }, t.prototype.B = function(t, e) {\n this.k = !0, this.D = this.D.insert(t, e);\n }, t.prototype.q = function(t) {\n this.k = !0, this.D = this.D.remove(t);\n }, t.prototype.U = function() {\n this.S += 1;\n }, t.prototype.K = function() {\n this.S -= 1;\n }, t.prototype.j = function() {\n this.k = !0, this.N = !0;\n }, t;\n}(), yn = /** @class */ function() {\n function t(t) {\n this.W = t, \n /** The internal state of all tracked targets. */\n this.G = new Map, \n /** Keeps track of the documents to update since the last raised snapshot. */\n this.H = Ze(), \n /** A mapping of document keys to their set of target IDs. */\n this.J = vn(), \n /**\n * A list of targets with existence filter mismatches. These targets are\n * known to be inconsistent and their listens needs to be re-established by\n * RemoteStore.\n */\n this.Y = new $e(q)\n /**\n * Processes and adds the DocumentWatchChange to the current set of changes.\n */;\n }\n return t.prototype.X = function(t) {\n for (var e = 0, n = t.v; e < n.length; e++) {\n var r = n[e];\n t.P && t.P.isFoundDocument() ? this.Z(r, t.P) : this.tt(r, t.key, t.P);\n }\n for (var i = 0, o = t.removedTargetIds; i < o.length; i++) {\n r = o[i];\n this.tt(r, t.key, t.P);\n }\n }, \n /** Processes and adds the WatchTargetChange to the current set of changes. */ t.prototype.et = function(t) {\n var e = this;\n this.forEachTarget(t, (function(n) {\n var r = e.nt(n);\n switch (t.state) {\n case 0 /* NoChange */ :\n e.st(n) && r.O(t.resumeToken);\n break;\n\n case 1 /* Added */ :\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n r.K(), r.F || \n // We have a freshly added target, so we need to reset any state\n // that we had previously. This can happen e.g. when remove and add\n // back a target for existence filter mismatches.\n r.L(), r.O(t.resumeToken);\n break;\n\n case 2 /* Removed */ :\n // We need to keep track of removed targets to we can post-filter and\n // remove any target changes.\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n r.K(), r.F || e.removeTarget(n);\n break;\n\n case 3 /* Current */ :\n e.st(n) && (r.j(), r.O(t.resumeToken));\n break;\n\n case 4 /* Reset */ :\n e.st(n) && (\n // Reset the target and synthesizes removes for all existing\n // documents. The backend will re-add any documents that still\n // match the target before it sends the next global snapshot.\n e.it(n), r.O(t.resumeToken));\n break;\n\n default:\n O();\n }\n }));\n }, \n /**\n * Iterates over all targetIds that the watch change applies to: either the\n * targetIds explicitly listed in the change or the targetIds of all currently\n * active targets.\n */\n t.prototype.forEachTarget = function(t, e) {\n var n = this;\n t.targetIds.length > 0 ? t.targetIds.forEach(e) : this.G.forEach((function(t, r) {\n n.st(r) && e(r);\n }));\n }, \n /**\n * Handles existence filters and synthesizes deletes for filter mismatches.\n * Targets that are invalidated by filter mismatches are added to\n * `pendingTargetResets`.\n */\n t.prototype.rt = function(t) {\n var e = t.targetId, n = t.V.count, r = this.ot(e);\n if (r) {\n var i = r.target;\n if (xt(i)) if (0 === n) {\n // The existence filter told us the document does not exist. We deduce\n // that this document does not exist and apply a deleted document to\n // our updates. Without applying this deleted document there might be\n // another query that will raise this document as part of a snapshot\n // until it is resolved, essentially exposing inconsistency between\n // queries.\n var o = new ct(i.path);\n this.tt(e, o, Nt.newNoDocument(o, K.min()));\n } else P(1 === n); else this.ct(e) !== n && (\n // Existence filter mismatch: We reset the mapping and raise a new\n // snapshot with `isFromCache:true`.\n this.it(e), this.Y = this.Y.add(e));\n }\n }, \n /**\n * Converts the currently accumulated state into a remote event at the\n * provided snapshot version. Resets the accumulated changes before returning.\n */\n t.prototype.ut = function(t) {\n var e = this, n = new Map;\n this.G.forEach((function(r, i) {\n var o = e.ot(i);\n if (o) {\n if (r.current && xt(o.target)) {\n // Document queries for document that don't exist can produce an empty\n // result set. To update our local cache, we synthesize a document\n // delete if we have not previously received the document. This\n // resolves the limbo state of the document, removing it from\n // limboDocumentRefs.\n // TODO(dimond): Ideally we would have an explicit lookup target\n // instead resulting in an explicit delete message and we could\n // remove this special logic.\n var s = new ct(o.target.path);\n null !== e.H.get(s) || e.at(i, s) || e.tt(i, s, Nt.newNoDocument(s, t));\n }\n r.$ && (n.set(i, r.M()), r.L());\n }\n }));\n var r = sn();\n // We extract the set of limbo-only document updates as the GC logic\n // special-cases documents that do not appear in the target cache.\n // TODO(gsoltis): Expand on this comment once GC is available in the JS\n // client.\n this.J.forEach((function(t, n) {\n var i = !0;\n n.forEachWhile((function(t) {\n var n = e.ot(t);\n return !n || 2 /* LimboResolution */ === n.purpose || (i = !1, !1);\n })), i && (r = r.add(t));\n }));\n var i = new cn(t, n, this.Y, this.H, r);\n return this.H = Ze(), this.J = vn(), this.Y = new $e(q), i;\n }, \n /**\n * Adds the provided document to the internal list of document updates and\n * its document key to the given target's mapping.\n */\n // Visible for testing.\n t.prototype.Z = function(t, e) {\n if (this.st(t)) {\n var n = this.at(t, e.key) ? 2 /* Modified */ : 0 /* Added */;\n this.nt(t).B(e.key, n), this.H = this.H.insert(e.key, e), this.J = this.J.insert(e.key, this.ht(e.key).add(t));\n }\n }, \n /**\n * Removes the provided document from the target mapping. If the\n * document no longer matches the target, but the document's state is still\n * known (e.g. we know that the document was deleted or we received the change\n * that caused the filter mismatch), the new document can be provided\n * to update the remote document cache.\n */\n // Visible for testing.\n t.prototype.tt = function(t, e, n) {\n if (this.st(t)) {\n var r = this.nt(t);\n this.at(t, e) ? r.B(e, 1 /* Removed */) : \n // The document may have entered and left the target before we raised a\n // snapshot, so we can just ignore the change.\n r.q(e), this.J = this.J.insert(e, this.ht(e).delete(t)), n && (this.H = this.H.insert(e, n));\n }\n }, t.prototype.removeTarget = function(t) {\n this.G.delete(t);\n }, \n /**\n * Returns the current count of documents in the target. This includes both\n * the number of documents that the LocalStore considers to be part of the\n * target as well as any accumulated changes.\n */\n t.prototype.ct = function(t) {\n var e = this.nt(t).M();\n return this.W.getRemoteKeysForTarget(t).size + e.addedDocuments.size - e.removedDocuments.size;\n }, \n /**\n * Increment the number of acks needed from watch before we can consider the\n * server to be 'in-sync' with the client's active targets.\n */\n t.prototype.U = function(t) {\n this.nt(t).U();\n }, t.prototype.nt = function(t) {\n var e = this.G.get(t);\n return e || (e = new pn, this.G.set(t, e)), e;\n }, t.prototype.ht = function(t) {\n var e = this.J.get(t);\n return e || (e = new $e(q), this.J = this.J.insert(t, e)), e;\n }, \n /**\n * Verifies that the user is still interested in this target (by calling\n * `getTargetDataForTarget()`) and that we are not waiting for pending ADDs\n * from watch.\n */\n t.prototype.st = function(t) {\n var e = null !== this.ot(t);\n return e || C(\"WatchChangeAggregator\", \"Detected inactive target\", t), e;\n }, \n /**\n * Returns the TargetData for an active target (i.e. a target that the user\n * is still interested in that has no outstanding target change requests).\n */\n t.prototype.ot = function(t) {\n var e = this.G.get(t);\n return e && e.F ? null : this.W.lt(t);\n }, \n /**\n * Resets the state of a Watch target to its initial state (e.g. sets\n * 'current' to false, clears the resume token and removes its target mapping\n * from all documents).\n */\n t.prototype.it = function(t) {\n var e = this;\n this.G.set(t, new pn), this.W.getRemoteKeysForTarget(t).forEach((function(n) {\n e.tt(t, n, /*updatedDocument=*/ null);\n }));\n }, \n /**\n * Returns whether the LocalStore considers the document to be part of the\n * specified target.\n */\n t.prototype.at = function(t, e) {\n return this.W.getRemoteKeysForTarget(t).has(e);\n }, t;\n}();\n\n/**\n * A TargetChange specifies the set of changes for a specific target as part of\n * a RemoteEvent. These changes track which documents are added, modified or\n * removed, as well as the target's resume token and whether the target is\n * marked CURRENT.\n * The actual changes *to* documents are not part of the TargetChange since\n * documents may be part of multiple targets.\n */ function vn() {\n return new We(ct.comparator);\n}\n\nfunction mn() {\n return new We(ct.comparator);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var gn = {\n asc: \"ASCENDING\",\n desc: \"DESCENDING\"\n}, wn = {\n \"<\": \"LESS_THAN\",\n \"<=\": \"LESS_THAN_OR_EQUAL\",\n \">\": \"GREATER_THAN\",\n \">=\": \"GREATER_THAN_OR_EQUAL\",\n \"==\": \"EQUAL\",\n \"!=\": \"NOT_EQUAL\",\n \"array-contains\": \"ARRAY_CONTAINS\",\n in: \"IN\",\n \"not-in\": \"NOT_IN\",\n \"array-contains-any\": \"ARRAY_CONTAINS_ANY\"\n}, bn = function(t, e) {\n this.databaseId = t, this.I = e;\n};\n\n/**\n * This class generates JsonObject values for the Datastore API suitable for\n * sending to either GRPC stub methods or via the JSON/HTTP REST API.\n *\n * The serializer supports both Protobuf.js and Proto3 JSON formats. By\n * setting `useProto3Json` to true, the serializer will use the Proto3 JSON\n * format.\n *\n * For a description of the Proto3 JSON format check\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n *\n * TODO(klimt): We can remove the databaseId argument if we keep the full\n * resource name in documents.\n */\n/**\n * Returns a value for a Date that's appropriate to put into a proto.\n */\nfunction In(t, e) {\n return t.I ? new Date(1e3 * e.seconds).toISOString().replace(/\\.\\d*/, \"\").replace(\"Z\", \"\") + \".\" + (\"000000000\" + e.nanoseconds).slice(-9) + \"Z\" : {\n seconds: \"\" + e.seconds,\n nanos: e.nanoseconds\n };\n}\n\n/**\n * Returns a value for bytes that's appropriate to put in a proto.\n *\n * Visible for testing.\n */ function Tn(t, e) {\n return t.I ? e.toBase64() : e.toUint8Array();\n}\n\n/**\n * Returns a ByteString based on the proto string value.\n */ function _n(t, e) {\n return In(t, e.toTimestamp());\n}\n\nfunction En(t) {\n return P(!!t), K.fromTimestamp(function(t) {\n var e = tt(t);\n return new j(e.seconds, e.nanos);\n }(t));\n}\n\nfunction Sn(t, e) {\n return function(t) {\n return new H([ \"projects\", t.projectId, \"databases\", t.database ]);\n }(t).child(\"documents\").child(e).canonicalString();\n}\n\nfunction Nn(t) {\n var e = H.fromString(t);\n return P($n(e)), e;\n}\n\nfunction Dn(t, e) {\n return Sn(t.databaseId, e.path);\n}\n\nfunction An(t, e) {\n var n = Nn(e);\n if (n.get(1) !== t.databaseId.projectId) throw new D(N.INVALID_ARGUMENT, \"Tried to deserialize key from different project: \" + n.get(1) + \" vs \" + t.databaseId.projectId);\n if (n.get(3) !== t.databaseId.database) throw new D(N.INVALID_ARGUMENT, \"Tried to deserialize key from different database: \" + n.get(3) + \" vs \" + t.databaseId.database);\n return new ct(Rn(n));\n}\n\nfunction kn(t, e) {\n return Sn(t.databaseId, e);\n}\n\nfunction Cn(t) {\n var e = Nn(t);\n // In v1beta1 queries for collections at the root did not have a trailing\n // \"/documents\". In v1 all resource paths contain \"/documents\". Preserve the\n // ability to read the v1beta1 form for compatibility with queries persisted\n // in the local target cache.\n return 4 === e.length ? H.emptyPath() : Rn(e);\n}\n\nfunction xn(t) {\n return new H([ \"projects\", t.databaseId.projectId, \"databases\", t.databaseId.database ]).canonicalString();\n}\n\nfunction Rn(t) {\n return P(t.length > 4 && \"documents\" === t.get(4)), t.popFirst(5)\n /** Creates a Document proto from key and fields (but no create/update time) */;\n}\n\nfunction Ln(t, e, n) {\n return {\n name: Dn(t, e),\n fields: n.value.mapValue.fields\n };\n}\n\nfunction On(t, e, n) {\n var r = An(t, e.name), i = En(e.updateTime), o = new Et({\n mapValue: {\n fields: e.fields\n }\n }), s = Nt.newFoundDocument(r, i, o);\n return n && s.setHasCommittedMutations(), n ? s.setHasCommittedMutations() : s;\n}\n\nfunction Pn(t, e) {\n var n;\n if (e instanceof Pe) n = {\n update: Ln(t, e.key, e.value)\n }; else if (e instanceof je) n = {\n delete: Dn(t, e.key)\n }; else if (e instanceof Fe) n = {\n update: Ln(t, e.key, e.data),\n updateMask: Yn(e.fieldMask)\n }; else {\n if (!(e instanceof Ke)) return O();\n n = {\n verify: Dn(t, e.key)\n };\n }\n return e.fieldTransforms.length > 0 && (n.updateTransforms = e.fieldTransforms.map((function(t) {\n return function(t, e) {\n var n = e.transform;\n if (n instanceof me) return {\n fieldPath: e.field.canonicalString(),\n setToServerValue: \"REQUEST_TIME\"\n };\n if (n instanceof ge) return {\n fieldPath: e.field.canonicalString(),\n appendMissingElements: {\n values: n.elements\n }\n };\n if (n instanceof be) return {\n fieldPath: e.field.canonicalString(),\n removeAllFromArray: {\n values: n.elements\n }\n };\n if (n instanceof Te) return {\n fieldPath: e.field.canonicalString(),\n increment: n.A\n };\n throw O();\n }(0, t);\n }))), e.precondition.isNone || (n.currentDocument = function(t, e) {\n return void 0 !== e.updateTime ? {\n updateTime: _n(t, e.updateTime)\n } : void 0 !== e.exists ? {\n exists: e.exists\n } : O();\n }(t, e.precondition)), n;\n}\n\nfunction Fn(t, e) {\n var n = e.currentDocument ? function(t) {\n return void 0 !== t.updateTime ? De.updateTime(En(t.updateTime)) : void 0 !== t.exists ? De.exists(t.exists) : De.none();\n }(e.currentDocument) : De.none(), r = e.updateTransforms ? e.updateTransforms.map((function(e) {\n return function(t, e) {\n var n = null;\n if (\"setToServerValue\" in e) P(\"REQUEST_TIME\" === e.setToServerValue), n = new me; else if (\"appendMissingElements\" in e) {\n var r = e.appendMissingElements.values || [];\n n = new ge(r);\n } else if (\"removeAllFromArray\" in e) {\n var i = e.removeAllFromArray.values || [];\n n = new be(i);\n } else \"increment\" in e ? n = new Te(t, e.increment) : O();\n var o = $.fromServerFormat(e.fieldPath);\n return new Se(o, n);\n }(t, e);\n })) : [];\n if (e.update) {\n e.update.name;\n var i = An(t, e.update.name), o = new Et({\n mapValue: {\n fields: e.update.fields\n }\n });\n if (e.updateMask) {\n var s = function(t) {\n var e = t.fieldPaths || [];\n return new X(e.map((function(t) {\n return $.fromServerFormat(t);\n })));\n }(e.updateMask);\n return new Fe(i, o, s, n, r);\n }\n return new Pe(i, o, n, r);\n }\n if (e.delete) {\n var u = An(t, e.delete);\n return new je(u, n);\n }\n if (e.verify) {\n var a = An(t, e.verify);\n return new Ke(a, n);\n }\n return O();\n}\n\nfunction Mn(t, e) {\n return {\n documents: [ kn(t, e.path) ]\n };\n}\n\nfunction Vn(t, e) {\n // Dissect the path into parent, collectionId, and optional key filter.\n var n = {\n structuredQuery: {}\n }, r = e.path;\n null !== e.collectionGroup ? (n.parent = kn(t, r), n.structuredQuery.from = [ {\n collectionId: e.collectionGroup,\n allDescendants: !0\n } ]) : (n.parent = kn(t, r.popLast()), n.structuredQuery.from = [ {\n collectionId: r.lastSegment()\n } ]);\n var i = function(t) {\n if (0 !== t.length) {\n var e = t.map((function(t) {\n // visible for testing\n return function(t) {\n if (\"==\" /* EQUAL */ === t.op) {\n if (It(t.value)) return {\n unaryFilter: {\n field: Qn(t.field),\n op: \"IS_NAN\"\n }\n };\n if (bt(t.value)) return {\n unaryFilter: {\n field: Qn(t.field),\n op: \"IS_NULL\"\n }\n };\n } else if (\"!=\" /* NOT_EQUAL */ === t.op) {\n if (It(t.value)) return {\n unaryFilter: {\n field: Qn(t.field),\n op: \"IS_NOT_NAN\"\n }\n };\n if (bt(t.value)) return {\n unaryFilter: {\n field: Qn(t.field),\n op: \"IS_NOT_NULL\"\n }\n };\n }\n return {\n fieldFilter: {\n field: Qn(t.field),\n op: Gn(t.op),\n value: t.value\n }\n };\n }(t);\n }));\n return 1 === e.length ? e[0] : {\n compositeFilter: {\n op: \"AND\",\n filters: e\n }\n };\n }\n }(e.filters);\n i && (n.structuredQuery.where = i);\n var o = function(t) {\n if (0 !== t.length) return t.map((function(t) {\n // visible for testing\n return function(t) {\n return {\n field: Qn(t.field),\n direction: Kn(t.dir)\n };\n }(t);\n }));\n }(e.orderBy);\n o && (n.structuredQuery.orderBy = o);\n var s = function(t, e) {\n return t.I || st(e) ? e : {\n value: e\n };\n }(t, e.limit);\n return null !== s && (n.structuredQuery.limit = s), e.startAt && (n.structuredQuery.startAt = Bn(e.startAt)), \n e.endAt && (n.structuredQuery.endAt = Bn(e.endAt)), n;\n}\n\nfunction qn(t) {\n var e = Cn(t.parent), n = t.structuredQuery, r = n.from ? n.from.length : 0, i = null;\n if (r > 0) {\n P(1 === r);\n var o = n.from[0];\n o.allDescendants ? i = o.collectionId : e = e.child(o.collectionId);\n }\n var s = [];\n n.where && (s = Un(n.where));\n var u = [];\n n.orderBy && (u = n.orderBy.map((function(t) {\n return function(t) {\n return new Kt(zn(t.field), \n // visible for testing\n function(t) {\n switch (t) {\n case \"ASCENDING\":\n return \"asc\" /* ASCENDING */;\n\n case \"DESCENDING\":\n return \"desc\" /* DESCENDING */;\n\n default:\n return;\n }\n }(t.direction));\n }(t);\n })));\n var a = null;\n n.limit && (a = function(t) {\n var e;\n return st(e = \"object\" == typeof t ? t.value : t) ? null : e;\n }(n.limit));\n var c = null;\n n.startAt && (c = jn(n.startAt));\n var h = null;\n return n.endAt && (h = jn(n.endAt)), Ht(e, i, u, s, a, \"F\" /* First */ , c, h);\n}\n\nfunction Un(t) {\n return t ? void 0 !== t.unaryFilter ? [ Hn(t) ] : void 0 !== t.fieldFilter ? [ Wn(t) ] : void 0 !== t.compositeFilter ? t.compositeFilter.filters.map((function(t) {\n return Un(t);\n })).reduce((function(t, e) {\n return t.concat(e);\n })) : O() : [];\n}\n\nfunction Bn(t) {\n return {\n before: t.before,\n values: t.position\n };\n}\n\nfunction jn(t) {\n var e = !!t.before, n = t.values || [];\n return new Bt(n, e);\n}\n\n// visible for testing\nfunction Kn(t) {\n return gn[t];\n}\n\nfunction Gn(t) {\n return wn[t];\n}\n\nfunction Qn(t) {\n return {\n fieldPath: t.canonicalString()\n };\n}\n\nfunction zn(t) {\n return $.fromServerFormat(t.fieldPath);\n}\n\nfunction Wn(t) {\n return Rt.create(zn(t.fieldFilter.field), function(t) {\n switch (t) {\n case \"EQUAL\":\n return \"==\" /* EQUAL */;\n\n case \"NOT_EQUAL\":\n return \"!=\" /* NOT_EQUAL */;\n\n case \"GREATER_THAN\":\n return \">\" /* GREATER_THAN */;\n\n case \"GREATER_THAN_OR_EQUAL\":\n return \">=\" /* GREATER_THAN_OR_EQUAL */;\n\n case \"LESS_THAN\":\n return \"<\" /* LESS_THAN */;\n\n case \"LESS_THAN_OR_EQUAL\":\n return \"<=\" /* LESS_THAN_OR_EQUAL */;\n\n case \"ARRAY_CONTAINS\":\n return \"array-contains\" /* ARRAY_CONTAINS */;\n\n case \"IN\":\n return \"in\" /* IN */;\n\n case \"NOT_IN\":\n return \"not-in\" /* NOT_IN */;\n\n case \"ARRAY_CONTAINS_ANY\":\n return \"array-contains-any\" /* ARRAY_CONTAINS_ANY */;\n\n case \"OPERATOR_UNSPECIFIED\":\n default:\n return O();\n }\n }(t.fieldFilter.op), t.fieldFilter.value);\n}\n\nfunction Hn(t) {\n switch (t.unaryFilter.op) {\n case \"IS_NAN\":\n var e = zn(t.unaryFilter.field);\n return Rt.create(e, \"==\" /* EQUAL */ , {\n doubleValue: NaN\n });\n\n case \"IS_NULL\":\n var n = zn(t.unaryFilter.field);\n return Rt.create(n, \"==\" /* EQUAL */ , {\n nullValue: \"NULL_VALUE\"\n });\n\n case \"IS_NOT_NAN\":\n var r = zn(t.unaryFilter.field);\n return Rt.create(r, \"!=\" /* NOT_EQUAL */ , {\n doubleValue: NaN\n });\n\n case \"IS_NOT_NULL\":\n var i = zn(t.unaryFilter.field);\n return Rt.create(i, \"!=\" /* NOT_EQUAL */ , {\n nullValue: \"NULL_VALUE\"\n });\n\n case \"OPERATOR_UNSPECIFIED\":\n default:\n return O();\n }\n}\n\nfunction Yn(t) {\n var e = [];\n return t.fields.forEach((function(t) {\n return e.push(t.canonicalString());\n })), {\n fieldPaths: e\n };\n}\n\nfunction $n(t) {\n // Resource names have at least 4 components (project ID, database ID)\n return t.length >= 4 && \"projects\" === t.get(0) && \"databases\" === t.get(2);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Encodes a resource path into a IndexedDb-compatible string form.\n */ function Xn(t) {\n for (var e = \"\", n = 0; n < t.length; n++) e.length > 0 && (e = Zn(e)), e = Jn(t.get(n), e);\n return Zn(e);\n}\n\n/** Encodes a single segment of a resource path into the given result */ function Jn(t, e) {\n for (var n = e, r = t.length, i = 0; i < r; i++) {\n var o = t.charAt(i);\n switch (o) {\n case \"\\0\":\n n += \"\u0001\u0010\";\n break;\n\n case \"\u0001\":\n n += \"\u0001\u0011\";\n break;\n\n default:\n n += o;\n }\n }\n return n;\n}\n\n/** Encodes a path separator into the given result */ function Zn(t) {\n return t + \"\u0001\u0001\";\n}\n\n/**\n * Decodes the given IndexedDb-compatible string form of a resource path into\n * a ResourcePath instance. Note that this method is not suitable for use with\n * decoding resource names from the server; those are One Platform format\n * strings.\n */ function tr(t) {\n // Event the empty path must encode as a path of at least length 2. A path\n // with exactly 2 must be the empty path.\n var e = t.length;\n if (P(e >= 2), 2 === e) return P(\"\u0001\" === t.charAt(0) && \"\u0001\" === t.charAt(1)), H.emptyPath();\n // Escape characters cannot exist past the second-to-last position in the\n // source value.\n for (var n = e - 2, r = [], i = \"\", o = 0; o < e; ) {\n // The last two characters of a valid encoded path must be a separator, so\n // there must be an end to this segment.\n var s = t.indexOf(\"\u0001\", o);\n switch ((s < 0 || s > n) && O(), t.charAt(s + 1)) {\n case \"\u0001\":\n var u = t.substring(o, s), a = void 0;\n 0 === i.length ? \n // Avoid copying for the common case of a segment that excludes \\0\n // and \\001\n a = u : (a = i += u, i = \"\"), r.push(a);\n break;\n\n case \"\u0010\":\n i += t.substring(o, s), i += \"\\0\";\n break;\n\n case \"\u0011\":\n // The escape character can be used in the output to encode itself.\n i += t.substring(o, s + 1);\n break;\n\n default:\n O();\n }\n o = s + 2;\n }\n return new H(r);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Schema Version for the Web client:\n * 1. Initial version including Mutation Queue, Query Cache, and Remote\n * Document Cache\n * 2. Used to ensure a targetGlobal object exists and add targetCount to it. No\n * longer required because migration 3 unconditionally clears it.\n * 3. Dropped and re-created Query Cache to deal with cache corruption related\n * to limbo resolution. Addresses\n * https://github.com/firebase/firebase-ios-sdk/issues/1548\n * 4. Multi-Tab Support.\n * 5. Removal of held write acks.\n * 6. Create document global for tracking document cache size.\n * 7. Ensure every cached document has a sentinel row with a sequence number.\n * 8. Add collection-parent index for Collection Group queries.\n * 9. Change RemoteDocumentChanges store to be keyed by readTime rather than\n * an auto-incrementing ID. This is required for Index-Free queries.\n * 10. Rewrite the canonical IDs to the explicit Protobuf-based format.\n * 11. Add bundles and named_queries for bundle support.\n */\n/**\n * Wrapper class to store timestamps (seconds and nanos) in IndexedDb objects.\n */ var er = function(t, e) {\n this.seconds = t, this.nanoseconds = e;\n}, nr = function(t, \n/** Whether to allow shared access from multiple tabs. */\ne, n) {\n this.ownerId = t, this.allowTabSynchronization = e, this.leaseTimestampMs = n;\n};\n\n/**\n * A singleton object to be stored in the 'owner' store in IndexedDb.\n *\n * A given database can have a single primary tab assigned at a given time. That\n * tab must validate that it is still holding the primary lease before every\n * operation that requires locked access. The primary tab should regularly\n * write an updated timestamp to this lease to prevent other tabs from\n * \"stealing\" the primary lease\n */\n/**\n * Name of the IndexedDb object store.\n *\n * Note that the name 'owner' is chosen to ensure backwards compatibility with\n * older clients that only supported single locked access to the persistence\n * layer.\n */\nnr.store = \"owner\", \n/**\n * The key string used for the single object that exists in the\n * DbPrimaryClient store.\n */\nnr.key = \"owner\";\n\n/**\n * An object to be stored in the 'mutationQueues' store in IndexedDb.\n *\n * Each user gets a single queue of MutationBatches to apply to the server.\n * DbMutationQueue tracks the metadata about the queue.\n */\nvar rr = function(\n/**\n * The normalized user ID to which this queue belongs.\n */\nt, \n/**\n * An identifier for the highest numbered batch that has been acknowledged\n * by the server. All MutationBatches in this queue with batchIds less\n * than or equal to this value are considered to have been acknowledged by\n * the server.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\ne, \n/**\n * A stream token that was previously sent by the server.\n *\n * See StreamingWriteRequest in datastore.proto for more details about\n * usage.\n *\n * After sending this token, earlier tokens may not be used anymore so\n * only a single stream token is retained.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\nn) {\n this.userId = t, this.lastAcknowledgedBatchId = e, this.lastStreamToken = n;\n};\n\n/** Name of the IndexedDb object store. */ rr.store = \"mutationQueues\", \n/** Keys are automatically assigned via the userId property. */\nrr.keyPath = \"userId\";\n\n/**\n * An object to be stored in the 'mutations' store in IndexedDb.\n *\n * Represents a batch of user-level mutations intended to be sent to the server\n * in a single write. Each user-level batch gets a separate DbMutationBatch\n * with a new batchId.\n */\nvar ir = function(\n/**\n * The normalized user ID to which this batch belongs.\n */\nt, \n/**\n * An identifier for this batch, allocated using an auto-generated key.\n */\ne, \n/**\n * The local write time of the batch, stored as milliseconds since the\n * epoch.\n */\nn, \n/**\n * A list of \"mutations\" that represent a partial base state from when this\n * write batch was initially created. During local application of the write\n * batch, these baseMutations are applied prior to the real writes in order\n * to override certain document fields from the remote document cache. This\n * is necessary in the case of non-idempotent writes (e.g. `increment()`\n * transforms) to make sure that the local view of the modified documents\n * doesn't flicker if the remote document cache receives the result of the\n * non-idempotent write before the write is removed from the queue.\n *\n * These mutations are never sent to the backend.\n */\nr, \n/**\n * A list of mutations to apply. All mutations will be applied atomically.\n *\n * Mutations are serialized via toMutation().\n */\ni) {\n this.userId = t, this.batchId = e, this.localWriteTimeMs = n, this.baseMutations = r, \n this.mutations = i;\n};\n\n/** Name of the IndexedDb object store. */ ir.store = \"mutations\", \n/** Keys are automatically assigned via the userId, batchId properties. */\nir.keyPath = \"batchId\", \n/** The index name for lookup of mutations by user. */\nir.userMutationsIndex = \"userMutationsIndex\", \n/** The user mutations index is keyed by [userId, batchId] pairs. */\nir.userMutationsKeyPath = [ \"userId\", \"batchId\" ];\n\n/**\n * An object to be stored in the 'documentMutations' store in IndexedDb.\n *\n * A manually maintained index of all the mutation batches that affect a given\n * document key. The rows in this table are references based on the contents of\n * DbMutationBatch.mutations.\n */\nvar or = /** @class */ function() {\n function t() {}\n /**\n * Creates a [userId] key for use in the DbDocumentMutations index to iterate\n * over all of a user's document mutations.\n */ return t.prefixForUser = function(t) {\n return [ t ];\n }, \n /**\n * Creates a [userId, encodedPath] key for use in the DbDocumentMutations\n * index to iterate over all at document mutations for a given path or lower.\n */\n t.prefixForPath = function(t, e) {\n return [ t, Xn(e) ];\n }, \n /**\n * Creates a full index key of [userId, encodedPath, batchId] for inserting\n * and deleting into the DbDocumentMutations index.\n */\n t.key = function(t, e, n) {\n return [ t, Xn(e), n ];\n }, t;\n}();\n\nor.store = \"documentMutations\", \n/**\n * Because we store all the useful information for this store in the key,\n * there is no useful information to store as the value. The raw (unencoded)\n * path cannot be stored because IndexedDb doesn't store prototype\n * information.\n */\nor.PLACEHOLDER = new or;\n\n/**\n * Represents the known absence of a document at a particular version.\n * Stored in IndexedDb as part of a DbRemoteDocument object.\n */\nvar sr = function(t, e) {\n this.path = t, this.readTime = e;\n}, ur = function(t, e) {\n this.path = t, this.version = e;\n}, ar = \n// TODO: We are currently storing full document keys almost three times\n// (once as part of the primary key, once - partly - as `parentPath` and once\n// inside the encoded documents). During our next migration, we should\n// rewrite the primary key as parentPath + document ID which would allow us\n// to drop one value.\nfunction(\n/**\n * Set to an instance of DbUnknownDocument if the data for a document is\n * not known, but it is known that a document exists at the specified\n * version (e.g. it had a successful update applied to it)\n */\nt, \n/**\n * Set to an instance of a DbNoDocument if it is known that no document\n * exists.\n */\ne, \n/**\n * Set to an instance of a Document if there's a cached version of the\n * document.\n */\nn, \n/**\n * Documents that were written to the remote document store based on\n * a write acknowledgment are marked with `hasCommittedMutations`. These\n * documents are potentially inconsistent with the backend's copy and use\n * the write's commit version as their document version.\n */\nr, \n/**\n * When the document was read from the backend. Undefined for data written\n * prior to schema version 9.\n */\ni, \n/**\n * The path of the collection this document is part of. Undefined for data\n * written prior to schema version 9.\n */\no) {\n this.unknownDocument = t, this.noDocument = e, this.document = n, this.hasCommittedMutations = r, \n this.readTime = i, this.parentPath = o;\n};\n\n/**\n * Represents a document that is known to exist but whose data is unknown.\n * Stored in IndexedDb as part of a DbRemoteDocument object.\n */ ar.store = \"remoteDocuments\", \n/**\n * An index that provides access to all entries sorted by read time (which\n * corresponds to the last modification time of each row).\n *\n * This index is used to provide a changelog for Multi-Tab.\n */\nar.readTimeIndex = \"readTimeIndex\", ar.readTimeIndexPath = \"readTime\", \n/**\n * An index that provides access to documents in a collection sorted by read\n * time.\n *\n * This index is used to allow the RemoteDocumentCache to fetch newly changed\n * documents in a collection.\n */\nar.collectionReadTimeIndex = \"collectionReadTimeIndex\", ar.collectionReadTimeIndexPath = [ \"parentPath\", \"readTime\" ];\n\n/**\n * Contains a single entry that has metadata about the remote document cache.\n */\nvar cr = \n/**\n * @param byteSize - Approximately the total size in bytes of all the\n * documents in the document cache.\n */\nfunction(t) {\n this.byteSize = t;\n};\n\ncr.store = \"remoteDocumentGlobal\", cr.key = \"remoteDocumentGlobalKey\";\n\n/**\n * An object to be stored in the 'targets' store in IndexedDb.\n *\n * This is based on and should be kept in sync with the proto used in the iOS\n * client.\n *\n * Each query the client listens to against the server is tracked on disk so\n * that the query can be efficiently resumed on restart.\n */\nvar hr = function(\n/**\n * An auto-generated sequential numeric identifier for the query.\n *\n * Queries are stored using their canonicalId as the key, but these\n * canonicalIds can be quite long so we additionally assign a unique\n * queryId which can be used by referenced data structures (e.g.\n * indexes) to minimize the on-disk cost.\n */\nt, \n/**\n * The canonical string representing this query. This is not unique.\n */\ne, \n/**\n * The last readTime received from the Watch Service for this query.\n *\n * This is the same value as TargetChange.read_time in the protos.\n */\nn, \n/**\n * An opaque, server-assigned token that allows watching a query to be\n * resumed after disconnecting without retransmitting all the data\n * that matches the query. The resume token essentially identifies a\n * point in time from which the server should resume sending results.\n *\n * This is related to the snapshotVersion in that the resumeToken\n * effectively also encodes that value, but the resumeToken is opaque\n * and sometimes encodes additional information.\n *\n * A consequence of this is that the resumeToken should be used when\n * asking the server to reason about where this client is in the watch\n * stream, but the client should use the snapshotVersion for its own\n * purposes.\n *\n * This is the same value as TargetChange.resume_token in the protos.\n */\nr, \n/**\n * A sequence number representing the last time this query was\n * listened to, used for garbage collection purposes.\n *\n * Conventionally this would be a timestamp value, but device-local\n * clocks are unreliable and they must be able to create new listens\n * even while disconnected. Instead this should be a monotonically\n * increasing number that's incremented on each listen call.\n *\n * This is different from the queryId since the queryId is an\n * immutable identifier assigned to the Query on first use while\n * lastListenSequenceNumber is updated every time the query is\n * listened to.\n */\ni, \n/**\n * Denotes the maximum snapshot version at which the associated query view\n * contained no limbo documents. Undefined for data written prior to\n * schema version 9.\n */\no, \n/**\n * The query for this target.\n *\n * Because canonical ids are not unique we must store the actual query. We\n * use the proto to have an object we can persist without having to\n * duplicate translation logic to and from a `Query` object.\n */\ns) {\n this.targetId = t, this.canonicalId = e, this.readTime = n, this.resumeToken = r, \n this.lastListenSequenceNumber = i, this.lastLimboFreeSnapshotVersion = o, this.query = s;\n};\n\nhr.store = \"targets\", \n/** Keys are automatically assigned via the targetId property. */\nhr.keyPath = \"targetId\", \n/** The name of the queryTargets index. */\nhr.queryTargetsIndexName = \"queryTargetsIndex\", \n/**\n * The index of all canonicalIds to the targets that they match. This is not\n * a unique mapping because canonicalId does not promise a unique name for all\n * possible queries, so we append the targetId to make the mapping unique.\n */\nhr.queryTargetsKeyPath = [ \"canonicalId\", \"targetId\" ];\n\n/**\n * An object representing an association between a target and a document, or a\n * sentinel row marking the last sequence number at which a document was used.\n * Each document cached must have a corresponding sentinel row before lru\n * garbage collection is enabled.\n *\n * The target associations and sentinel rows are co-located so that orphaned\n * documents and their sequence numbers can be identified efficiently via a scan\n * of this store.\n */\nvar fr = function(\n/**\n * The targetId identifying a target or 0 for a sentinel row.\n */\nt, \n/**\n * The path to the document, as encoded in the key.\n */\ne, \n/**\n * If this is a sentinel row, this should be the sequence number of the last\n * time the document specified by `path` was used. Otherwise, it should be\n * `undefined`.\n */\nn) {\n this.targetId = t, this.path = e, this.sequenceNumber = n;\n};\n\n/** Name of the IndexedDb object store. */ fr.store = \"targetDocuments\", \n/** Keys are automatically assigned via the targetId, path properties. */\nfr.keyPath = [ \"targetId\", \"path\" ], \n/** The index name for the reverse index. */\nfr.documentTargetsIndex = \"documentTargetsIndex\", \n/** We also need to create the reverse index for these properties. */\nfr.documentTargetsKeyPath = [ \"path\", \"targetId\" ];\n\n/**\n * A record of global state tracked across all Targets, tracked separately\n * to avoid the need for extra indexes.\n *\n * This should be kept in-sync with the proto used in the iOS client.\n */\nvar lr = function(\n/**\n * The highest numbered target id across all targets.\n *\n * See DbTarget.targetId.\n */\nt, \n/**\n * The highest numbered lastListenSequenceNumber across all targets.\n *\n * See DbTarget.lastListenSequenceNumber.\n */\ne, \n/**\n * A global snapshot version representing the last consistent snapshot we\n * received from the backend. This is monotonically increasing and any\n * snapshots received from the backend prior to this version (e.g. for\n * targets resumed with a resumeToken) should be suppressed (buffered)\n * until the backend has caught up to this snapshot version again. This\n * prevents our cache from ever going backwards in time.\n */\nn, \n/**\n * The number of targets persisted.\n */\nr) {\n this.highestTargetId = t, this.highestListenSequenceNumber = e, this.lastRemoteSnapshotVersion = n, \n this.targetCount = r;\n};\n\n/**\n * The key string used for the single object that exists in the\n * DbTargetGlobal store.\n */ lr.key = \"targetGlobalKey\", lr.store = \"targetGlobal\";\n\n/**\n * An object representing an association between a Collection id (e.g. 'messages')\n * to a parent path (e.g. '/chats/123') that contains it as a (sub)collection.\n * This is used to efficiently find all collections to query when performing\n * a Collection Group query.\n */\nvar dr = function(\n/**\n * The collectionId (e.g. 'messages')\n */\nt, \n/**\n * The path to the parent (either a document location or an empty path for\n * a root-level collection).\n */\ne) {\n this.collectionId = t, this.parent = e;\n};\n\n/** Name of the IndexedDb object store. */ dr.store = \"collectionParents\", \n/** Keys are automatically assigned via the collectionId, parent properties. */\ndr.keyPath = [ \"collectionId\", \"parent\" ];\n\n/**\n * A record of the metadata state of each client.\n *\n * PORTING NOTE: This is used to synchronize multi-tab state and does not need\n * to be ported to iOS or Android.\n */\nvar pr = function(\n// Note: Previous schema versions included a field\n// \"lastProcessedDocumentChangeId\". Don't use anymore.\n/** The auto-generated client id assigned at client startup. */\nt, \n/** The last time this state was updated. */\ne, \n/** Whether the client's network connection is enabled. */\nn, \n/** Whether this client is running in a foreground tab. */\nr) {\n this.clientId = t, this.updateTimeMs = e, this.networkEnabled = n, this.inForeground = r;\n};\n\n/** Name of the IndexedDb object store. */ pr.store = \"clientMetadata\", \n/** Keys are automatically assigned via the clientId properties. */\npr.keyPath = \"clientId\";\n\n/**\n * A object representing a bundle loaded by the SDK.\n */\nvar yr = function(\n/** The ID of the loaded bundle. */\nt, \n/** The create time of the loaded bundle. */\ne, \n/** The schema version of the loaded bundle. */\nn) {\n this.bundleId = t, this.createTime = e, this.version = n;\n};\n\n/** Name of the IndexedDb object store. */ yr.store = \"bundles\", yr.keyPath = \"bundleId\";\n\n/**\n * A object representing a named query loaded by the SDK via a bundle.\n */\nvar vr = function(\n/** The name of the query. */\nt, \n/** The read time of the results saved in the bundle from the named query. */\ne, \n/** The query saved in the bundle. */\nn) {\n this.name = t, this.readTime = e, this.bundledQuery = n;\n};\n\n/** Name of the IndexedDb object store. */ vr.store = \"namedQueries\", vr.keyPath = \"name\";\n\n// Visible for testing\nvar mr = e(e([], e(e([], e(e([], e(e([], [ rr.store, ir.store, or.store, ar.store, hr.store, nr.store, lr.store, fr.store ]), [ pr.store ])), [ cr.store ])), [ dr.store ])), [ yr.store, vr.store ]), gr = \"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.\", wr = /** @class */ function() {\n function t() {\n this.onCommittedListeners = [];\n }\n return t.prototype.addOnCommittedListener = function(t) {\n this.onCommittedListeners.push(t);\n }, t.prototype.raiseOnCommittedEvent = function() {\n this.onCommittedListeners.forEach((function(t) {\n return t();\n }));\n }, t;\n}(), br = function() {\n var t = this;\n this.promise = new Promise((function(e, n) {\n t.resolve = e, t.reject = n;\n }));\n}, Ir = /** @class */ function() {\n function t(t) {\n var e = this;\n // NOTE: next/catchCallback will always point to our own wrapper functions,\n // not the user's raw next() or catch() callbacks.\n this.nextCallback = null, this.catchCallback = null, \n // When the operation resolves, we'll set result or error and mark isDone.\n this.result = void 0, this.error = void 0, this.isDone = !1, \n // Set to true when .then() or .catch() are called and prevents additional\n // chaining.\n this.callbackAttached = !1, t((function(t) {\n e.isDone = !0, e.result = t, e.nextCallback && \n // value should be defined unless T is Void, but we can't express\n // that in the type system.\n e.nextCallback(t);\n }), (function(t) {\n e.isDone = !0, e.error = t, e.catchCallback && e.catchCallback(t);\n }));\n }\n return t.prototype.catch = function(t) {\n return this.next(void 0, t);\n }, t.prototype.next = function(e, n) {\n var r = this;\n return this.callbackAttached && O(), this.callbackAttached = !0, this.isDone ? this.error ? this.wrapFailure(n, this.error) : this.wrapSuccess(e, this.result) : new t((function(t, i) {\n r.nextCallback = function(n) {\n r.wrapSuccess(e, n).next(t, i);\n }, r.catchCallback = function(e) {\n r.wrapFailure(n, e).next(t, i);\n };\n }));\n }, t.prototype.toPromise = function() {\n var t = this;\n return new Promise((function(e, n) {\n t.next(e, n);\n }));\n }, t.prototype.wrapUserFunction = function(e) {\n try {\n var n = e();\n return n instanceof t ? n : t.resolve(n);\n } catch (e) {\n return t.reject(e);\n }\n }, t.prototype.wrapSuccess = function(e, n) {\n return e ? this.wrapUserFunction((function() {\n return e(n);\n })) : t.resolve(n);\n }, t.prototype.wrapFailure = function(e, n) {\n return e ? this.wrapUserFunction((function() {\n return e(n);\n })) : t.reject(n);\n }, t.resolve = function(e) {\n return new t((function(t, n) {\n t(e);\n }));\n }, t.reject = function(e) {\n return new t((function(t, n) {\n n(e);\n }));\n }, t.waitFor = function(\n // Accept all Promise types in waitFor().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n e) {\n return new t((function(t, n) {\n var r = 0, i = 0, o = !1;\n e.forEach((function(e) {\n ++r, e.next((function() {\n ++i, o && i === r && t();\n }), (function(t) {\n return n(t);\n }));\n })), o = !0, i === r && t();\n }));\n }, \n /**\n * Given an array of predicate functions that asynchronously evaluate to a\n * boolean, implements a short-circuiting `or` between the results. Predicates\n * will be evaluated until one of them returns `true`, then stop. The final\n * result will be whether any of them returned `true`.\n */\n t.or = function(e) {\n for (var n = t.resolve(!1), r = function(e) {\n n = n.next((function(n) {\n return n ? t.resolve(n) : e();\n }));\n }, i = 0, o = e; i < o.length; i++) {\n r(o[i]);\n }\n return n;\n }, t.forEach = function(t, e) {\n var n = this, r = [];\n return t.forEach((function(t, i) {\n r.push(e.call(n, t, i));\n })), this.waitFor(r);\n }, t;\n}(), Tr = /** @class */ function() {\n function t(t, e) {\n var n = this;\n this.action = t, this.transaction = e, this.aborted = !1, \n /**\n * A `Promise` that resolves with the result of the IndexedDb transaction.\n */\n this.ft = new br, this.transaction.oncomplete = function() {\n n.ft.resolve();\n }, this.transaction.onabort = function() {\n e.error ? n.ft.reject(new Sr(t, e.error)) : n.ft.resolve();\n }, this.transaction.onerror = function(e) {\n var r = Cr(e.target.error);\n n.ft.reject(new Sr(t, r));\n };\n }\n return t.open = function(e, n, r, i) {\n try {\n return new t(n, e.transaction(i, r));\n } catch (e) {\n throw new Sr(n, e);\n }\n }, Object.defineProperty(t.prototype, \"dt\", {\n get: function() {\n return this.ft.promise;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.abort = function(t) {\n t && this.ft.reject(t), this.aborted || (C(\"SimpleDb\", \"Aborting transaction:\", t ? t.message : \"Client-initiated abort\"), \n this.aborted = !0, this.transaction.abort());\n }, \n /**\n * Returns a SimpleDbStore for the specified store. All\n * operations performed on the SimpleDbStore happen within the context of this\n * transaction and it cannot be used anymore once the transaction is\n * completed.\n *\n * Note that we can't actually enforce that the KeyType and ValueType are\n * correct, but they allow type safety through the rest of the consuming code.\n */\n t.prototype.store = function(t) {\n var e = this.transaction.objectStore(t);\n return new Dr(e);\n }, t;\n}(), _r = /** @class */ function() {\n /*\n * Creates a new SimpleDb wrapper for IndexedDb database `name`.\n *\n * Note that `version` must not be a downgrade. IndexedDB does not support\n * downgrading the schema version. We currently do not support any way to do\n * versioning outside of IndexedDB's versioning mechanism, as only\n * version-upgrade transactions are allowed to do things like create\n * objectstores.\n */\n function t(e, n, r) {\n this.name = e, this.version = n, this.wt = r, \n // NOTE: According to https://bugs.webkit.org/show_bug.cgi?id=197050, the\n // bug we're checking for should exist in iOS >= 12.2 and < 13, but for\n // whatever reason it's much harder to hit after 12.2 so we only proactively\n // log on 12.2.\n 12.2 === t._t(i()) && x(\"Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.\");\n }\n /** Deletes the specified database. */ return t.delete = function(t) {\n return C(\"SimpleDb\", \"Removing database:\", t), Ar(window.indexedDB.deleteDatabase(t)).toPromise();\n }, \n /** Returns true if IndexedDB is available in the current environment. */ t.yt = function() {\n if (\"undefined\" == typeof indexedDB) return !1;\n if (t.gt()) return !0;\n // We extensively use indexed array values and compound keys,\n // which IE and Edge do not support. However, they still have indexedDB\n // defined on the window, so we need to check for them here and make sure\n // to return that persistence is not enabled for those browsers.\n // For tracking support of this feature, see here:\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/status/indexeddbarraysandmultientrysupport/\n // Check the UA string to find out the browser.\n var e = i(), n = t._t(e), r = 0 < n && n < 10, o = t.Et(e), s = 0 < o && o < 4.5;\n // IE 10\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\n // IE 11\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\n // Edge\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,\n // like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\n // iOS Safari: Disable for users running iOS version < 10.\n return !(e.indexOf(\"MSIE \") > 0 || e.indexOf(\"Trident/\") > 0 || e.indexOf(\"Edge/\") > 0 || r || s);\n }, \n /**\n * Returns true if the backing IndexedDB store is the Node IndexedDBShim\n * (see https://github.com/axemclion/IndexedDBShim).\n */\n t.gt = function() {\n var t;\n return \"undefined\" != typeof process && \"YES\" === (null === (t = process.env) || void 0 === t ? void 0 : t.Tt);\n }, \n /** Helper to get a typed SimpleDbStore from a transaction. */ t.It = function(t, e) {\n return t.store(e);\n }, \n // visible for testing\n /** Parse User Agent to determine iOS version. Returns -1 if not found. */\n t._t = function(t) {\n var e = t.match(/i(?:phone|pad|pod) os ([\\d_]+)/i), n = e ? e[1].split(\"_\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n }, \n // visible for testing\n /** Parse User Agent to determine Android version. Returns -1 if not found. */\n t.Et = function(t) {\n var e = t.match(/Android ([\\d.]+)/i), n = e ? e[1].split(\".\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n }, \n /**\n * Opens the specified database, creating or upgrading it if necessary.\n */\n t.prototype.At = function(t) {\n return n(this, void 0, void 0, (function() {\n var e, n = this;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return this.db ? [ 3 /*break*/ , 2 ] : (C(\"SimpleDb\", \"Opening database:\", this.name), \n e = this, [ 4 /*yield*/ , new Promise((function(e, r) {\n // TODO(mikelehen): Investigate browser compatibility.\n // https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB\n // suggests IE9 and older WebKit browsers handle upgrade\n // differently. They expect setVersion, as described here:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeRequest/setVersion\n var i = indexedDB.open(n.name, n.version);\n i.onsuccess = function(t) {\n var n = t.target.result;\n e(n);\n }, i.onblocked = function() {\n r(new Sr(t, \"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed.\"));\n }, i.onerror = function(e) {\n var n = e.target.error;\n \"VersionError\" === n.name ? r(new D(N.FAILED_PRECONDITION, \"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.\")) : r(new Sr(t, n));\n }, i.onupgradeneeded = function(t) {\n C(\"SimpleDb\", 'Database \"' + n.name + '\" requires upgrade from version:', t.oldVersion);\n var e = t.target.result;\n n.wt.Rt(e, i.transaction, t.oldVersion, n.version).next((function() {\n C(\"SimpleDb\", \"Database upgrade to version \" + n.version + \" complete\");\n }));\n };\n })) ]);\n\n case 1:\n e.db = r.sent(), r.label = 2;\n\n case 2:\n return [ 2 /*return*/ , (this.bt && (this.db.onversionchange = function(t) {\n return n.bt(t);\n }), this.db) ];\n }\n }));\n }));\n }, t.prototype.vt = function(t) {\n this.bt = t, this.db && (this.db.onversionchange = function(e) {\n return t(e);\n });\n }, t.prototype.runTransaction = function(t, e, i, o) {\n return n(this, void 0, void 0, (function() {\n var n, s, u, a, c;\n return r(this, (function(h) {\n switch (h.label) {\n case 0:\n n = \"readonly\" === e, s = 0, u = function() {\n var e, u, c, h, f;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n ++s, r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 4, , 5 ]), [ 4 /*yield*/ , a.At(t) ];\n\n case 2:\n // Wait for the transaction to complete (i.e. IndexedDb's onsuccess event to\n // fire), but still return the original transactionFnResult back to the\n // caller.\n return a.db = r.sent(), e = Tr.open(a.db, t, n ? \"readonly\" : \"readwrite\", i), u = o(e).catch((function(t) {\n // Abort the transaction if there was an error.\n return e.abort(t), Ir.reject(t);\n })).toPromise(), c = {}, u.catch((function() {})), [ 4 /*yield*/ , e.dt ];\n\n case 3:\n return [ 2 /*return*/ , (c.value = (\n // Wait for the transaction to complete (i.e. IndexedDb's onsuccess event to\n // fire), but still return the original transactionFnResult back to the\n // caller.\n r.sent(), u), c) ];\n\n case 4:\n return h = r.sent(), f = \"FirebaseError\" !== h.name && s < 3, C(\"SimpleDb\", \"Transaction failed with error:\", h.message, \"Retrying:\", f), \n a.close(), f ? [ 3 /*break*/ , 5 ] : [ 2 /*return*/ , {\n value: Promise.reject(h)\n } ];\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }, a = this, h.label = 1;\n\n case 1:\n return [ 5 /*yield**/ , u() ];\n\n case 2:\n if (\"object\" == typeof (c = h.sent())) return [ 2 /*return*/ , c.value ];\n h.label = 3;\n\n case 3:\n return [ 3 /*break*/ , 1 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.close = function() {\n this.db && this.db.close(), this.db = void 0;\n }, t;\n}(), Er = /** @class */ function() {\n function t(t) {\n this.Pt = t, this.Vt = !1, this.St = null;\n }\n return Object.defineProperty(t.prototype, \"isDone\", {\n get: function() {\n return this.Vt;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"Dt\", {\n get: function() {\n return this.St;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"cursor\", {\n set: function(t) {\n this.Pt = t;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * This function can be called to stop iteration at any point.\n */\n t.prototype.done = function() {\n this.Vt = !0;\n }, \n /**\n * This function can be called to skip to that next key, which could be\n * an index or a primary key.\n */\n t.prototype.Ct = function(t) {\n this.St = t;\n }, \n /**\n * Delete the current cursor value from the object store.\n *\n * NOTE: You CANNOT do this with a keysOnly query.\n */\n t.prototype.delete = function() {\n return Ar(this.Pt.delete());\n }, t;\n}(), Sr = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, N.UNAVAILABLE, \"IndexedDB transaction '\" + t + \"' failed: \" + n) || this).name = \"IndexedDbTransactionError\", \n r;\n }\n return t(n, e), n;\n}(D);\n\n// V2 is no longer usable (see comment at top of file)\n// Visible for testing\n/**\n * A base class representing a persistence transaction, encapsulating both the\n * transaction's sequence numbers as well as a list of onCommitted listeners.\n *\n * When you call Persistence.runTransaction(), it will create a transaction and\n * pass it to your callback. You then pass it to any method that operates\n * on persistence.\n */\n/** Verifies whether `e` is an IndexedDbTransactionError. */ function Nr(t) {\n // Use name equality, as instanceof checks on errors don't work with errors\n // that wrap other errors.\n return \"IndexedDbTransactionError\" === t.name;\n}\n\n/**\n * A wrapper around an IDBObjectStore providing an API that:\n *\n * 1) Has generic KeyType / ValueType parameters to provide strongly-typed\n * methods for acting against the object store.\n * 2) Deals with IndexedDB's onsuccess / onerror event callbacks, making every\n * method return a PersistencePromise instead.\n * 3) Provides a higher-level API to avoid needing to do excessive wrapping of\n * intermediate IndexedDB types (IDBCursorWithValue, etc.)\n */ var Dr = /** @class */ function() {\n function t(t) {\n this.store = t;\n }\n return t.prototype.put = function(t, e) {\n var n;\n return void 0 !== e ? (C(\"SimpleDb\", \"PUT\", this.store.name, t, e), n = this.store.put(e, t)) : (C(\"SimpleDb\", \"PUT\", this.store.name, \"\", t), \n n = this.store.put(t)), Ar(n);\n }, \n /**\n * Adds a new value into an Object Store and returns the new key. Similar to\n * IndexedDb's `add()`, this method will fail on primary key collisions.\n *\n * @param value - The object to write.\n * @returns The key of the value to add.\n */\n t.prototype.add = function(t) {\n return C(\"SimpleDb\", \"ADD\", this.store.name, t, t), Ar(this.store.add(t));\n }, \n /**\n * Gets the object with the specified key from the specified store, or null\n * if no object exists with the specified key.\n *\n * @key The key of the object to get.\n * @returns The object with the specified key or null if no object exists.\n */\n t.prototype.get = function(t) {\n var e = this;\n // We're doing an unsafe cast to ValueType.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Ar(this.store.get(t)).next((function(n) {\n // Normalize nonexistence to null.\n return void 0 === n && (n = null), C(\"SimpleDb\", \"GET\", e.store.name, t, n), n;\n }));\n }, t.prototype.delete = function(t) {\n return C(\"SimpleDb\", \"DELETE\", this.store.name, t), Ar(this.store.delete(t));\n }, \n /**\n * If we ever need more of the count variants, we can add overloads. For now,\n * all we need is to count everything in a store.\n *\n * Returns the number of rows in the store.\n */\n t.prototype.count = function() {\n return C(\"SimpleDb\", \"COUNT\", this.store.name), Ar(this.store.count());\n }, t.prototype.Nt = function(t, e) {\n var n = this.cursor(this.options(t, e)), r = [];\n return this.xt(n, (function(t, e) {\n r.push(e);\n })).next((function() {\n return r;\n }));\n }, t.prototype.kt = function(t, e) {\n C(\"SimpleDb\", \"DELETE ALL\", this.store.name);\n var n = this.options(t, e);\n n.Ft = !1;\n var r = this.cursor(n);\n return this.xt(r, (function(t, e, n) {\n return n.delete();\n }));\n }, t.prototype.$t = function(t, e) {\n var n;\n e ? n = t : (n = {}, e = t);\n var r = this.cursor(n);\n return this.xt(r, e);\n }, \n /**\n * Iterates over a store, but waits for the given callback to complete for\n * each entry before iterating the next entry. This allows the callback to do\n * asynchronous work to determine if this iteration should continue.\n *\n * The provided callback should return `true` to continue iteration, and\n * `false` otherwise.\n */\n t.prototype.Ot = function(t) {\n var e = this.cursor({});\n return new Ir((function(n, r) {\n e.onerror = function(t) {\n var e = Cr(t.target.error);\n r(e);\n }, e.onsuccess = function(e) {\n var r = e.target.result;\n r ? t(r.primaryKey, r.value).next((function(t) {\n t ? r.continue() : n();\n })) : n();\n };\n }));\n }, t.prototype.xt = function(t, e) {\n var n = [];\n return new Ir((function(r, i) {\n t.onerror = function(t) {\n i(t.target.error);\n }, t.onsuccess = function(t) {\n var i = t.target.result;\n if (i) {\n var o = new Er(i), s = e(i.primaryKey, i.value, o);\n if (s instanceof Ir) {\n var u = s.catch((function(t) {\n return o.done(), Ir.reject(t);\n }));\n n.push(u);\n }\n o.isDone ? r() : null === o.Dt ? i.continue() : i.continue(o.Dt);\n } else r();\n };\n })).next((function() {\n return Ir.waitFor(n);\n }));\n }, t.prototype.options = function(t, e) {\n var n;\n return void 0 !== t && (\"string\" == typeof t ? n = t : e = t), {\n index: n,\n range: e\n };\n }, t.prototype.cursor = function(t) {\n var e = \"next\";\n if (t.reverse && (e = \"prev\"), t.index) {\n var n = this.store.index(t.index);\n return t.Ft ? n.openKeyCursor(t.range, e) : n.openCursor(t.range, e);\n }\n return this.store.openCursor(t.range, e);\n }, t;\n}();\n\n/**\n * Wraps an IDBRequest in a PersistencePromise, using the onsuccess / onerror\n * handlers to resolve / reject the PersistencePromise as appropriate.\n */ function Ar(t) {\n return new Ir((function(e, n) {\n t.onsuccess = function(t) {\n var n = t.target.result;\n e(n);\n }, t.onerror = function(t) {\n var e = Cr(t.target.error);\n n(e);\n };\n }));\n}\n\n// Guard so we only report the error once.\nvar kr = !1;\n\nfunction Cr(t) {\n var e = _r._t(i());\n if (e >= 12.2 && e < 13) {\n var n = \"An internal error was encountered in the Indexed Database server\";\n if (t.message.indexOf(n) >= 0) {\n // Wrap error in a more descriptive one.\n var r = new D(\"internal\", \"IOS_INDEXEDDB_BUG1: IndexedDb has thrown '\" + n + \"'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.\");\n return kr || (kr = !0, \n // Throw a global exception outside of this promise chain, for the user to\n // potentially catch.\n setTimeout((function() {\n throw r;\n }), 0)), r;\n }\n }\n return t;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var xr = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).Mt = t, r.currentSequenceNumber = n, r;\n }\n return t(n, e), n;\n}(wr);\n\nfunction Rr(t, e) {\n var n = F(t);\n return _r.It(n.Mt, e);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A batch of mutations that will be sent as one unit to the backend.\n */ var Lr = /** @class */ function() {\n /**\n * @param batchId - The unique ID of this mutation batch.\n * @param localWriteTime - The original write time of this mutation.\n * @param baseMutations - Mutations that are used to populate the base\n * values when this mutation is applied locally. This can be used to locally\n * overwrite values that are persisted in the remote document cache. Base\n * mutations are never sent to the backend.\n * @param mutations - The user-provided mutations in this mutation batch.\n * User-provided mutations are applied both locally and remotely on the\n * backend.\n */\n function t(t, e, n, r) {\n this.batchId = t, this.localWriteTime = e, this.baseMutations = n, this.mutations = r\n /**\n * Applies all the mutations in this MutationBatch to the specified document\n * to compute the state of the remote document\n *\n * @param document - The document to apply mutations to.\n * @param batchResult - The result of applying the MutationBatch to the\n * backend.\n */;\n }\n return t.prototype.applyToRemoteDocument = function(t, e) {\n for (var n = e.mutationResults, r = 0; r < this.mutations.length; r++) {\n var i = this.mutations[r];\n i.key.isEqual(t.key) && Ce(i, t, n[r]);\n }\n }, \n /**\n * Computes the local view of a document given all the mutations in this\n * batch.\n *\n * @param document - The document to apply mutations to.\n */\n t.prototype.applyToLocalView = function(t) {\n // First, apply the base state. This allows us to apply non-idempotent\n // transform against a consistent set of values.\n for (var e = 0, n = this.baseMutations; e < n.length; e++) {\n (o = n[e]).key.isEqual(t.key) && xe(o, t, this.localWriteTime);\n }\n // Second, apply all user-provided mutations.\n for (var r = 0, i = this.mutations; r < i.length; r++) {\n var o;\n (o = i[r]).key.isEqual(t.key) && xe(o, t, this.localWriteTime);\n }\n }, \n /**\n * Computes the local view for all provided documents given the mutations in\n * this batch.\n */\n t.prototype.applyToLocalDocumentSet = function(t) {\n var e = this;\n // TODO(mrschmidt): This implementation is O(n^2). If we apply the mutations\n // directly (as done in `applyToLocalView()`), we can reduce the complexity\n // to O(n).\n this.mutations.forEach((function(n) {\n var r = t.get(n.key), i = r;\n // TODO(mutabledocuments): This method should take a MutableDocumentMap\n // and we should remove this cast.\n e.applyToLocalView(i), r.isValidDocument() || i.convertToNoDocument(K.min());\n }));\n }, t.prototype.keys = function() {\n return this.mutations.reduce((function(t, e) {\n return t.add(e.key);\n }), sn());\n }, t.prototype.isEqual = function(t) {\n return this.batchId === t.batchId && U(this.mutations, t.mutations, (function(t, e) {\n return Le(t, e);\n })) && U(this.baseMutations, t.baseMutations, (function(t, e) {\n return Le(t, e);\n }));\n }, t;\n}(), Or = /** @class */ function() {\n function t(t, e, n, \n /**\n * A pre-computed mapping from each mutated document to the resulting\n * version.\n */\n r) {\n this.batch = t, this.commitVersion = e, this.mutationResults = n, this.docVersions = r\n /**\n * Creates a new MutationBatchResult for the given batch and results. There\n * must be one result for each mutation in the batch. This static factory\n * caches a document=>version mapping (docVersions).\n */;\n }\n return t.from = function(e, n, r) {\n P(e.mutations.length === r.length);\n for (var i = rn(), o = e.mutations, s = 0; s < o.length; s++) i = i.insert(o[s].key, r[s].version);\n return new t(e, n, r, i);\n }, t;\n}(), Pr = /** @class */ function() {\n function t(\n /** The target being listened to. */\n t, \n /**\n * The target ID to which the target corresponds; Assigned by the\n * LocalStore for user listens and by the SyncEngine for limbo watches.\n */\n e, \n /** The purpose of the target. */\n n, \n /**\n * The sequence number of the last transaction during which this target data\n * was modified.\n */\n r, \n /** The latest snapshot version seen for this target. */\n i\n /**\n * The maximum snapshot version at which the associated view\n * contained no limbo documents.\n */ , o\n /**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */ , s) {\n void 0 === i && (i = K.min()), void 0 === o && (o = K.min()), void 0 === s && (s = J.EMPTY_BYTE_STRING), \n this.target = t, this.targetId = e, this.purpose = n, this.sequenceNumber = r, this.snapshotVersion = i, \n this.lastLimboFreeSnapshotVersion = o, this.resumeToken = s;\n }\n /** Creates a new target data instance with an updated sequence number. */ return t.prototype.withSequenceNumber = function(e) {\n return new t(this.target, this.targetId, this.purpose, e, this.snapshotVersion, this.lastLimboFreeSnapshotVersion, this.resumeToken);\n }, \n /**\n * Creates a new target data instance with an updated resume token and\n * snapshot version.\n */\n t.prototype.withResumeToken = function(e, n) {\n return new t(this.target, this.targetId, this.purpose, this.sequenceNumber, n, this.lastLimboFreeSnapshotVersion, e);\n }, \n /**\n * Creates a new target data instance with an updated last limbo free\n * snapshot version number.\n */\n t.prototype.withLastLimboFreeSnapshotVersion = function(e) {\n return new t(this.target, this.targetId, this.purpose, this.sequenceNumber, this.snapshotVersion, e, this.resumeToken);\n }, t;\n}(), Fr = function(t) {\n this.Lt = t;\n};\n\n/** The result of applying a mutation batch to the backend. */\n/** Decodes a remote document from storage locally to a Document. */ function Mr(t, e) {\n if (e.document) return On(t.Lt, e.document, !!e.hasCommittedMutations);\n if (e.noDocument) {\n var n = ct.fromSegments(e.noDocument.path), r = jr(e.noDocument.readTime), i = Nt.newNoDocument(n, r);\n return e.hasCommittedMutations ? i.setHasCommittedMutations() : i;\n }\n if (e.unknownDocument) {\n var o = ct.fromSegments(e.unknownDocument.path);\n r = jr(e.unknownDocument.version);\n return Nt.newUnknownDocument(o, r);\n }\n return O();\n}\n\n/** Encodes a document for storage locally. */ function Vr(t, e, n) {\n var r = qr(n), i = e.key.path.popLast().toArray();\n if (e.isFoundDocument()) {\n var o = function(t, e) {\n return {\n name: Dn(t, e.key),\n fields: e.data.value.mapValue.fields,\n updateTime: In(t, e.version.toTimestamp())\n };\n }(t.Lt, e), s = e.hasCommittedMutations;\n return new ar(\n /* unknownDocument= */ null, \n /* noDocument= */ null, o, s, r, i);\n }\n if (e.isNoDocument()) {\n var u = e.key.path.toArray(), a = Br(e.version);\n s = e.hasCommittedMutations;\n return new ar(\n /* unknownDocument= */ null, new sr(u, a), \n /* document= */ null, s, r, i);\n }\n if (e.isUnknownDocument()) {\n var c = e.key.path.toArray(), h = Br(e.version);\n return new ar(new ur(c, h), \n /* noDocument= */ null, \n /* document= */ null, \n /* hasCommittedMutations= */ !0, r, i);\n }\n return O();\n}\n\nfunction qr(t) {\n var e = t.toTimestamp();\n return [ e.seconds, e.nanoseconds ];\n}\n\nfunction Ur(t) {\n var e = new j(t[0], t[1]);\n return K.fromTimestamp(e);\n}\n\nfunction Br(t) {\n var e = t.toTimestamp();\n return new er(e.seconds, e.nanoseconds);\n}\n\nfunction jr(t) {\n var e = new j(t.seconds, t.nanoseconds);\n return K.fromTimestamp(e);\n}\n\n/** Encodes a batch of mutations into a DbMutationBatch for local storage. */\n/** Decodes a DbMutationBatch into a MutationBatch */ function Kr(t, e) {\n // Squash old transform mutations into existing patch or set mutations.\n // The replacement of representing `transforms` with `update_transforms`\n // on the SDK means that old `transform` mutations stored in IndexedDB need\n // to be updated to `update_transforms`.\n // TODO(b/174608374): Remove this code once we perform a schema migration.\n for (var n = (e.baseMutations || []).map((function(e) {\n return Fn(t.Lt, e);\n })), r = 0; r < e.mutations.length - 1; ++r) {\n var i = e.mutations[r];\n if (r + 1 < e.mutations.length && void 0 !== e.mutations[r + 1].transform) {\n var o = e.mutations[r + 1];\n i.updateTransforms = o.transform.fieldTransforms, e.mutations.splice(r + 1, 1), \n ++r;\n }\n }\n var s = e.mutations.map((function(e) {\n return Fn(t.Lt, e);\n })), u = j.fromMillis(e.localWriteTimeMs);\n return new Lr(e.batchId, u, n, s);\n}\n\n/** Decodes a DbTarget into TargetData */ function Gr(t) {\n var e, n, r = jr(t.readTime), i = void 0 !== t.lastLimboFreeSnapshotVersion ? jr(t.lastLimboFreeSnapshotVersion) : K.min();\n return void 0 !== t.query.documents ? (P(1 === (n = t.query).documents.length), \n e = ne(Yt(Cn(n.documents[0])))) : e = function(t) {\n return ne(qn(t));\n }(t.query), new Pr(e, t.targetId, 0 /* Listen */ , t.lastListenSequenceNumber, r, i, J.fromBase64String(t.resumeToken))\n /** Encodes TargetData into a DbTarget for storage locally. */;\n}\n\nfunction Qr(t, e) {\n var n, r = Br(e.snapshotVersion), i = Br(e.lastLimboFreeSnapshotVersion);\n n = xt(e.target) ? Mn(t.Lt, e.target) : Vn(t.Lt, e.target);\n // We can't store the resumeToken as a ByteString in IndexedDb, so we\n // convert it to a base64 string for storage.\n var o = e.resumeToken.toBase64();\n // lastListenSequenceNumber is always 0 until we do real GC.\n return new hr(e.targetId, kt(e.target), r, o, e.sequenceNumber, i, n);\n}\n\n/**\n * A helper function for figuring out what kind of query has been stored.\n */\n/**\n * Encodes a `BundledQuery` from bundle proto to a Query object.\n *\n * This reconstructs the original query used to build the bundle being loaded,\n * including features exists only in SDKs (for example: limit-to-last).\n */ function zr(t) {\n var e = qn({\n parent: t.parent,\n structuredQuery: t.structuredQuery\n });\n return \"LAST\" === t.limitType ? re(e, e.limit, \"L\" /* Last */) : e;\n}\n\n/** Encodes a NamedQuery proto object to a NamedQuery model object. */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var Wr = /** @class */ function() {\n function t() {}\n return t.prototype.getBundleMetadata = function(t, e) {\n return Hr(t).get(e).next((function(t) {\n if (t) return {\n id: (e = t).bundleId,\n createTime: jr(e.createTime),\n version: e.version\n };\n /** Encodes a DbBundle to a BundleMetadata object. */ var e;\n /** Encodes a BundleMetadata to a DbBundle. */ }));\n }, t.prototype.saveBundleMetadata = function(t, e) {\n return Hr(t).put({\n bundleId: (n = e).id,\n createTime: Br(En(n.createTime)),\n version: n.version\n });\n var n;\n /** Encodes a DbNamedQuery to a NamedQuery. */ }, t.prototype.getNamedQuery = function(t, e) {\n return Yr(t).get(e).next((function(t) {\n if (t) return {\n name: (e = t).name,\n query: zr(e.bundledQuery),\n readTime: jr(e.readTime)\n };\n var e;\n /** Encodes a NamedQuery from a bundle proto to a DbNamedQuery. */ }));\n }, t.prototype.saveNamedQuery = function(t, e) {\n return Yr(t).put(function(t) {\n return {\n name: t.name,\n readTime: Br(En(t.readTime)),\n bundledQuery: t.bundledQuery\n };\n }(e));\n }, t;\n}();\n\n/**\n * Helper to get a typed SimpleDbStore for the bundles object store.\n */ function Hr(t) {\n return Rr(t, yr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the namedQueries object store.\n */ function Yr(t) {\n return Rr(t, vr.store);\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * An in-memory implementation of IndexManager.\n */ var $r = /** @class */ function() {\n function t() {\n this.Bt = new Xr;\n }\n return t.prototype.addToCollectionParentIndex = function(t, e) {\n return this.Bt.add(e), Ir.resolve();\n }, t.prototype.getCollectionParents = function(t, e) {\n return Ir.resolve(this.Bt.getEntries(e));\n }, t;\n}(), Xr = /** @class */ function() {\n function t() {\n this.index = {};\n }\n // Returns false if the entry already existed.\n return t.prototype.add = function(t) {\n var e = t.lastSegment(), n = t.popLast(), r = this.index[e] || new $e(H.comparator), i = !r.has(n);\n return this.index[e] = r.add(n), i;\n }, t.prototype.has = function(t) {\n var e = t.lastSegment(), n = t.popLast(), r = this.index[e];\n return r && r.has(n);\n }, t.prototype.getEntries = function(t) {\n return (this.index[t] || new $e(H.comparator)).toArray();\n }, t;\n}(), Jr = /** @class */ function() {\n function t() {\n /**\n * An in-memory copy of the index entries we've already written since the SDK\n * launched. Used to avoid re-writing the same entry repeatedly.\n *\n * This is *NOT* a complete cache of what's in persistence and so can never be used to\n * satisfy reads.\n */\n this.qt = new Xr;\n }\n /**\n * Adds a new entry to the collection parent index.\n *\n * Repeated calls for the same collectionPath should be avoided within a\n * transaction as IndexedDbIndexManager only caches writes once a transaction\n * has been committed.\n */ return t.prototype.addToCollectionParentIndex = function(t, e) {\n var n = this;\n if (!this.qt.has(e)) {\n var r = e.lastSegment(), i = e.popLast();\n t.addOnCommittedListener((function() {\n // Add the collection to the in memory cache only if the transaction was\n // successfully committed.\n n.qt.add(e);\n }));\n var o = {\n collectionId: r,\n parent: Xn(i)\n };\n return Zr(t).put(o);\n }\n return Ir.resolve();\n }, t.prototype.getCollectionParents = function(t, e) {\n var n = [], r = IDBKeyRange.bound([ e, \"\" ], [ B(e), \"\" ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n return Zr(t).Nt(r).next((function(t) {\n for (var r = 0, i = t; r < i.length; r++) {\n var o = i[r];\n // This collectionId guard shouldn't be necessary (and isn't as long\n // as we're running in a real browser), but there's a bug in\n // indexeddbshim that breaks our range in our tests running in node:\n // https://github.com/axemclion/IndexedDBShim/issues/334\n if (o.collectionId !== e) break;\n n.push(tr(o.parent));\n }\n return n;\n }));\n }, t;\n}();\n\n/**\n * Internal implementation of the collection-parent index exposed by MemoryIndexManager.\n * Also used for in-memory caching by IndexedDbIndexManager and initial index population\n * in indexeddb_schema.ts\n */\n/**\n * Helper to get a typed SimpleDbStore for the collectionParents\n * document store.\n */\nfunction Zr(t) {\n return Rr(t, dr.store);\n}\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var ti = {\n didRun: !1,\n sequenceNumbersCollected: 0,\n targetsRemoved: 0,\n documentsRemoved: 0\n}, ei = /** @class */ function() {\n function t(\n // When we attempt to collect, we will only do so if the cache size is greater than this\n // threshold. Passing `COLLECTION_DISABLED` here will cause collection to always be skipped.\n t, \n // The percentage of sequence numbers that we will attempt to collect\n e, \n // A cap on the total number of sequence numbers that will be collected. This prevents\n // us from collecting a huge number of sequence numbers if the cache has grown very large.\n n) {\n this.cacheSizeCollectionThreshold = t, this.percentileToCollect = e, this.maximumSequenceNumbersToCollect = n;\n }\n return t.withCacheSize = function(e) {\n return new t(e, t.DEFAULT_COLLECTION_PERCENTILE, t.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT);\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Delete a mutation batch and the associated document mutations.\n * @returns A PersistencePromise of the document mutations that were removed.\n */\nfunction ni(t, e, n) {\n var r = t.store(ir.store), i = t.store(or.store), o = [], s = IDBKeyRange.only(n.batchId), u = 0, a = r.$t({\n range: s\n }, (function(t, e, n) {\n return u++, n.delete();\n }));\n o.push(a.next((function() {\n P(1 === u);\n })));\n for (var c = [], h = 0, f = n.mutations; h < f.length; h++) {\n var l = f[h], d = or.key(e, l.key.path, n.batchId);\n o.push(i.delete(d)), c.push(l.key);\n }\n return Ir.waitFor(o).next((function() {\n return c;\n }));\n}\n\n/**\n * Returns an approximate size for the given document.\n */ function ri(t) {\n if (!t) return 0;\n var e;\n if (t.document) e = t.document; else if (t.unknownDocument) e = t.unknownDocument; else {\n if (!t.noDocument) throw O();\n e = t.noDocument;\n }\n return JSON.stringify(e).length;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** A mutation queue for a specific user, backed by IndexedDB. */ ei.DEFAULT_COLLECTION_PERCENTILE = 10, \nei.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT = 1e3, ei.DEFAULT = new ei(41943040, ei.DEFAULT_COLLECTION_PERCENTILE, ei.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT), \nei.DISABLED = new ei(-1, 0, 0);\n\nvar ii = /** @class */ function() {\n function t(\n /**\n * The normalized userId (e.g. null UID => \"\" userId) used to store /\n * retrieve mutations.\n */\n t, e, n, r) {\n this.userId = t, this.R = e, this.Ut = n, this.referenceDelegate = r, \n /**\n * Caches the document keys for pending mutation batches. If the mutation\n * has been removed from IndexedDb, the cached value may continue to\n * be used to retrieve the batch's document keys. To remove a cached value\n * locally, `removeCachedMutationKeys()` should be invoked either directly\n * or through `removeMutationBatches()`.\n *\n * With multi-tab, when the primary client acknowledges or rejects a mutation,\n * this cache is used by secondary clients to invalidate the local\n * view of the documents that were previously affected by the mutation.\n */\n // PORTING NOTE: Multi-tab only.\n this.Kt = {}\n /**\n * Creates a new mutation queue for the given user.\n * @param user - The user for which to create a mutation queue.\n * @param serializer - The serializer to use when persisting to IndexedDb.\n */;\n }\n return t.Qt = function(e, n, r, i) {\n // TODO(mcg): Figure out what constraints there are on userIDs\n // In particular, are there any reserved characters? are empty ids allowed?\n // For the moment store these together in the same mutations table assuming\n // that empty userIDs aren't allowed.\n return P(\"\" !== e.uid), new t(e.isAuthenticated() ? e.uid : \"\", n, r, i);\n }, t.prototype.checkEmpty = function(t) {\n var e = !0, n = IDBKeyRange.bound([ this.userId, Number.NEGATIVE_INFINITY ], [ this.userId, Number.POSITIVE_INFINITY ]);\n return si(t).$t({\n index: ir.userMutationsIndex,\n range: n\n }, (function(t, n, r) {\n e = !1, r.done();\n })).next((function() {\n return e;\n }));\n }, t.prototype.addMutationBatch = function(t, e, n, r) {\n var i = this, o = ui(t), s = si(t);\n // The IndexedDb implementation in Chrome (and Firefox) does not handle\n // compound indices that include auto-generated keys correctly. To ensure\n // that the index entry is added correctly in all browsers, we perform two\n // writes: The first write is used to retrieve the next auto-generated Batch\n // ID, and the second write populates the index and stores the actual\n // mutation batch.\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=701972\n // We write an empty object to obtain key\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return s.add({}).next((function(u) {\n P(\"number\" == typeof u);\n for (var a = new Lr(u, e, n, r), c = function(t, e, n) {\n var r = n.baseMutations.map((function(e) {\n return Pn(t.Lt, e);\n })), i = n.mutations.map((function(e) {\n return Pn(t.Lt, e);\n }));\n return new ir(e, n.batchId, n.localWriteTime.toMillis(), r, i);\n }(i.R, i.userId, a), h = [], f = new $e((function(t, e) {\n return q(t.canonicalString(), e.canonicalString());\n })), l = 0, d = r; l < d.length; l++) {\n var p = d[l], y = or.key(i.userId, p.key.path, u);\n f = f.add(p.key.path.popLast()), h.push(s.put(c)), h.push(o.put(y, or.PLACEHOLDER));\n }\n return f.forEach((function(e) {\n h.push(i.Ut.addToCollectionParentIndex(t, e));\n })), t.addOnCommittedListener((function() {\n i.Kt[u] = a.keys();\n })), Ir.waitFor(h).next((function() {\n return a;\n }));\n }));\n }, t.prototype.lookupMutationBatch = function(t, e) {\n var n = this;\n return si(t).get(e).next((function(t) {\n return t ? (P(t.userId === n.userId), Kr(n.R, t)) : null;\n }));\n }, \n /**\n * Returns the document keys for the mutation batch with the given batchId.\n * For primary clients, this method returns `null` after\n * `removeMutationBatches()` has been called. Secondary clients return a\n * cached result until `removeCachedMutationKeys()` is invoked.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.jt = function(t, e) {\n var n = this;\n return this.Kt[e] ? Ir.resolve(this.Kt[e]) : this.lookupMutationBatch(t, e).next((function(t) {\n if (t) {\n var r = t.keys();\n return n.Kt[e] = r, r;\n }\n return null;\n }));\n }, t.prototype.getNextMutationBatchAfterBatchId = function(t, e) {\n var n = this, r = e + 1, i = IDBKeyRange.lowerBound([ this.userId, r ]), o = null;\n return si(t).$t({\n index: ir.userMutationsIndex,\n range: i\n }, (function(t, e, i) {\n e.userId === n.userId && (P(e.batchId >= r), o = Kr(n.R, e)), i.done();\n })).next((function() {\n return o;\n }));\n }, t.prototype.getHighestUnacknowledgedBatchId = function(t) {\n var e = IDBKeyRange.upperBound([ this.userId, Number.POSITIVE_INFINITY ]), n = -1;\n return si(t).$t({\n index: ir.userMutationsIndex,\n range: e,\n reverse: !0\n }, (function(t, e, r) {\n n = e.batchId, r.done();\n })).next((function() {\n return n;\n }));\n }, t.prototype.getAllMutationBatches = function(t) {\n var e = this, n = IDBKeyRange.bound([ this.userId, -1 ], [ this.userId, Number.POSITIVE_INFINITY ]);\n return si(t).Nt(ir.userMutationsIndex, n).next((function(t) {\n return t.map((function(t) {\n return Kr(e.R, t);\n }));\n }));\n }, t.prototype.getAllMutationBatchesAffectingDocumentKey = function(t, e) {\n var n = this, r = or.prefixForPath(this.userId, e.path), i = IDBKeyRange.lowerBound(r), o = [];\n // Scan the document-mutation index starting with a prefix starting with\n // the given documentKey.\n return ui(t).$t({\n range: i\n }, (function(r, i, s) {\n var u = r[0], a = r[1], c = r[2], h = tr(a);\n // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n if (u === n.userId && e.path.isEqual(h)) \n // Look up the mutation batch in the store.\n return si(t).get(c).next((function(t) {\n if (!t) throw O();\n P(t.userId === n.userId), o.push(Kr(n.R, t));\n }));\n s.done();\n })).next((function() {\n return o;\n }));\n }, t.prototype.getAllMutationBatchesAffectingDocumentKeys = function(t, e) {\n var n = this, r = new $e(q), i = [];\n return e.forEach((function(e) {\n var o = or.prefixForPath(n.userId, e.path), s = IDBKeyRange.lowerBound(o), u = ui(t).$t({\n range: s\n }, (function(t, i, o) {\n var s = t[0], u = t[1], a = t[2], c = tr(u);\n // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n s === n.userId && e.path.isEqual(c) ? r = r.add(a) : o.done();\n }));\n i.push(u);\n })), Ir.waitFor(i).next((function() {\n return n.Wt(t, r);\n }));\n }, t.prototype.getAllMutationBatchesAffectingQuery = function(t, e) {\n var n = this, r = e.path, i = r.length + 1, o = or.prefixForPath(this.userId, r), s = IDBKeyRange.lowerBound(o), u = new $e(q);\n return ui(t).$t({\n range: s\n }, (function(t, e, o) {\n var s = t[0], a = t[1], c = t[2], h = tr(a);\n s === n.userId && r.isPrefixOf(h) ? \n // Rows with document keys more than one segment longer than the\n // query path can't be matches. For example, a query on 'rooms'\n // can't match the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n h.length === i && (u = u.add(c)) : o.done();\n })).next((function() {\n return n.Wt(t, u);\n }));\n }, t.prototype.Wt = function(t, e) {\n var n = this, r = [], i = [];\n // TODO(rockwood): Implement this using iterate.\n return e.forEach((function(e) {\n i.push(si(t).get(e).next((function(t) {\n if (null === t) throw O();\n P(t.userId === n.userId), r.push(Kr(n.R, t));\n })));\n })), Ir.waitFor(i).next((function() {\n return r;\n }));\n }, t.prototype.removeMutationBatch = function(t, e) {\n var n = this;\n return ni(t.Mt, this.userId, e).next((function(r) {\n return t.addOnCommittedListener((function() {\n n.Gt(e.batchId);\n })), Ir.forEach(r, (function(e) {\n return n.referenceDelegate.markPotentiallyOrphaned(t, e);\n }));\n }));\n }, \n /**\n * Clears the cached keys for a mutation batch. This method should be\n * called by secondary clients after they process mutation updates.\n *\n * Note that this method does not have to be called from primary clients as\n * the corresponding cache entries are cleared when an acknowledged or\n * rejected batch is removed from the mutation queue.\n */\n // PORTING NOTE: Multi-tab only\n t.prototype.Gt = function(t) {\n delete this.Kt[t];\n }, t.prototype.performConsistencyCheck = function(t) {\n var e = this;\n return this.checkEmpty(t).next((function(n) {\n if (!n) return Ir.resolve();\n // Verify that there are no entries in the documentMutations index if\n // the queue is empty.\n var r = IDBKeyRange.lowerBound(or.prefixForUser(e.userId)), i = [];\n return ui(t).$t({\n range: r\n }, (function(t, n, r) {\n if (t[0] === e.userId) {\n var o = tr(t[1]);\n i.push(o);\n } else r.done();\n })).next((function() {\n P(0 === i.length);\n }));\n }));\n }, t.prototype.containsKey = function(t, e) {\n return oi(t, this.userId, e);\n }, \n // PORTING NOTE: Multi-tab only (state is held in memory in other clients).\n /** Returns the mutation queue's metadata from IndexedDb. */\n t.prototype.zt = function(t) {\n var e = this;\n return ai(t).get(this.userId).next((function(t) {\n return t || new rr(e.userId, -1, \n /*lastStreamToken=*/ \"\");\n }));\n }, t;\n}();\n\n/**\n * @returns true if the mutation queue for the given user contains a pending\n * mutation for the given key.\n */ function oi(t, e, n) {\n var r = or.prefixForPath(e, n.path), i = r[1], o = IDBKeyRange.lowerBound(r), s = !1;\n return ui(t).$t({\n range: o,\n Ft: !0\n }, (function(t, n, r) {\n var o = t[0], u = t[1];\n /*batchID*/ t[2], o === e && u === i && (s = !0), \n r.done();\n })).next((function() {\n return s;\n }));\n}\n\n/** Returns true if any mutation queue contains the given document. */\n/**\n * Helper to get a typed SimpleDbStore for the mutations object store.\n */ function si(t) {\n return Rr(t, ir.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */ function ui(t) {\n return Rr(t, or.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */ function ai(t) {\n return Rr(t, rr.store);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** Offset to ensure non-overlapping target ids. */\n/**\n * Generates monotonically increasing target IDs for sending targets to the\n * watch stream.\n *\n * The client constructs two generators, one for the target cache, and one for\n * for the sync engine (to generate limbo documents targets). These\n * generators produce non-overlapping IDs (by using even and odd IDs\n * respectively).\n *\n * By separating the target ID space, the query cache can generate target IDs\n * that persist across client restarts, while sync engine can independently\n * generate in-memory target IDs that are transient and can be reused after a\n * restart.\n */ var ci = /** @class */ function() {\n function t(t) {\n this.Ht = t;\n }\n return t.prototype.next = function() {\n return this.Ht += 2, this.Ht;\n }, t.Jt = function() {\n // The target cache generator must return '2' in its first call to `next()`\n // as there is no differentiation in the protocol layer between an unset\n // number and the number '0'. If we were to sent a target with target ID\n // '0', the backend would consider it unset and replace it with its own ID.\n return new t(0);\n }, t.Yt = function() {\n // Sync engine assigns target IDs for limbo document detection.\n return new t(-1);\n }, t;\n}(), hi = /** @class */ function() {\n function t(t, e) {\n this.referenceDelegate = t, this.R = e;\n }\n // PORTING NOTE: We don't cache global metadata for the target cache, since\n // some of it (in particular `highestTargetId`) can be modified by secondary\n // tabs. We could perhaps be more granular (and e.g. still cache\n // `lastRemoteSnapshotVersion` in memory) but for simplicity we currently go\n // to IndexedDb whenever we need to read metadata. We can revisit if it turns\n // out to have a meaningful performance impact.\n return t.prototype.allocateTargetId = function(t) {\n var e = this;\n return this.Xt(t).next((function(n) {\n var r = new ci(n.highestTargetId);\n return n.highestTargetId = r.next(), e.Zt(t, n).next((function() {\n return n.highestTargetId;\n }));\n }));\n }, t.prototype.getLastRemoteSnapshotVersion = function(t) {\n return this.Xt(t).next((function(t) {\n return K.fromTimestamp(new j(t.lastRemoteSnapshotVersion.seconds, t.lastRemoteSnapshotVersion.nanoseconds));\n }));\n }, t.prototype.getHighestSequenceNumber = function(t) {\n return this.Xt(t).next((function(t) {\n return t.highestListenSequenceNumber;\n }));\n }, t.prototype.setTargetsMetadata = function(t, e, n) {\n var r = this;\n return this.Xt(t).next((function(i) {\n return i.highestListenSequenceNumber = e, n && (i.lastRemoteSnapshotVersion = n.toTimestamp()), \n e > i.highestListenSequenceNumber && (i.highestListenSequenceNumber = e), r.Zt(t, i);\n }));\n }, t.prototype.addTargetData = function(t, e) {\n var n = this;\n return this.te(t, e).next((function() {\n return n.Xt(t).next((function(r) {\n return r.targetCount += 1, n.ee(e, r), n.Zt(t, r);\n }));\n }));\n }, t.prototype.updateTargetData = function(t, e) {\n return this.te(t, e);\n }, t.prototype.removeTargetData = function(t, e) {\n var n = this;\n return this.removeMatchingKeysForTargetId(t, e.targetId).next((function() {\n return fi(t).delete(e.targetId);\n })).next((function() {\n return n.Xt(t);\n })).next((function(e) {\n return P(e.targetCount > 0), e.targetCount -= 1, n.Zt(t, e);\n }));\n }, \n /**\n * Drops any targets with sequence number less than or equal to the upper bound, excepting those\n * present in `activeTargetIds`. Document associations for the removed targets are also removed.\n * Returns the number of targets removed.\n */\n t.prototype.removeTargets = function(t, e, n) {\n var r = this, i = 0, o = [];\n return fi(t).$t((function(s, u) {\n var a = Gr(u);\n a.sequenceNumber <= e && null === n.get(a.targetId) && (i++, o.push(r.removeTargetData(t, a)));\n })).next((function() {\n return Ir.waitFor(o);\n })).next((function() {\n return i;\n }));\n }, \n /**\n * Call provided function with each `TargetData` that we have cached.\n */\n t.prototype.forEachTarget = function(t, e) {\n return fi(t).$t((function(t, n) {\n var r = Gr(n);\n e(r);\n }));\n }, t.prototype.Xt = function(t) {\n return li(t).get(lr.key).next((function(t) {\n return P(null !== t), t;\n }));\n }, t.prototype.Zt = function(t, e) {\n return li(t).put(lr.key, e);\n }, t.prototype.te = function(t, e) {\n return fi(t).put(Qr(this.R, e));\n }, \n /**\n * In-place updates the provided metadata to account for values in the given\n * TargetData. Saving is done separately. Returns true if there were any\n * changes to the metadata.\n */\n t.prototype.ee = function(t, e) {\n var n = !1;\n return t.targetId > e.highestTargetId && (e.highestTargetId = t.targetId, n = !0), \n t.sequenceNumber > e.highestListenSequenceNumber && (e.highestListenSequenceNumber = t.sequenceNumber, \n n = !0), n;\n }, t.prototype.getTargetCount = function(t) {\n return this.Xt(t).next((function(t) {\n return t.targetCount;\n }));\n }, t.prototype.getTargetData = function(t, e) {\n // Iterating by the canonicalId may yield more than one result because\n // canonicalId values are not required to be unique per target. This query\n // depends on the queryTargets index to be efficient.\n var n = kt(e), r = IDBKeyRange.bound([ n, Number.NEGATIVE_INFINITY ], [ n, Number.POSITIVE_INFINITY ]), i = null;\n return fi(t).$t({\n range: r,\n index: hr.queryTargetsIndexName\n }, (function(t, n, r) {\n var o = Gr(n);\n // After finding a potential match, check that the target is\n // actually equal to the requested target.\n Ct(e, o.target) && (i = o, r.done());\n })).next((function() {\n return i;\n }));\n }, t.prototype.addMatchingKeys = function(t, e, n) {\n var r = this, i = [], o = di(t);\n // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n return e.forEach((function(e) {\n var s = Xn(e.path);\n i.push(o.put(new fr(n, s))), i.push(r.referenceDelegate.addReference(t, n, e));\n })), Ir.waitFor(i);\n }, t.prototype.removeMatchingKeys = function(t, e, n) {\n var r = this, i = di(t);\n // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n return Ir.forEach(e, (function(e) {\n var o = Xn(e.path);\n return Ir.waitFor([ i.delete([ n, o ]), r.referenceDelegate.removeReference(t, n, e) ]);\n }));\n }, t.prototype.removeMatchingKeysForTargetId = function(t, e) {\n var n = di(t), r = IDBKeyRange.bound([ e ], [ e + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n return n.delete(r);\n }, t.prototype.getMatchingKeysForTargetId = function(t, e) {\n var n = IDBKeyRange.bound([ e ], [ e + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0), r = di(t), i = sn();\n return r.$t({\n range: n,\n Ft: !0\n }, (function(t, e, n) {\n var r = tr(t[1]), o = new ct(r);\n i = i.add(o);\n })).next((function() {\n return i;\n }));\n }, t.prototype.containsKey = function(t, e) {\n var n = Xn(e.path), r = IDBKeyRange.bound([ n ], [ B(n) ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0), i = 0;\n return di(t).$t({\n index: fr.documentTargetsIndex,\n Ft: !0,\n range: r\n }, (function(t, e, n) {\n var r = t[0];\n t[1], \n // Having a sentinel row for a document does not count as containing that document;\n // For the target cache, containing the document means the document is part of some\n // target.\n 0 !== r && (i++, n.done());\n })).next((function() {\n return i > 0;\n }));\n }, \n /**\n * Looks up a TargetData entry by target ID.\n *\n * @param targetId - The target ID of the TargetData entry to look up.\n * @returns The cached TargetData entry, or null if the cache has no entry for\n * the target.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.lt = function(t, e) {\n return fi(t).get(e).next((function(t) {\n return t ? Gr(t) : null;\n }));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Helper to get a typed SimpleDbStore for the queries object store.\n */\nfunction fi(t) {\n return Rr(t, hr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the target globals object store.\n */ function li(t) {\n return Rr(t, lr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the document target object store.\n */ function di(t) {\n return Rr(t, fr.store);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Verifies the error thrown by a LocalStore operation. If a LocalStore\n * operation fails because the primary lease has been taken by another client,\n * we ignore the error (the persistence layer will immediately call\n * `applyPrimaryLease` to propagate the primary state change). All other errors\n * are re-thrown.\n *\n * @param err - An error returned by a LocalStore operation.\n * @returns A Promise that resolves after we recovered, or the original error.\n */ function pi(t) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(e) {\n if (t.code !== N.FAILED_PRECONDITION || t.message !== gr) throw t;\n return C(\"LocalStore\", \"Unexpectedly lost primary lease\"), [ 2 /*return*/ ];\n }));\n }));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ function yi(t, e) {\n var n = t[0], r = t[1], i = e[0], o = e[1], s = q(n, i);\n return 0 === s ? q(r, o) : s;\n}\n\n/**\n * Used to calculate the nth sequence number. Keeps a rolling buffer of the\n * lowest n values passed to `addElement`, and finally reports the largest of\n * them in `maxValue`.\n */ var vi = /** @class */ function() {\n function t(t) {\n this.ne = t, this.buffer = new $e(yi), this.se = 0;\n }\n return t.prototype.ie = function() {\n return ++this.se;\n }, t.prototype.re = function(t) {\n var e = [ t, this.ie() ];\n if (this.buffer.size < this.ne) this.buffer = this.buffer.add(e); else {\n var n = this.buffer.last();\n yi(e, n) < 0 && (this.buffer = this.buffer.delete(n).add(e));\n }\n }, Object.defineProperty(t.prototype, \"maxValue\", {\n get: function() {\n // Guaranteed to be non-empty. If we decide we are not collecting any\n // sequence numbers, nthSequenceNumber below short-circuits. If we have\n // decided that we are collecting n sequence numbers, it's because n is some\n // percentage of the existing sequence numbers. That means we should never\n // be in a situation where we are collecting sequence numbers but don't\n // actually have any.\n return this.buffer.last()[0];\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(), mi = /** @class */ function() {\n function t(t, e) {\n this.garbageCollector = t, this.asyncQueue = e, this.oe = !1, this.ce = null;\n }\n return t.prototype.start = function(t) {\n -1 !== this.garbageCollector.params.cacheSizeCollectionThreshold && this.ue(t);\n }, t.prototype.stop = function() {\n this.ce && (this.ce.cancel(), this.ce = null);\n }, Object.defineProperty(t.prototype, \"started\", {\n get: function() {\n return null !== this.ce;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.ue = function(t) {\n var e = this, i = this.oe ? 3e5 : 6e4;\n C(\"LruGarbageCollector\", \"Garbage collection scheduled in \" + i + \"ms\"), this.ce = this.asyncQueue.enqueueAfterDelay(\"lru_garbage_collection\" /* LruGarbageCollection */ , i, (function() {\n return n(e, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n this.ce = null, this.oe = !0, n.label = 1;\n\n case 1:\n return n.trys.push([ 1, 3, , 7 ]), [ 4 /*yield*/ , t.collectGarbage(this.garbageCollector) ];\n\n case 2:\n return n.sent(), [ 3 /*break*/ , 7 ];\n\n case 3:\n return Nr(e = n.sent()) ? (C(\"LruGarbageCollector\", \"Ignoring IndexedDB error during garbage collection: \", e), \n [ 3 /*break*/ , 6 ]) : [ 3 /*break*/ , 4 ];\n\n case 4:\n return [ 4 /*yield*/ , pi(e) ];\n\n case 5:\n n.sent(), n.label = 6;\n\n case 6:\n return [ 3 /*break*/ , 7 ];\n\n case 7:\n return [ 4 /*yield*/ , this.ue(t) ];\n\n case 8:\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }, t;\n}(), gi = /** @class */ function() {\n function t(t, e) {\n this.ae = t, this.params = e;\n }\n return t.prototype.calculateTargetCount = function(t, e) {\n return this.ae.he(t).next((function(t) {\n return Math.floor(e / 100 * t);\n }));\n }, t.prototype.nthSequenceNumber = function(t, e) {\n var n = this;\n if (0 === e) return Ir.resolve(S.o);\n var r = new vi(e);\n return this.ae.forEachTarget(t, (function(t) {\n return r.re(t.sequenceNumber);\n })).next((function() {\n return n.ae.le(t, (function(t) {\n return r.re(t);\n }));\n })).next((function() {\n return r.maxValue;\n }));\n }, t.prototype.removeTargets = function(t, e, n) {\n return this.ae.removeTargets(t, e, n);\n }, t.prototype.removeOrphanedDocuments = function(t, e) {\n return this.ae.removeOrphanedDocuments(t, e);\n }, t.prototype.collect = function(t, e) {\n var n = this;\n return -1 === this.params.cacheSizeCollectionThreshold ? (C(\"LruGarbageCollector\", \"Garbage collection skipped; disabled\"), \n Ir.resolve(ti)) : this.getCacheSize(t).next((function(r) {\n return r < n.params.cacheSizeCollectionThreshold ? (C(\"LruGarbageCollector\", \"Garbage collection skipped; Cache size \" + r + \" is lower than threshold \" + n.params.cacheSizeCollectionThreshold), \n ti) : n.fe(t, e);\n }));\n }, t.prototype.getCacheSize = function(t) {\n return this.ae.getCacheSize(t);\n }, t.prototype.fe = function(t, e) {\n var n, r, i, o, s, u, a, c = this, h = Date.now();\n return this.calculateTargetCount(t, this.params.percentileToCollect).next((function(e) {\n // Cap at the configured max\n return e > c.params.maximumSequenceNumbersToCollect ? (C(\"LruGarbageCollector\", \"Capping sequence numbers to collect down to the maximum of \" + c.params.maximumSequenceNumbersToCollect + \" from \" + e), \n r = c.params.maximumSequenceNumbersToCollect) : r = e, o = Date.now(), c.nthSequenceNumber(t, r);\n })).next((function(r) {\n return n = r, s = Date.now(), c.removeTargets(t, n, e);\n })).next((function(e) {\n return i = e, u = Date.now(), c.removeOrphanedDocuments(t, n);\n })).next((function(t) {\n return a = Date.now(), k() <= y.DEBUG && C(\"LruGarbageCollector\", \"LRU Garbage Collection\\n\\tCounted targets in \" + (o - h) + \"ms\\n\\tDetermined least recently used \" + r + \" in \" + (s - o) + \"ms\\n\\tRemoved \" + i + \" targets in \" + (u - s) + \"ms\\n\\tRemoved \" + t + \" documents in \" + (a - u) + \"ms\\nTotal Duration: \" + (a - h) + \"ms\"), \n Ir.resolve({\n didRun: !0,\n sequenceNumbersCollected: r,\n targetsRemoved: i,\n documentsRemoved: t\n });\n }));\n }, t;\n}(), wi = /** @class */ function() {\n function t(t, e) {\n this.db = t, this.garbageCollector = function(t, e) {\n return new gi(t, e);\n }(this, e);\n }\n return t.prototype.he = function(t) {\n var e = this.de(t);\n return this.db.getTargetCache().getTargetCount(t).next((function(t) {\n return e.next((function(e) {\n return t + e;\n }));\n }));\n }, t.prototype.de = function(t) {\n var e = 0;\n return this.le(t, (function(t) {\n e++;\n })).next((function() {\n return e;\n }));\n }, t.prototype.forEachTarget = function(t, e) {\n return this.db.getTargetCache().forEachTarget(t, e);\n }, t.prototype.le = function(t, e) {\n return this.we(t, (function(t, n) {\n return e(n);\n }));\n }, t.prototype.addReference = function(t, e, n) {\n return bi(t, n);\n }, t.prototype.removeReference = function(t, e, n) {\n return bi(t, n);\n }, t.prototype.removeTargets = function(t, e, n) {\n return this.db.getTargetCache().removeTargets(t, e, n);\n }, t.prototype.markPotentiallyOrphaned = function(t, e) {\n return bi(t, e);\n }, \n /**\n * Returns true if anything would prevent this document from being garbage\n * collected, given that the document in question is not present in any\n * targets and has a sequence number less than or equal to the upper bound for\n * the collection run.\n */\n t.prototype._e = function(t, e) {\n return function(t, e) {\n var n = !1;\n return ai(t).Ot((function(r) {\n return oi(t, r, e).next((function(t) {\n return t && (n = !0), Ir.resolve(!t);\n }));\n })).next((function() {\n return n;\n }));\n }(t, e);\n }, t.prototype.removeOrphanedDocuments = function(t, e) {\n var n = this, r = this.db.getRemoteDocumentCache().newChangeBuffer(), i = [], o = 0;\n return this.we(t, (function(s, u) {\n if (u <= e) {\n var a = n._e(t, s).next((function(e) {\n if (!e) \n // Our size accounting requires us to read all documents before\n // removing them.\n return o++, r.getEntry(t, s).next((function() {\n return r.removeEntry(s), di(t).delete([ 0, Xn(s.path) ]);\n }));\n }));\n i.push(a);\n }\n })).next((function() {\n return Ir.waitFor(i);\n })).next((function() {\n return r.apply(t);\n })).next((function() {\n return o;\n }));\n }, t.prototype.removeTarget = function(t, e) {\n var n = e.withSequenceNumber(t.currentSequenceNumber);\n return this.db.getTargetCache().updateTargetData(t, n);\n }, t.prototype.updateLimboDocument = function(t, e) {\n return bi(t, e);\n }, \n /**\n * Call provided function for each document in the cache that is 'orphaned'. Orphaned\n * means not a part of any target, so the only entry in the target-document index for\n * that document will be the sentinel row (targetId 0), which will also have the sequence\n * number for the last time the document was accessed.\n */\n t.prototype.we = function(t, e) {\n var n, r = di(t), i = S.o;\n return r.$t({\n index: fr.documentTargetsIndex\n }, (function(t, r) {\n var o = t[0];\n t[1];\n var s = r.path, u = r.sequenceNumber;\n 0 === o ? (\n // if nextToReport is valid, report it, this is a new key so the\n // last one must not be a member of any targets.\n i !== S.o && e(new ct(tr(n)), i), \n // set nextToReport to be this sequence number. It's the next one we\n // might report, if we don't find any targets for this document.\n // Note that the sequence number must be defined when the targetId\n // is 0.\n i = u, n = s) : \n // set nextToReport to be invalid, we know we don't need to report\n // this one since we found a target for it.\n i = S.o;\n })).next((function() {\n // Since we report sequence numbers after getting to the next key, we\n // need to check if the last key we iterated over was an orphaned\n // document and report it.\n i !== S.o && e(new ct(tr(n)), i);\n }));\n }, t.prototype.getCacheSize = function(t) {\n return this.db.getRemoteDocumentCache().getSize(t);\n }, t;\n}();\n\n/**\n * This class is responsible for the scheduling of LRU garbage collection. It handles checking\n * whether or not GC is enabled, as well as which delay to use before the next run.\n */ function bi(t, e) {\n return di(t).put(\n /**\n * @returns A value suitable for writing a sentinel row in the target-document\n * store.\n */\n function(t, e) {\n return new fr(0, Xn(t.path), e);\n }(e, t.currentSequenceNumber));\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A map implementation that uses objects as keys. Objects must have an\n * associated equals function and must be immutable. Entries in the map are\n * stored together with the key being produced from the mapKeyFn. This map\n * automatically handles collisions of keys.\n */ var Ii = /** @class */ function() {\n function t(t, e) {\n this.mapKeyFn = t, this.equalsFn = e, \n /**\n * The inner map for a key/value pair. Due to the possibility of collisions we\n * keep a list of entries that we do a linear search through to find an actual\n * match. Note that collisions should be rare, so we still expect near\n * constant time lookups in practice.\n */\n this.inner = {}\n /** Get a value for this key, or undefined if it does not exist. */;\n }\n return t.prototype.get = function(t) {\n var e = this.mapKeyFn(t), n = this.inner[e];\n if (void 0 !== n) for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r], s = o[0], u = o[1];\n if (this.equalsFn(s, t)) return u;\n }\n }, t.prototype.has = function(t) {\n return void 0 !== this.get(t);\n }, \n /** Put this key and value in the map. */ t.prototype.set = function(t, e) {\n var n = this.mapKeyFn(t), r = this.inner[n];\n if (void 0 !== r) {\n for (var i = 0; i < r.length; i++) if (this.equalsFn(r[i][0], t)) return void (r[i] = [ t, e ]);\n r.push([ t, e ]);\n } else this.inner[n] = [ [ t, e ] ];\n }, \n /**\n * Remove this key from the map. Returns a boolean if anything was deleted.\n */\n t.prototype.delete = function(t) {\n var e = this.mapKeyFn(t), n = this.inner[e];\n if (void 0 === n) return !1;\n for (var r = 0; r < n.length; r++) if (this.equalsFn(n[r][0], t)) return 1 === n.length ? delete this.inner[e] : n.splice(r, 1), \n !0;\n return !1;\n }, t.prototype.forEach = function(t) {\n Q(this.inner, (function(e, n) {\n for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r], s = o[0], u = o[1];\n t(s, u);\n }\n }));\n }, t.prototype.isEmpty = function() {\n return z(this.inner);\n }, t;\n}(), Ti = /** @class */ function() {\n function t() {\n // A mapping of document key to the new cache entry that should be written (or null if any\n // existing cache entry should be removed).\n this.changes = new Ii((function(t) {\n return t.toString();\n }), (function(t, e) {\n return t.isEqual(e);\n })), this.changesApplied = !1;\n }\n return t.prototype.getReadTime = function(t) {\n var e = this.changes.get(t);\n return e ? e.readTime : K.min();\n }, \n /**\n * Buffers a `RemoteDocumentCache.addEntry()` call.\n *\n * You can only modify documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */\n t.prototype.addEntry = function(t, e) {\n this.assertNotApplied(), this.changes.set(t.key, {\n document: t,\n readTime: e\n });\n }, \n /**\n * Buffers a `RemoteDocumentCache.removeEntry()` call.\n *\n * You can only remove documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */\n t.prototype.removeEntry = function(t, e) {\n void 0 === e && (e = null), this.assertNotApplied(), this.changes.set(t, {\n document: Nt.newInvalidDocument(t),\n readTime: e\n });\n }, \n /**\n * Looks up an entry in the cache. The buffered changes will first be checked,\n * and if no buffered change applies, this will forward to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction - The transaction in which to perform any persistence\n * operations.\n * @param documentKey - The key of the entry to look up.\n * @returns The cached document or an invalid document if we have nothing\n * cached.\n */\n t.prototype.getEntry = function(t, e) {\n this.assertNotApplied();\n var n = this.changes.get(e);\n return void 0 !== n ? Ir.resolve(n.document) : this.getFromCache(t, e);\n }, \n /**\n * Looks up several entries in the cache, forwarding to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction - The transaction in which to perform any persistence\n * operations.\n * @param documentKeys - The keys of the entries to look up.\n * @returns A map of cached documents, indexed by key. If an entry cannot be\n * found, the corresponding key will be mapped to an invalid document.\n */\n t.prototype.getEntries = function(t, e) {\n return this.getAllFromCache(t, e);\n }, \n /**\n * Applies buffered changes to the underlying RemoteDocumentCache, using\n * the provided transaction.\n */\n t.prototype.apply = function(t) {\n return this.assertNotApplied(), this.changesApplied = !0, this.applyChanges(t);\n }, \n /** Helper to assert this.changes is not null */ t.prototype.assertNotApplied = function() {}, \n t;\n}(), _i = /** @class */ function() {\n /**\n * @param serializer - The document serializer.\n * @param indexManager - The query indexes that need to be maintained.\n */\n function t(t, e) {\n this.R = t, this.Ut = e\n /**\n * Adds the supplied entries to the cache.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */;\n }\n return t.prototype.addEntry = function(t, e, n) {\n return Ni(t).put(Di(e), n);\n }, \n /**\n * Removes a document from the cache.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */\n t.prototype.removeEntry = function(t, e) {\n var n = Ni(t), r = Di(e);\n return n.delete(r);\n }, \n /**\n * Updates the current cache size.\n *\n * Callers to `addEntry()` and `removeEntry()` *must* call this afterwards to update the\n * cache's metadata.\n */\n t.prototype.updateMetadata = function(t, e) {\n var n = this;\n return this.getMetadata(t).next((function(r) {\n return r.byteSize += e, n.me(t, r);\n }));\n }, t.prototype.getEntry = function(t, e) {\n var n = this;\n return Ni(t).get(Di(e)).next((function(t) {\n return n.ye(e, t);\n }));\n }, \n /**\n * Looks up an entry in the cache.\n *\n * @param documentKey - The key of the entry to look up.\n * @returns The cached document entry and its size.\n */\n t.prototype.ge = function(t, e) {\n var n = this;\n return Ni(t).get(Di(e)).next((function(t) {\n return {\n document: n.ye(e, t),\n size: ri(t)\n };\n }));\n }, t.prototype.getEntries = function(t, e) {\n var n = this, r = Ze();\n return this.pe(t, e, (function(t, e) {\n var i = n.ye(t, e);\n r = r.insert(t, i);\n })).next((function() {\n return r;\n }));\n }, \n /**\n * Looks up several entries in the cache.\n *\n * @param documentKeys - The set of keys entries to look up.\n * @returns A map of documents indexed by key and a map of sizes indexed by\n * key (zero if the document does not exist).\n */\n t.prototype.Ee = function(t, e) {\n var n = this, r = Ze(), i = new We(ct.comparator);\n return this.pe(t, e, (function(t, e) {\n var o = n.ye(t, e);\n r = r.insert(t, o), i = i.insert(t, ri(e));\n })).next((function() {\n return {\n documents: r,\n Te: i\n };\n }));\n }, t.prototype.pe = function(t, e, n) {\n if (e.isEmpty()) return Ir.resolve();\n var r = IDBKeyRange.bound(e.first().path.toArray(), e.last().path.toArray()), i = e.getIterator(), o = i.getNext();\n return Ni(t).$t({\n range: r\n }, (function(t, e, r) {\n // Go through keys not found in cache.\n for (var s = ct.fromSegments(t); o && ct.comparator(o, s) < 0; ) n(o, null), o = i.getNext();\n o && o.isEqual(s) && (\n // Key found in cache.\n n(o, e), o = i.hasNext() ? i.getNext() : null), \n // Skip to the next key (if there is one).\n o ? r.Ct(o.path.toArray()) : r.done();\n })).next((function() {\n // The rest of the keys are not in the cache. One case where `iterate`\n // above won't go through them is when the cache is empty.\n for (;o; ) n(o, null), o = i.hasNext() ? i.getNext() : null;\n }));\n }, t.prototype.getDocumentsMatchingQuery = function(t, e, n) {\n var r = this, i = Ze(), o = e.path.length + 1, s = {};\n if (n.isEqual(K.min())) {\n // Documents are ordered by key, so we can use a prefix scan to narrow\n // down the documents we need to match the query against.\n var u = e.path.toArray();\n s.range = IDBKeyRange.lowerBound(u);\n } else {\n // Execute an index-free query and filter by read time. This is safe\n // since all document changes to queries that have a\n // lastLimboFreeSnapshotVersion (`sinceReadTime`) have a read time set.\n var a = e.path.toArray(), c = qr(n);\n s.range = IDBKeyRange.lowerBound([ a, c ], \n /* open= */ !0), s.index = ar.collectionReadTimeIndex;\n }\n return Ni(t).$t(s, (function(t, n, s) {\n // The query is actually returning any path that starts with the query\n // path prefix which may include documents in subcollections. For\n // example, a query on 'rooms' will return rooms/abc/messages/xyx but we\n // shouldn't match it. Fix this by discarding rows with document keys\n // more than one segment longer than the query path.\n if (t.length === o) {\n var u = Mr(r.R, n);\n e.path.isPrefixOf(u.key.path) ? ue(e, u) && (i = i.insert(u.key, u)) : s.done();\n }\n })).next((function() {\n return i;\n }));\n }, t.prototype.newChangeBuffer = function(t) {\n return new Ei(this, !!t && t.trackRemovals);\n }, t.prototype.getSize = function(t) {\n return this.getMetadata(t).next((function(t) {\n return t.byteSize;\n }));\n }, t.prototype.getMetadata = function(t) {\n return Si(t).get(cr.key).next((function(t) {\n return P(!!t), t;\n }));\n }, t.prototype.me = function(t, e) {\n return Si(t).put(cr.key, e);\n }, \n /**\n * Decodes `remoteDoc` and returns the document (or null, if the document\n * corresponds to the format used for sentinel deletes).\n */\n t.prototype.ye = function(t, e) {\n if (e) {\n var n = Mr(this.R, e);\n // Whether the document is a sentinel removal and should only be used in the\n // `getNewDocumentChanges()`\n if (!n.isNoDocument() || !n.version.isEqual(K.min())) return n;\n }\n return Nt.newInvalidDocument(t);\n }, t;\n}(), Ei = /** @class */ function(e) {\n /**\n * @param documentCache - The IndexedDbRemoteDocumentCache to apply the changes to.\n * @param trackRemovals - Whether to create sentinel deletes that can be tracked by\n * `getNewDocumentChanges()`.\n */\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).Ie = t, r.trackRemovals = n, \n // A map of document sizes prior to applying the changes in this buffer.\n r.Ae = new Ii((function(t) {\n return t.toString();\n }), (function(t, e) {\n return t.isEqual(e);\n })), r;\n }\n return t(n, e), n.prototype.applyChanges = function(t) {\n var e = this, n = [], r = 0, i = new $e((function(t, e) {\n return q(t.canonicalString(), e.canonicalString());\n }));\n return this.changes.forEach((function(o, s) {\n var u = e.Ae.get(o);\n if (s.document.isValidDocument()) {\n var a = Vr(e.Ie.R, s.document, e.getReadTime(o));\n i = i.add(o.path.popLast());\n var c = ri(a);\n r += c - u, n.push(e.Ie.addEntry(t, o, a));\n } else if (r -= u, e.trackRemovals) {\n // In order to track removals, we store a \"sentinel delete\" in the\n // RemoteDocumentCache. This entry is represented by a NoDocument\n // with a version of 0 and ignored by `maybeDecodeDocument()` but\n // preserved in `getNewDocumentChanges()`.\n var h = Vr(e.Ie.R, Nt.newNoDocument(o, K.min()), e.getReadTime(o));\n n.push(e.Ie.addEntry(t, o, h));\n } else n.push(e.Ie.removeEntry(t, o));\n })), i.forEach((function(r) {\n n.push(e.Ie.Ut.addToCollectionParentIndex(t, r));\n })), n.push(this.Ie.updateMetadata(t, r)), Ir.waitFor(n);\n }, n.prototype.getFromCache = function(t, e) {\n var n = this;\n // Record the size of everything we load from the cache so we can compute a delta later.\n return this.Ie.ge(t, e).next((function(t) {\n return n.Ae.set(e, t.size), t.document;\n }));\n }, n.prototype.getAllFromCache = function(t, e) {\n var n = this;\n // Record the size of everything we load from the cache so we can compute\n // a delta later.\n return this.Ie.Ee(t, e).next((function(t) {\n var e = t.documents;\n // Note: `getAllFromCache` returns two maps instead of a single map from\n // keys to `DocumentSizeEntry`s. This is to allow returning the\n // `MutableDocumentMap` directly, without a conversion.\n return t.Te.forEach((function(t, e) {\n n.Ae.set(t, e);\n })), e;\n }));\n }, n;\n}(Ti);\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * An in-memory buffer of entries to be written to a RemoteDocumentCache.\n * It can be used to batch up a set of changes to be written to the cache, but\n * additionally supports reading entries back with the `getEntry()` method,\n * falling back to the underlying RemoteDocumentCache if no entry is\n * buffered.\n *\n * Entries added to the cache *must* be read first. This is to facilitate\n * calculating the size delta of the pending changes.\n *\n * PORTING NOTE: This class was implemented then removed from other platforms.\n * If byte-counting ends up being needed on the other platforms, consider\n * porting this class as part of that implementation work.\n */ function Si(t) {\n return Rr(t, cr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the remoteDocuments object store.\n */ function Ni(t) {\n return Rr(t, ar.store);\n}\n\nfunction Di(t) {\n return t.path.toArray();\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** Performs database creation and schema upgrades. */ var Ai = /** @class */ function() {\n function t(t) {\n this.R = t;\n }\n /**\n * Performs database creation and schema upgrades.\n *\n * Note that in production, this method is only ever used to upgrade the schema\n * to SCHEMA_VERSION. Different values of toVersion are only used for testing\n * and local feature development.\n */ return t.prototype.Rt = function(t, e, n, r) {\n var i = this;\n P(n < r && n >= 0 && r <= 11);\n var o = new Tr(\"createOrUpgrade\", e);\n n < 1 && r >= 1 && (function(t) {\n t.createObjectStore(nr.store);\n }(t), function(t) {\n t.createObjectStore(rr.store, {\n keyPath: rr.keyPath\n }), t.createObjectStore(ir.store, {\n keyPath: ir.keyPath,\n autoIncrement: !0\n }).createIndex(ir.userMutationsIndex, ir.userMutationsKeyPath, {\n unique: !0\n }), t.createObjectStore(or.store);\n }(t), ki(t), function(t) {\n t.createObjectStore(ar.store);\n }(t));\n // Migration 2 to populate the targetGlobal object no longer needed since\n // migration 3 unconditionally clears it.\n var s = Ir.resolve();\n return n < 3 && r >= 3 && (\n // Brand new clients don't need to drop and recreate--only clients that\n // potentially have corrupt data.\n 0 !== n && (function(t) {\n t.deleteObjectStore(fr.store), t.deleteObjectStore(hr.store), t.deleteObjectStore(lr.store);\n }(t), ki(t)), s = s.next((function() {\n /**\n * Creates the target global singleton row.\n *\n * @param txn - The version upgrade transaction for indexeddb\n */\n return function(t) {\n var e = t.store(lr.store), n = new lr(\n /*highestTargetId=*/ 0, \n /*lastListenSequenceNumber=*/ 0, K.min().toTimestamp(), \n /*targetCount=*/ 0);\n return e.put(lr.key, n);\n }(o);\n }))), n < 4 && r >= 4 && (0 !== n && (\n // Schema version 3 uses auto-generated keys to generate globally unique\n // mutation batch IDs (this was previously ensured internally by the\n // client). To migrate to the new schema, we have to read all mutations\n // and write them back out. We preserve the existing batch IDs to guarantee\n // consistency with other object stores. Any further mutation batch IDs will\n // be auto-generated.\n s = s.next((function() {\n return function(t, e) {\n return e.store(ir.store).Nt().next((function(n) {\n t.deleteObjectStore(ir.store), t.createObjectStore(ir.store, {\n keyPath: ir.keyPath,\n autoIncrement: !0\n }).createIndex(ir.userMutationsIndex, ir.userMutationsKeyPath, {\n unique: !0\n });\n var r = e.store(ir.store), i = n.map((function(t) {\n return r.put(t);\n }));\n return Ir.waitFor(i);\n }));\n }(t, o);\n }))), s = s.next((function() {\n !function(t) {\n t.createObjectStore(pr.store, {\n keyPath: pr.keyPath\n });\n }(t);\n }))), n < 5 && r >= 5 && (s = s.next((function() {\n return i.Re(o);\n }))), n < 6 && r >= 6 && (s = s.next((function() {\n return function(t) {\n t.createObjectStore(cr.store);\n }(t), i.be(o);\n }))), n < 7 && r >= 7 && (s = s.next((function() {\n return i.ve(o);\n }))), n < 8 && r >= 8 && (s = s.next((function() {\n return i.Pe(t, o);\n }))), n < 9 && r >= 9 && (s = s.next((function() {\n // Multi-Tab used to manage its own changelog, but this has been moved\n // to the DbRemoteDocument object store itself. Since the previous change\n // log only contained transient data, we can drop its object store.\n !function(t) {\n t.objectStoreNames.contains(\"remoteDocumentChanges\") && t.deleteObjectStore(\"remoteDocumentChanges\");\n }(t), function(t) {\n var e = t.objectStore(ar.store);\n e.createIndex(ar.readTimeIndex, ar.readTimeIndexPath, {\n unique: !1\n }), e.createIndex(ar.collectionReadTimeIndex, ar.collectionReadTimeIndexPath, {\n unique: !1\n });\n }(e);\n }))), n < 10 && r >= 10 && (s = s.next((function() {\n return i.Ve(o);\n }))), n < 11 && r >= 11 && (s = s.next((function() {\n !function(t) {\n t.createObjectStore(yr.store, {\n keyPath: yr.keyPath\n });\n }(t), function(t) {\n t.createObjectStore(vr.store, {\n keyPath: vr.keyPath\n });\n }(t);\n }))), s;\n }, t.prototype.be = function(t) {\n var e = 0;\n return t.store(ar.store).$t((function(t, n) {\n e += ri(n);\n })).next((function() {\n var n = new cr(e);\n return t.store(cr.store).put(cr.key, n);\n }));\n }, t.prototype.Re = function(t) {\n var e = this, n = t.store(rr.store), r = t.store(ir.store);\n return n.Nt().next((function(n) {\n return Ir.forEach(n, (function(n) {\n var i = IDBKeyRange.bound([ n.userId, -1 ], [ n.userId, n.lastAcknowledgedBatchId ]);\n return r.Nt(ir.userMutationsIndex, i).next((function(r) {\n return Ir.forEach(r, (function(r) {\n P(r.userId === n.userId);\n var i = Kr(e.R, r);\n return ni(t, n.userId, i).next((function() {}));\n }));\n }));\n }));\n }));\n }, \n /**\n * Ensures that every document in the remote document cache has a corresponding sentinel row\n * with a sequence number. Missing rows are given the most recently used sequence number.\n */\n t.prototype.ve = function(t) {\n var e = t.store(fr.store), n = t.store(ar.store);\n return t.store(lr.store).get(lr.key).next((function(t) {\n var r = [];\n return n.$t((function(n, i) {\n var o = new H(n), s = function(t) {\n return [ 0, Xn(t) ];\n }(o);\n r.push(e.get(s).next((function(n) {\n return n ? Ir.resolve() : function(n) {\n return e.put(new fr(0, Xn(n), t.highestListenSequenceNumber));\n }(o);\n })));\n })).next((function() {\n return Ir.waitFor(r);\n }));\n }));\n }, t.prototype.Pe = function(t, e) {\n // Create the index.\n t.createObjectStore(dr.store, {\n keyPath: dr.keyPath\n });\n var n = e.store(dr.store), r = new Xr, i = function(t) {\n if (r.add(t)) {\n var e = t.lastSegment(), i = t.popLast();\n return n.put({\n collectionId: e,\n parent: Xn(i)\n });\n }\n };\n // Helper to add an index entry iff we haven't already written it.\n // Index existing remote documents.\n return e.store(ar.store).$t({\n Ft: !0\n }, (function(t, e) {\n var n = new H(t);\n return i(n.popLast());\n })).next((function() {\n return e.store(or.store).$t({\n Ft: !0\n }, (function(t, e) {\n t[0];\n var n = t[1];\n t[2];\n var r = tr(n);\n return i(r.popLast());\n }));\n }));\n }, t.prototype.Ve = function(t) {\n var e = this, n = t.store(hr.store);\n return n.$t((function(t, r) {\n var i = Gr(r), o = Qr(e.R, i);\n return n.put(o);\n }));\n }, t;\n}();\n\nfunction ki(t) {\n t.createObjectStore(fr.store, {\n keyPath: fr.keyPath\n }).createIndex(fr.documentTargetsIndex, fr.documentTargetsKeyPath, {\n unique: !0\n }), \n // NOTE: This is unique only because the TargetId is the suffix.\n t.createObjectStore(hr.store, {\n keyPath: hr.keyPath\n }).createIndex(hr.queryTargetsIndexName, hr.queryTargetsKeyPath, {\n unique: !0\n }), t.createObjectStore(lr.store);\n}\n\nvar Ci = \"Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.\", xi = /** @class */ function() {\n function t(\n /**\n * Whether to synchronize the in-memory state of multiple tabs and share\n * access to local persistence.\n */\n e, n, r, i, o, s, u, a, c, \n /**\n * If set to true, forcefully obtains database access. Existing tabs will\n * no longer be able to access IndexedDB.\n */\n h) {\n if (this.allowTabSynchronization = e, this.persistenceKey = n, this.clientId = r, \n this.Se = o, this.window = s, this.document = u, this.De = c, this.Ce = h, this.Ne = null, \n this.xe = !1, this.isPrimary = !1, this.networkEnabled = !0, \n /** Our window.unload handler, if registered. */\n this.ke = null, this.inForeground = !1, \n /** Our 'visibilitychange' listener if registered. */\n this.Fe = null, \n /** The client metadata refresh task. */\n this.$e = null, \n /** The last time we garbage collected the client metadata object store. */\n this.Oe = Number.NEGATIVE_INFINITY, \n /** A listener to notify on primary state changes. */\n this.Me = function(t) {\n return Promise.resolve();\n }, !t.yt()) throw new D(N.UNIMPLEMENTED, \"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.\");\n this.referenceDelegate = new wi(this, i), this.Le = n + \"main\", this.R = new Fr(a), \n this.Be = new _r(this.Le, 11, new Ai(this.R)), this.qe = new hi(this.referenceDelegate, this.R), \n this.Ut = new Jr, this.Ue = function(t, e) {\n return new _i(t, e);\n }(this.R, this.Ut), this.Ke = new Wr, this.window && this.window.localStorage ? this.Qe = this.window.localStorage : (this.Qe = null, \n !1 === h && x(\"IndexedDbPersistence\", \"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page.\"));\n }\n /**\n * Attempt to start IndexedDb persistence.\n *\n * @returns Whether persistence was enabled.\n */ return t.prototype.start = function() {\n var t = this;\n // NOTE: This is expected to fail sometimes (in the case of another tab\n // already having the persistence lock), so it's the first thing we should\n // do.\n return this.je().then((function() {\n if (!t.isPrimary && !t.allowTabSynchronization) \n // Fail `start()` if `synchronizeTabs` is disabled and we cannot\n // obtain the primary lease.\n throw new D(N.FAILED_PRECONDITION, Ci);\n return t.We(), t.Ge(), t.ze(), t.runTransaction(\"getHighestListenSequenceNumber\", \"readonly\", (function(e) {\n return t.qe.getHighestSequenceNumber(e);\n }));\n })).then((function(e) {\n t.Ne = new S(e, t.De);\n })).then((function() {\n t.xe = !0;\n })).catch((function(e) {\n return t.Be && t.Be.close(), Promise.reject(e);\n }));\n }, \n /**\n * Registers a listener that gets called when the primary state of the\n * instance changes. Upon registering, this listener is invoked immediately\n * with the current primary state.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.He = function(t) {\n var e = this;\n return this.Me = function(i) {\n return n(e, void 0, void 0, (function() {\n return r(this, (function(e) {\n return this.started ? [ 2 /*return*/ , t(i) ] : [ 2 /*return*/ ];\n }));\n }));\n }, t(this.isPrimary);\n }, \n /**\n * Registers a listener that gets called when the database receives a\n * version change event indicating that it has deleted.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.setDatabaseDeletedListener = function(t) {\n var e = this;\n this.Be.vt((function(i) {\n return n(e, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return null === i.newVersion ? [ 4 /*yield*/ , t() ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }, \n /**\n * Adjusts the current network state in the client's metadata, potentially\n * affecting the primary lease.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.setNetworkEnabled = function(t) {\n var e = this;\n this.networkEnabled !== t && (this.networkEnabled = t, \n // Schedule a primary lease refresh for immediate execution. The eventual\n // lease update will be propagated via `primaryStateListener`.\n this.Se.enqueueAndForget((function() {\n return n(e, void 0, void 0, (function() {\n return r(this, (function(t) {\n switch (t.label) {\n case 0:\n return this.started ? [ 4 /*yield*/ , this.je() ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })));\n }, \n /**\n * Updates the client metadata in IndexedDb and attempts to either obtain or\n * extend the primary lease for the local client. Asynchronously notifies the\n * primary state listener if the client either newly obtained or released its\n * primary lease.\n */\n t.prototype.je = function() {\n var t = this;\n return this.runTransaction(\"updateClientMetadataAndTryBecomePrimary\", \"readwrite\", (function(e) {\n return Li(e).put(new pr(t.clientId, Date.now(), t.networkEnabled, t.inForeground)).next((function() {\n if (t.isPrimary) return t.Je(e).next((function(e) {\n e || (t.isPrimary = !1, t.Se.enqueueRetryable((function() {\n return t.Me(!1);\n })));\n }));\n })).next((function() {\n return t.Ye(e);\n })).next((function(n) {\n return t.isPrimary && !n ? t.Xe(e).next((function() {\n return !1;\n })) : !!n && t.Ze(e).next((function() {\n return !0;\n }));\n }));\n })).catch((function(e) {\n if (Nr(e)) \n // Proceed with the existing state. Any subsequent access to\n // IndexedDB will verify the lease.\n return C(\"IndexedDbPersistence\", \"Failed to extend owner lease: \", e), t.isPrimary;\n if (!t.allowTabSynchronization) throw e;\n return C(\"IndexedDbPersistence\", \"Releasing owner lease after error during lease refresh\", e), \n /* isPrimary= */ !1;\n })).then((function(e) {\n t.isPrimary !== e && t.Se.enqueueRetryable((function() {\n return t.Me(e);\n })), t.isPrimary = e;\n }));\n }, t.prototype.Je = function(t) {\n var e = this;\n return Ri(t).get(nr.key).next((function(t) {\n return Ir.resolve(e.tn(t));\n }));\n }, t.prototype.en = function(t) {\n return Li(t).delete(this.clientId);\n }, \n /**\n * If the garbage collection threshold has passed, prunes the\n * RemoteDocumentChanges and the ClientMetadata store based on the last update\n * time of all clients.\n */\n t.prototype.nn = function() {\n return n(this, void 0, void 0, (function() {\n var t, e, n, i, o = this;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return !this.isPrimary || this.sn(this.Oe, 18e5) ? [ 3 /*break*/ , 2 ] : (this.Oe = Date.now(), \n [ 4 /*yield*/ , this.runTransaction(\"maybeGarbageCollectMultiClientState\", \"readwrite-primary\", (function(t) {\n var e = Rr(t, pr.store);\n return e.Nt().next((function(t) {\n var n = o.rn(t, 18e5), r = t.filter((function(t) {\n return -1 === n.indexOf(t);\n }));\n // Delete metadata for clients that are no longer considered active.\n return Ir.forEach(r, (function(t) {\n return e.delete(t.clientId);\n })).next((function() {\n return r;\n }));\n }));\n })).catch((function() {\n return [];\n })) ]);\n\n case 1:\n // Delete potential leftover entries that may continue to mark the\n // inactive clients as zombied in LocalStorage.\n // Ideally we'd delete the IndexedDb and LocalStorage zombie entries for\n // the client atomically, but we can't. So we opt to delete the IndexedDb\n // entries first to avoid potentially reviving a zombied client.\n if (t = r.sent(), this.Qe) for (e = 0, n = t; e < n.length; e++) i = n[e], this.Qe.removeItem(this.on(i.clientId));\n r.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * Schedules a recurring timer to update the client metadata and to either\n * extend or acquire the primary lease if the client is eligible.\n */\n t.prototype.ze = function() {\n var t = this;\n this.$e = this.Se.enqueueAfterDelay(\"client_metadata_refresh\" /* ClientMetadataRefresh */ , 4e3, (function() {\n return t.je().then((function() {\n return t.nn();\n })).then((function() {\n return t.ze();\n }));\n }));\n }, \n /** Checks whether `client` is the local client. */ t.prototype.tn = function(t) {\n return !!t && t.ownerId === this.clientId;\n }, \n /**\n * Evaluate the state of all active clients and determine whether the local\n * client is or can act as the holder of the primary lease. Returns whether\n * the client is eligible for the lease, but does not actually acquire it.\n * May return 'false' even if there is no active leaseholder and another\n * (foreground) client should become leaseholder instead.\n */\n t.prototype.Ye = function(t) {\n var e = this;\n return this.Ce ? Ir.resolve(!0) : Ri(t).get(nr.key).next((function(n) {\n // A client is eligible for the primary lease if:\n // - its network is enabled and the client's tab is in the foreground.\n // - its network is enabled and no other client's tab is in the\n // foreground.\n // - every clients network is disabled and the client's tab is in the\n // foreground.\n // - every clients network is disabled and no other client's tab is in\n // the foreground.\n // - the `forceOwningTab` setting was passed in.\n if (null !== n && e.sn(n.leaseTimestampMs, 5e3) && !e.cn(n.ownerId)) {\n if (e.tn(n) && e.networkEnabled) return !0;\n if (!e.tn(n)) {\n if (!n.allowTabSynchronization) \n // Fail the `canActAsPrimary` check if the current leaseholder has\n // not opted into multi-tab synchronization. If this happens at\n // client startup, we reject the Promise returned by\n // `enablePersistence()` and the user can continue to use Firestore\n // with in-memory persistence.\n // If this fails during a lease refresh, we will instead block the\n // AsyncQueue from executing further operations. Note that this is\n // acceptable since mixing & matching different `synchronizeTabs`\n // settings is not supported.\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can\n // no longer be turned off.\n throw new D(N.FAILED_PRECONDITION, Ci);\n return !1;\n }\n }\n return !(!e.networkEnabled || !e.inForeground) || Li(t).Nt().next((function(t) {\n return void 0 === e.rn(t, 5e3).find((function(t) {\n if (e.clientId !== t.clientId) {\n var n = !e.networkEnabled && t.networkEnabled, r = !e.inForeground && t.inForeground, i = e.networkEnabled === t.networkEnabled;\n if (n || r && i) return !0;\n }\n return !1;\n }));\n }));\n })).next((function(t) {\n return e.isPrimary !== t && C(\"IndexedDbPersistence\", \"Client \" + (t ? \"is\" : \"is not\") + \" eligible for a primary lease.\"), \n t;\n }));\n }, t.prototype.shutdown = function() {\n return n(this, void 0, void 0, (function() {\n var t = this;\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n // Use `SimpleDb.runTransaction` directly to avoid failing if another tab\n // has obtained the primary lease.\n // The shutdown() operations are idempotent and can be called even when\n // start() aborted (e.g. because it couldn't acquire the persistence lease).\n return this.xe = !1, this.un(), this.$e && (this.$e.cancel(), this.$e = null), this.an(), \n this.hn(), [ 4 /*yield*/ , this.Be.runTransaction(\"shutdown\", \"readwrite\", [ nr.store, pr.store ], (function(e) {\n var n = new xr(e, S.o);\n return t.Xe(n).next((function() {\n return t.en(n);\n }));\n })) ];\n\n case 1:\n // The shutdown() operations are idempotent and can be called even when\n // start() aborted (e.g. because it couldn't acquire the persistence lease).\n // Use `SimpleDb.runTransaction` directly to avoid failing if another tab\n // has obtained the primary lease.\n return e.sent(), this.Be.close(), \n // Remove the entry marking the client as zombied from LocalStorage since\n // we successfully deleted its metadata from IndexedDb.\n this.ln(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * Returns clients that are not zombied and have an updateTime within the\n * provided threshold.\n */\n t.prototype.rn = function(t, e) {\n var n = this;\n return t.filter((function(t) {\n return n.sn(t.updateTimeMs, e) && !n.cn(t.clientId);\n }));\n }, \n /**\n * Returns the IDs of the clients that are currently active. If multi-tab\n * is not supported, returns an array that only contains the local client's\n * ID.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */\n t.prototype.fn = function() {\n var t = this;\n return this.runTransaction(\"getActiveClients\", \"readonly\", (function(e) {\n return Li(e).Nt().next((function(e) {\n return t.rn(e, 18e5).map((function(t) {\n return t.clientId;\n }));\n }));\n }));\n }, Object.defineProperty(t.prototype, \"started\", {\n get: function() {\n return this.xe;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.getMutationQueue = function(t) {\n return ii.Qt(t, this.R, this.Ut, this.referenceDelegate);\n }, t.prototype.getTargetCache = function() {\n return this.qe;\n }, t.prototype.getRemoteDocumentCache = function() {\n return this.Ue;\n }, t.prototype.getIndexManager = function() {\n return this.Ut;\n }, t.prototype.getBundleCache = function() {\n return this.Ke;\n }, t.prototype.runTransaction = function(t, e, n) {\n var r = this;\n C(\"IndexedDbPersistence\", \"Starting transaction:\", t);\n var i, o = \"readonly\" === e ? \"readonly\" : \"readwrite\";\n // Do all transactions as readwrite against all object stores, since we\n // are the only reader/writer.\n return this.Be.runTransaction(t, o, mr, (function(o) {\n return i = new xr(o, r.Ne ? r.Ne.next() : S.o), \"readwrite-primary\" === e ? r.Je(i).next((function(t) {\n return !!t || r.Ye(i);\n })).next((function(e) {\n if (!e) throw x(\"Failed to obtain primary lease for action '\" + t + \"'.\"), r.isPrimary = !1, \n r.Se.enqueueRetryable((function() {\n return r.Me(!1);\n })), new D(N.FAILED_PRECONDITION, gr);\n return n(i);\n })).next((function(t) {\n return r.Ze(i).next((function() {\n return t;\n }));\n })) : r.dn(i).next((function() {\n return n(i);\n }));\n })).then((function(t) {\n return i.raiseOnCommittedEvent(), t;\n }));\n }, \n /**\n * Verifies that the current tab is the primary leaseholder or alternatively\n * that the leaseholder has opted into multi-tab synchronization.\n */\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can no longer\n // be turned off.\n t.prototype.dn = function(t) {\n var e = this;\n return Ri(t).get(nr.key).next((function(t) {\n if (null !== t && e.sn(t.leaseTimestampMs, 5e3) && !e.cn(t.ownerId) && !e.tn(t) && !(e.Ce || e.allowTabSynchronization && t.allowTabSynchronization)) throw new D(N.FAILED_PRECONDITION, Ci);\n }));\n }, \n /**\n * Obtains or extends the new primary lease for the local client. This\n * method does not verify that the client is eligible for this lease.\n */\n t.prototype.Ze = function(t) {\n var e = new nr(this.clientId, this.allowTabSynchronization, Date.now());\n return Ri(t).put(nr.key, e);\n }, t.yt = function() {\n return _r.yt();\n }, \n /** Checks the primary lease and removes it if we are the current primary. */ t.prototype.Xe = function(t) {\n var e = this, n = Ri(t);\n return n.get(nr.key).next((function(t) {\n return e.tn(t) ? (C(\"IndexedDbPersistence\", \"Releasing primary lease.\"), n.delete(nr.key)) : Ir.resolve();\n }));\n }, \n /** Verifies that `updateTimeMs` is within `maxAgeMs`. */ t.prototype.sn = function(t, e) {\n var n = Date.now();\n return !(t < n - e || t > n && (x(\"Detected an update time that is in the future: \" + t + \" > \" + n), \n 1));\n }, t.prototype.We = function() {\n var t = this;\n null !== this.document && \"function\" == typeof this.document.addEventListener && (this.Fe = function() {\n t.Se.enqueueAndForget((function() {\n return t.inForeground = \"visible\" === t.document.visibilityState, t.je();\n }));\n }, this.document.addEventListener(\"visibilitychange\", this.Fe), this.inForeground = \"visible\" === this.document.visibilityState);\n }, t.prototype.an = function() {\n this.Fe && (this.document.removeEventListener(\"visibilitychange\", this.Fe), this.Fe = null);\n }, \n /**\n * Attaches a window.unload handler that will synchronously write our\n * clientId to a \"zombie client id\" location in LocalStorage. This can be used\n * by tabs trying to acquire the primary lease to determine that the lease\n * is no longer valid even if the timestamp is recent. This is particularly\n * important for the refresh case (so the tab correctly re-acquires the\n * primary lease). LocalStorage is used for this rather than IndexedDb because\n * it is a synchronous API and so can be used reliably from an unload\n * handler.\n */\n t.prototype.Ge = function() {\n var t, e = this;\n \"function\" == typeof (null === (t = this.window) || void 0 === t ? void 0 : t.addEventListener) && (this.ke = function() {\n // Note: In theory, this should be scheduled on the AsyncQueue since it\n // accesses internal state. We execute this code directly during shutdown\n // to make sure it gets a chance to run.\n e.un(), o() && navigator.appVersion.match(\"Version/14\") && \n // On Safari 14, we do not run any cleanup actions as it might trigger\n // a bug that prevents Safari from re-opening IndexedDB during the\n // next page load.\n // See https://bugs.webkit.org/show_bug.cgi?id=226547\n e.Se.enterRestrictedMode(/* purgeExistingTasks= */ !0), e.Se.enqueueAndForget((function() {\n return e.shutdown();\n }));\n }, this.window.addEventListener(\"pagehide\", this.ke));\n }, t.prototype.hn = function() {\n this.ke && (this.window.removeEventListener(\"pagehide\", this.ke), this.ke = null);\n }, \n /**\n * Returns whether a client is \"zombied\" based on its LocalStorage entry.\n * Clients become zombied when their tab closes without running all of the\n * cleanup logic in `shutdown()`.\n */\n t.prototype.cn = function(t) {\n var e;\n try {\n var n = null !== (null === (e = this.Qe) || void 0 === e ? void 0 : e.getItem(this.on(t)));\n return C(\"IndexedDbPersistence\", \"Client '\" + t + \"' \" + (n ? \"is\" : \"is not\") + \" zombied in LocalStorage\"), \n n;\n } catch (t) {\n // Gracefully handle if LocalStorage isn't working.\n return x(\"IndexedDbPersistence\", \"Failed to get zombied client id.\", t), !1;\n }\n }, \n /**\n * Record client as zombied (a client that had its tab closed). Zombied\n * clients are ignored during primary tab selection.\n */\n t.prototype.un = function() {\n if (this.Qe) try {\n this.Qe.setItem(this.on(this.clientId), String(Date.now()));\n } catch (t) {\n // Gracefully handle if LocalStorage isn't available / working.\n x(\"Failed to set zombie client id.\", t);\n }\n }, \n /** Removes the zombied client entry if it exists. */ t.prototype.ln = function() {\n if (this.Qe) try {\n this.Qe.removeItem(this.on(this.clientId));\n } catch (t) {\n // Ignore\n }\n }, t.prototype.on = function(t) {\n return \"firestore_zombie_\" + this.persistenceKey + \"_\" + t;\n }, t;\n}();\n\n/**\n * Oldest acceptable age in milliseconds for client metadata before the client\n * is considered inactive and its associated data is garbage collected.\n */\n/**\n * An IndexedDB-backed instance of Persistence. Data is stored persistently\n * across sessions.\n *\n * On Web only, the Firestore SDKs support shared access to its persistence\n * layer. This allows multiple browser tabs to read and write to IndexedDb and\n * to synchronize state even without network connectivity. Shared access is\n * currently optional and not enabled unless all clients invoke\n * `enablePersistence()` with `{synchronizeTabs:true}`.\n *\n * In multi-tab mode, if multiple clients are active at the same time, the SDK\n * will designate one client as the “primary client”. An effort is made to pick\n * a visible, network-connected and active client, and this client is\n * responsible for letting other clients know about its presence. The primary\n * client writes a unique client-generated identifier (the client ID) to\n * IndexedDb’s “owner” store every 4 seconds. If the primary client fails to\n * update this entry, another client can acquire the lease and take over as\n * primary.\n *\n * Some persistence operations in the SDK are designated as primary-client only\n * operations. This includes the acknowledgment of mutations and all updates of\n * remote documents. The effects of these operations are written to persistence\n * and then broadcast to other tabs via LocalStorage (see\n * `WebStorageSharedClientState`), which then refresh their state from\n * persistence.\n *\n * Similarly, the primary client listens to notifications sent by secondary\n * clients to discover persistence changes written by secondary clients, such as\n * the addition of new mutations and query targets.\n *\n * If multi-tab is not enabled and another tab already obtained the primary\n * lease, IndexedDbPersistence enters a failed state and all subsequent\n * operations will automatically fail.\n *\n * Additionally, there is an optimization so that when a tab is closed, the\n * primary lease is released immediately (this is especially important to make\n * sure that a refreshed tab is able to immediately re-acquire the primary\n * lease). Unfortunately, IndexedDB cannot be reliably used in window.unload\n * since it is an asynchronous API. So in addition to attempting to give up the\n * lease, the leaseholder writes its client ID to a \"zombiedClient\" entry in\n * LocalStorage which acts as an indicator that another tab should go ahead and\n * take the primary lease immediately regardless of the current lease timestamp.\n *\n * TODO(b/114226234): Remove `synchronizeTabs` section when multi-tab is no\n * longer optional.\n */\n/**\n * Helper to get a typed SimpleDbStore for the primary client object store.\n */\nfunction Ri(t) {\n return Rr(t, nr.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the client metadata object store.\n */ function Li(t) {\n return Rr(t, pr.store);\n}\n\n/**\n * Generates a string used as a prefix when storing data in IndexedDB and\n * LocalStorage.\n */ function Oi(t, e) {\n // Use two different prefix formats:\n // * firestore / persistenceKey / projectID . databaseID / ...\n // * firestore / persistenceKey / projectID / ...\n // projectIDs are DNS-compatible names and cannot contain dots\n // so there's no danger of collisions.\n var n = t.projectId;\n return t.isDefaultDatabase || (n += \".\" + t.database), \"firestore/\" + e + \"/\" + n + \"/\"\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nvar Pi = function(t, e) {\n this.progress = t, this.wn = e;\n}, Fi = /** @class */ function() {\n function t(t, e, n) {\n this.Ue = t, this._n = e, this.Ut = n\n /**\n * Get the local view of the document identified by `key`.\n *\n * @returns Local view of the document or null if we don't have any cached\n * state for it.\n */;\n }\n return t.prototype.mn = function(t, e) {\n var n = this;\n return this._n.getAllMutationBatchesAffectingDocumentKey(t, e).next((function(r) {\n return n.yn(t, e, r);\n }));\n }, \n /** Internal version of `getDocument` that allows reusing batches. */ t.prototype.yn = function(t, e, n) {\n return this.Ue.getEntry(t, e).next((function(t) {\n for (var e = 0, r = n; e < r.length; e++) {\n r[e].applyToLocalView(t);\n }\n return t;\n }));\n }, \n // Returns the view of the given `docs` as they would appear after applying\n // all mutations in the given `batches`.\n t.prototype.gn = function(t, e) {\n t.forEach((function(t, n) {\n for (var r = 0, i = e; r < i.length; r++) {\n i[r].applyToLocalView(n);\n }\n }));\n }, \n /**\n * Gets the local view of the documents identified by `keys`.\n *\n * If we don't have cached state for a document in `keys`, a NoDocument will\n * be stored for that key in the resulting set.\n */\n t.prototype.pn = function(t, e) {\n var n = this;\n return this.Ue.getEntries(t, e).next((function(e) {\n return n.En(t, e).next((function() {\n return e;\n }));\n }));\n }, \n /**\n * Applies the local view the given `baseDocs` without retrieving documents\n * from the local store.\n */\n t.prototype.En = function(t, e) {\n var n = this;\n return this._n.getAllMutationBatchesAffectingDocumentKeys(t, e).next((function(t) {\n return n.gn(e, t);\n }));\n }, \n /**\n * Performs a query against the local view of all documents.\n *\n * @param transaction - The persistence transaction.\n * @param query - The query to match documents against.\n * @param sinceReadTime - If not set to SnapshotVersion.min(), return only\n * documents that have been read since this snapshot version (exclusive).\n */\n t.prototype.getDocumentsMatchingQuery = function(t, e, n) {\n /**\n * Returns whether the query matches a single document by path (rather than a\n * collection).\n */\n return function(t) {\n return ct.isDocumentKey(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n }(e) ? this.Tn(t, e.path) : te(e) ? this.In(t, e, n) : this.An(t, e, n);\n }, t.prototype.Tn = function(t, e) {\n // Just do a simple document lookup.\n return this.mn(t, new ct(e)).next((function(t) {\n var e = en();\n return t.isFoundDocument() && (e = e.insert(t.key, t)), e;\n }));\n }, t.prototype.In = function(t, e, n) {\n var r = this, i = e.collectionGroup, o = en();\n return this.Ut.getCollectionParents(t, i).next((function(s) {\n return Ir.forEach(s, (function(s) {\n var u = function(t, e) {\n return new Wt(e, \n /*collectionGroup=*/ null, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, t.startAt, t.endAt);\n }(e, s.child(i));\n return r.An(t, u, n).next((function(t) {\n t.forEach((function(t, e) {\n o = o.insert(t, e);\n }));\n }));\n })).next((function() {\n return o;\n }));\n }));\n }, t.prototype.An = function(t, e, n) {\n var r, i, o = this;\n // Query the remote documents and overlay mutations.\n return this.Ue.getDocumentsMatchingQuery(t, e, n).next((function(n) {\n return r = n, o._n.getAllMutationBatchesAffectingQuery(t, e);\n })).next((function(e) {\n return i = e, o.Rn(t, i, r).next((function(t) {\n r = t;\n for (var e = 0, n = i; e < n.length; e++) for (var o = n[e], s = 0, u = o.mutations; s < u.length; s++) {\n var a = u[s], c = a.key, h = r.get(c);\n null == h && (\n // Create invalid document to apply mutations on top of\n h = Nt.newInvalidDocument(c), r = r.insert(c, h)), xe(a, h, o.localWriteTime), h.isFoundDocument() || (r = r.remove(c));\n }\n }));\n })).next((function() {\n // Finally, filter out any documents that don't actually match\n // the query.\n return r.forEach((function(t, n) {\n ue(e, n) || (r = r.remove(t));\n })), r;\n }));\n }, t.prototype.Rn = function(t, e, n) {\n for (var r = sn(), i = 0, o = e; i < o.length; i++) for (var s = 0, u = o[i].mutations; s < u.length; s++) {\n var a = u[s];\n a instanceof Fe && null === n.get(a.key) && (r = r.add(a.key));\n }\n var c = n;\n return this.Ue.getEntries(t, r).next((function(t) {\n return t.forEach((function(t, e) {\n e.isFoundDocument() && (c = c.insert(t, e));\n })), c;\n }));\n }, t;\n}(), Mi = /** @class */ function() {\n function t(t, e, n, r) {\n this.targetId = t, this.fromCache = e, this.bn = n, this.vn = r;\n }\n return t.Pn = function(e, n) {\n for (var r = sn(), i = sn(), o = 0, s = n.docChanges; o < s.length; o++) {\n var u = s[o];\n switch (u.type) {\n case 0 /* Added */ :\n r = r.add(u.doc.key);\n break;\n\n case 1 /* Removed */ :\n i = i.add(u.doc.key);\n // do nothing\n }\n }\n return new t(e, n.fromCache, r, i);\n }, t;\n}(), Vi = /** @class */ function() {\n function t() {}\n /** Sets the document view to query against. */ return t.prototype.Vn = function(t) {\n this.Sn = t;\n }, \n /** Returns all local documents matching the specified query. */ t.prototype.getDocumentsMatchingQuery = function(t, e, n, r) {\n var i = this;\n // Queries that match all documents don't benefit from using\n // key-based lookups. It is more efficient to scan all documents in a\n // collection, rather than to perform individual lookups.\n return function(t) {\n return 0 === t.filters.length && null === t.limit && null == t.startAt && null == t.endAt && (0 === t.explicitOrderBy.length || 1 === t.explicitOrderBy.length && t.explicitOrderBy[0].field.isKeyField());\n }(e) || n.isEqual(K.min()) ? this.Dn(t, e) : this.Sn.pn(t, r).next((function(o) {\n var s = i.Cn(e, o);\n return ($t(e) || Xt(e)) && i.Nn(e.limitType, s, r, n) ? i.Dn(t, e) : (k() <= y.DEBUG && C(\"QueryEngine\", \"Re-using previous result from %s to execute query: %s\", n.toString(), se(e)), \n i.Sn.getDocumentsMatchingQuery(t, e, n).next((function(t) {\n // We merge `previousResults` into `updateResults`, since\n // `updateResults` is already a DocumentMap. If a document is\n // contained in both lists, then its contents are the same.\n return s.forEach((function(e) {\n t = t.insert(e.key, e);\n })), t;\n })));\n }));\n // Queries that have never seen a snapshot without limbo free documents\n // should also be run as a full collection scan.\n }, \n /** Applies the query filter and sorting to the provided documents. */ t.prototype.Cn = function(t, e) {\n // Sort the documents and re-apply the query filter since previously\n // matching documents do not necessarily still match the query.\n var n = new $e(ae(t));\n return e.forEach((function(e, r) {\n ue(t, r) && (n = n.add(r));\n })), n;\n }, \n /**\n * Determines if a limit query needs to be refilled from cache, making it\n * ineligible for index-free execution.\n *\n * @param sortedPreviousResults - The documents that matched the query when it\n * was last synchronized, sorted by the query's comparator.\n * @param remoteKeys - The document keys that matched the query at the last\n * snapshot.\n * @param limboFreeSnapshotVersion - The version of the snapshot when the\n * query was last synchronized.\n */\n t.prototype.Nn = function(t, e, n, r) {\n // The query needs to be refilled if a previously matching document no\n // longer matches.\n if (n.size !== e.size) return !0;\n // Limit queries are not eligible for index-free query execution if there is\n // a potential that an older document from cache now sorts before a document\n // that was previously part of the limit. This, however, can only happen if\n // the document at the edge of the limit goes out of limit.\n // If a document that is not the limit boundary sorts differently,\n // the boundary of the limit itself did not change and documents from cache\n // will continue to be \"rejected\" by this boundary. Therefore, we can ignore\n // any modifications that don't affect the last document.\n var i = \"F\" /* First */ === t ? e.last() : e.first();\n return !!i && (i.hasPendingWrites || i.version.compareTo(r) > 0);\n }, t.prototype.Dn = function(t, e) {\n return k() <= y.DEBUG && C(\"QueryEngine\", \"Using full collection scan to execute query:\", se(e)), \n this.Sn.getDocumentsMatchingQuery(t, e, K.min());\n }, t;\n}(), qi = /** @class */ function() {\n function t(\n /** Manages our in-memory or durable persistence. */\n t, e, n, r) {\n this.persistence = t, this.xn = e, this.R = r, \n /**\n * Maps a targetID to data about its target.\n *\n * PORTING NOTE: We are using an immutable data structure on Web to make re-runs\n * of `applyRemoteEvent()` idempotent.\n */\n this.kn = new We(q), \n /** Maps a target to its targetID. */\n // TODO(wuandy): Evaluate if TargetId can be part of Target.\n this.Fn = new Ii((function(t) {\n return kt(t);\n }), Ct), \n /**\n * The read time of the last entry processed by `getNewDocumentChanges()`.\n *\n * PORTING NOTE: This is only used for multi-tab synchronization.\n */\n this.$n = K.min(), this._n = t.getMutationQueue(n), this.On = t.getRemoteDocumentCache(), \n this.qe = t.getTargetCache(), this.Mn = new Fi(this.On, this._n, this.persistence.getIndexManager()), \n this.Ke = t.getBundleCache(), this.xn.Vn(this.Mn);\n }\n return t.prototype.collectGarbage = function(t) {\n var e = this;\n return this.persistence.runTransaction(\"Collect garbage\", \"readwrite-primary\", (function(n) {\n return t.collect(n, e.kn);\n }));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A readonly view of the local state of all documents we're tracking (i.e. we\n * have a cached version in remoteDocumentCache or local mutations for the\n * document). The view is computed by applying the mutations in the\n * MutationQueue to the RemoteDocumentCache.\n */ function Ui(\n/** Manages our in-memory or durable persistence. */\nt, e, n, r) {\n return new qi(t, e, n, r);\n}\n\n/**\n * Tells the LocalStore that the currently authenticated user has changed.\n *\n * In response the local store switches the mutation queue to the new user and\n * returns any resulting document changes.\n */\n// PORTING NOTE: Android and iOS only return the documents affected by the\n// change.\nfunction Bi(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = F(t), i = n._n, o = n.Mn, [ 4 /*yield*/ , n.persistence.runTransaction(\"Handle user change\", \"readonly\", (function(t) {\n // Swap out the mutation queue, grabbing the pending mutation batches\n // before and after.\n var r;\n return n._n.getAllMutationBatches(t).next((function(s) {\n return r = s, i = n.persistence.getMutationQueue(e), \n // Recreate our LocalDocumentsView using the new\n // MutationQueue.\n o = new Fi(n.On, i, n.persistence.getIndexManager()), i.getAllMutationBatches(t);\n })).next((function(e) {\n for (var n = [], i = [], s = sn(), u = 0, a = r\n // Union the old/new changed keys.\n ; u < a.length; u++) {\n var c = a[u];\n n.push(c.batchId);\n for (var h = 0, f = c.mutations; h < f.length; h++) {\n var l = f[h];\n s = s.add(l.key);\n }\n }\n for (var d = 0, p = e; d < p.length; d++) {\n var y = p[d];\n i.push(y.batchId);\n for (var v = 0, m = y.mutations; v < m.length; v++) {\n var g = m[v];\n s = s.add(g.key);\n }\n }\n // Return the set of all (potentially) changed documents and the list\n // of mutation batch IDs that were affected by change.\n return o.pn(t, s).next((function(t) {\n return {\n Ln: t,\n removedBatchIds: n,\n addedBatchIds: i\n };\n }));\n }));\n })) ];\n\n case 1:\n return s = r.sent(), [ 2 /*return*/ , (n._n = i, n.Mn = o, n.xn.Vn(n.Mn), s) ];\n }\n }));\n }));\n}\n\n/* Accepts locally generated Mutations and commit them to storage. */\n/**\n * Acknowledges the given batch.\n *\n * On the happy path when a batch is acknowledged, the local store will\n *\n * + remove the batch from the mutation queue;\n * + apply the changes to the remote document cache;\n * + recalculate the latency compensated view implied by those changes (there\n * may be mutations in the queue that affect the documents but haven't been\n * acknowledged yet); and\n * + give the changed documents back the sync engine\n *\n * @returns The resulting (modified) documents.\n */ function ji(t, e) {\n var n = F(t);\n return n.persistence.runTransaction(\"Acknowledge batch\", \"readwrite-primary\", (function(t) {\n var r = e.batch.keys(), i = n.On.newChangeBuffer({\n trackRemovals: !0\n });\n return function(t, e, n, r) {\n var i = n.batch, o = i.keys(), s = Ir.resolve();\n return o.forEach((function(t) {\n s = s.next((function() {\n return r.getEntry(e, t);\n })).next((function(e) {\n var o = n.docVersions.get(t);\n P(null !== o), e.version.compareTo(o) < 0 && (i.applyToRemoteDocument(e, n), e.isValidDocument() && \n // We use the commitVersion as the readTime rather than the\n // document's updateTime since the updateTime is not advanced\n // for updates that do not modify the underlying document.\n r.addEntry(e, n.commitVersion));\n }));\n })), s.next((function() {\n return t._n.removeMutationBatch(e, i);\n }));\n }(n, t, e, i).next((function() {\n return i.apply(t);\n })).next((function() {\n return n._n.performConsistencyCheck(t);\n })).next((function() {\n return n.Mn.pn(t, r);\n }));\n }));\n}\n\n/**\n * Removes mutations from the MutationQueue for the specified batch;\n * LocalDocuments will be recalculated.\n *\n * @returns The resulting modified documents.\n */\n/**\n * Returns the last consistent snapshot processed (used by the RemoteStore to\n * determine whether to buffer incoming snapshots from the backend).\n */ function Ki(t) {\n var e = F(t);\n return e.persistence.runTransaction(\"Get last remote snapshot version\", \"readonly\", (function(t) {\n return e.qe.getLastRemoteSnapshotVersion(t);\n }));\n}\n\n/**\n * Updates the \"ground-state\" (remote) documents. We assume that the remote\n * event reflects any write batches that have been acknowledged or rejected\n * (i.e. we do not re-apply local mutations to updates from this event).\n *\n * LocalDocuments are re-calculated if there are remaining mutations in the\n * queue.\n */ function Gi(t, e) {\n var n = F(t), r = e.snapshotVersion, i = n.kn;\n return n.persistence.runTransaction(\"Apply remote event\", \"readwrite-primary\", (function(t) {\n var o = n.On.newChangeBuffer({\n trackRemovals: !0\n });\n // Reset newTargetDataByTargetMap in case this transaction gets re-run.\n i = n.kn;\n var s = [];\n e.targetChanges.forEach((function(e, o) {\n var u = i.get(o);\n if (u) {\n // Only update the remote keys if the target is still active. This\n // ensures that we can persist the updated target data along with\n // the updated assignment.\n s.push(n.qe.removeMatchingKeys(t, e.removedDocuments, o).next((function() {\n return n.qe.addMatchingKeys(t, e.addedDocuments, o);\n })));\n var a = e.resumeToken;\n // Update the resume token if the change includes one.\n if (a.approximateByteSize() > 0) {\n var c = u.withResumeToken(a, r).withSequenceNumber(t.currentSequenceNumber);\n i = i.insert(o, c), \n // Update the target data if there are target changes (or if\n // sufficient time has passed since the last update).\n /**\n * Returns true if the newTargetData should be persisted during an update of\n * an active target. TargetData should always be persisted when a target is\n * being released and should not call this function.\n *\n * While the target is active, TargetData updates can be omitted when nothing\n * about the target has changed except metadata like the resume token or\n * snapshot version. Occasionally it's worth the extra write to prevent these\n * values from getting too stale after a crash, but this doesn't have to be\n * too frequent.\n */\n function(t, e, n) {\n // Always persist target data if we don't already have a resume token.\n return P(e.resumeToken.approximateByteSize() > 0), 0 === t.resumeToken.approximateByteSize() || (\n // Don't allow resume token changes to be buffered indefinitely. This\n // allows us to be reasonably up-to-date after a crash and avoids needing\n // to loop over all active queries on shutdown. Especially in the browser\n // we may not get time to do anything interesting while the current tab is\n // closing.\n e.snapshotVersion.toMicroseconds() - t.snapshotVersion.toMicroseconds() >= 3e8 || n.addedDocuments.size + n.modifiedDocuments.size + n.removedDocuments.size > 0);\n }(u, c, e) && s.push(n.qe.updateTargetData(t, c));\n }\n }\n }));\n var u = Ze();\n // HACK: The only reason we allow a null snapshot version is so that we\n // can synthesize remote events when we get permission denied errors while\n // trying to resolve the state of a locally cached document that is in\n // limbo.\n if (e.documentUpdates.forEach((function(r, i) {\n e.resolvedLimboDocuments.has(r) && s.push(n.persistence.referenceDelegate.updateLimboDocument(t, r));\n })), \n // Each loop iteration only affects its \"own\" doc, so it's safe to get all the remote\n // documents in advance in a single call.\n s.push(Qi(t, o, e.documentUpdates, r, void 0).next((function(t) {\n u = t;\n }))), !r.isEqual(K.min())) {\n var a = n.qe.getLastRemoteSnapshotVersion(t).next((function(e) {\n return n.qe.setTargetsMetadata(t, t.currentSequenceNumber, r);\n }));\n s.push(a);\n }\n return Ir.waitFor(s).next((function() {\n return o.apply(t);\n })).next((function() {\n return n.Mn.En(t, u);\n })).next((function() {\n return u;\n }));\n })).then((function(t) {\n return n.kn = i, t;\n }));\n}\n\n/**\n * Populates document change buffer with documents from backend or a bundle.\n * Returns the document changes resulting from applying those documents.\n *\n * @param txn - Transaction to use to read existing documents from storage.\n * @param documentBuffer - Document buffer to collect the resulted changes to be\n * applied to storage.\n * @param documents - Documents to be applied.\n * @param globalVersion - A `SnapshotVersion` representing the read time if all\n * documents have the same read time.\n * @param documentVersions - A DocumentKey-to-SnapshotVersion map if documents\n * have their own read time.\n *\n * Note: this function will use `documentVersions` if it is defined;\n * when it is not defined, resorts to `globalVersion`.\n */ function Qi(t, e, n, r, \n// TODO(wuandy): We could add `readTime` to MaybeDocument instead to remove\n// this parameter.\ni) {\n var o = sn();\n return n.forEach((function(t) {\n return o = o.add(t);\n })), e.getEntries(t, o).next((function(t) {\n var o = Ze();\n return n.forEach((function(n, s) {\n var u = t.get(n), a = (null == i ? void 0 : i.get(n)) || r;\n // Note: The order of the steps below is important, since we want\n // to ensure that rejected limbo resolutions (which fabricate\n // NoDocuments with SnapshotVersion.min()) never add documents to\n // cache.\n s.isNoDocument() && s.version.isEqual(K.min()) ? (\n // NoDocuments with SnapshotVersion.min() are used in manufactured\n // events. We remove these documents from cache since we lost\n // access.\n e.removeEntry(n, a), o = o.insert(n, s)) : !u.isValidDocument() || s.version.compareTo(u.version) > 0 || 0 === s.version.compareTo(u.version) && u.hasPendingWrites ? (e.addEntry(s, a), \n o = o.insert(n, s)) : C(\"LocalStore\", \"Ignoring outdated watch update for \", n, \". Current version:\", u.version, \" Watch version:\", s.version);\n })), o;\n }))\n /**\n * Gets the mutation batch after the passed in batchId in the mutation queue\n * or null if empty.\n * @param afterBatchId - If provided, the batch to search after.\n * @returns The next mutation or null if there wasn't one.\n */;\n}\n\nfunction zi(t, e) {\n var n = F(t);\n return n.persistence.runTransaction(\"Get next mutation batch\", \"readonly\", (function(t) {\n return void 0 === e && (e = -1), n._n.getNextMutationBatchAfterBatchId(t, e);\n }));\n}\n\n/**\n * Reads the current value of a Document with a given key or null if not\n * found - used for testing.\n */\n/**\n * Assigns the given target an internal ID so that its results can be pinned so\n * they don't get GC'd. A target must be allocated in the local store before\n * the store can be used to manage its view.\n *\n * Allocating an already allocated `Target` will return the existing `TargetData`\n * for that `Target`.\n */ function Wi(t, e) {\n var n = F(t);\n return n.persistence.runTransaction(\"Allocate target\", \"readwrite\", (function(t) {\n var r;\n return n.qe.getTargetData(t, e).next((function(i) {\n return i ? (\n // This target has been listened to previously, so reuse the\n // previous targetID.\n // TODO(mcg): freshen last accessed date?\n r = i, Ir.resolve(r)) : n.qe.allocateTargetId(t).next((function(i) {\n return r = new Pr(e, i, 0 /* Listen */ , t.currentSequenceNumber), n.qe.addTargetData(t, r).next((function() {\n return r;\n }));\n }));\n }));\n })).then((function(t) {\n // If Multi-Tab is enabled, the existing target data may be newer than\n // the in-memory data\n var r = n.kn.get(t.targetId);\n return (null === r || t.snapshotVersion.compareTo(r.snapshotVersion) > 0) && (n.kn = n.kn.insert(t.targetId, t), \n n.Fn.set(e, t.targetId)), t;\n }));\n}\n\n/**\n * Returns the TargetData as seen by the LocalStore, including updates that may\n * have not yet been persisted to the TargetCache.\n */\n// Visible for testing.\n/**\n * Unpins all the documents associated with the given target. If\n * `keepPersistedTargetData` is set to false and Eager GC enabled, the method\n * directly removes the associated target data from the target cache.\n *\n * Releasing a non-existing `Target` is a no-op.\n */\n// PORTING NOTE: `keepPersistedTargetData` is multi-tab only.\nfunction Hi(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o, s, u;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = F(t), o = n.kn.get(e), s = i ? \"readwrite\" : \"readwrite-primary\", r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 4, , 5 ]), i ? [ 3 /*break*/ , 3 ] : [ 4 /*yield*/ , n.persistence.runTransaction(\"Release target\", s, (function(t) {\n return n.persistence.referenceDelegate.removeTarget(t, o);\n })) ];\n\n case 2:\n r.sent(), r.label = 3;\n\n case 3:\n return [ 3 /*break*/ , 5 ];\n\n case 4:\n if (!Nr(u = r.sent())) throw u;\n // All `releaseTarget` does is record the final metadata state for the\n // target, but we've been recording this periodically during target\n // activity. If we lose this write this could cause a very slight\n // difference in the order of target deletion during GC, but we\n // don't define exact LRU semantics so this is acceptable.\n return C(\"LocalStore\", \"Failed to update sequence numbers for target \" + e + \": \" + u), \n [ 3 /*break*/ , 5 ];\n\n case 5:\n return n.kn = n.kn.remove(e), n.Fn.delete(o.target), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Runs the specified query against the local store and returns the results,\n * potentially taking advantage of query data from previous executions (such\n * as the set of remote keys).\n *\n * @param usePreviousResults - Whether results from previous executions can\n * be used to optimize this query execution.\n */ function Yi(t, e, n) {\n var r = F(t), i = K.min(), o = sn();\n return r.persistence.runTransaction(\"Execute query\", \"readonly\", (function(t) {\n return function(t, e, n) {\n var r = F(t), i = r.Fn.get(n);\n return void 0 !== i ? Ir.resolve(r.kn.get(i)) : r.qe.getTargetData(e, n);\n }(r, t, ne(e)).next((function(e) {\n if (e) return i = e.lastLimboFreeSnapshotVersion, r.qe.getMatchingKeysForTargetId(t, e.targetId).next((function(t) {\n o = t;\n }));\n })).next((function() {\n return r.xn.getDocumentsMatchingQuery(t, e, n ? i : K.min(), n ? o : sn());\n })).next((function(t) {\n return {\n documents: t,\n Bn: o\n };\n }));\n }));\n}\n\n// PORTING NOTE: Multi-Tab only.\nfunction $i(t, e) {\n var n = F(t), r = F(n.qe), i = n.kn.get(e);\n return i ? Promise.resolve(i.target) : n.persistence.runTransaction(\"Get target data\", \"readonly\", (function(t) {\n return r.lt(t, e).next((function(t) {\n return t ? t.target : null;\n }));\n }));\n}\n\n/**\n * Returns the set of documents that have been updated since the last call.\n * If this is the first call, returns the set of changes since client\n * initialization. Further invocations will return document that have changed\n * since the prior call.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Xi(t) {\n var e = F(t);\n return e.persistence.runTransaction(\"Get new document changes\", \"readonly\", (function(t) {\n return function(t, e, n) {\n var r = F(t), i = Ze(), o = qr(n), s = Ni(e), u = IDBKeyRange.lowerBound(o, !0);\n return s.$t({\n index: ar.readTimeIndex,\n range: u\n }, (function(t, e) {\n // Unlike `getEntry()` and others, `getNewDocumentChanges()` parses\n // the documents directly since we want to keep sentinel deletes.\n var n = Mr(r.R, e);\n i = i.insert(n.key, n), o = e.readTime;\n })).next((function() {\n return {\n wn: i,\n readTime: Ur(o)\n };\n }));\n }(e.On, t, e.$n);\n })).then((function(t) {\n var n = t.wn, r = t.readTime;\n return e.$n = r, n;\n }));\n}\n\n/**\n * Reads the newest document change from persistence and moves the internal\n * synchronization marker forward so that calls to `getNewDocumentChanges()`\n * only return changes that happened after client initialization.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Ji(t) {\n return n(this, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n return [ 2 /*return*/ , (e = F(t)).persistence.runTransaction(\"Synchronize last document change read time\", \"readonly\", (function(t) {\n return function(t) {\n var e = Ni(t), n = K.min();\n // If there are no existing entries, we return SnapshotVersion.min().\n return e.$t({\n index: ar.readTimeIndex,\n reverse: !0\n }, (function(t, e, r) {\n e.readTime && (n = Ur(e.readTime)), r.done();\n })).next((function() {\n return n;\n }));\n }(t);\n })).then((function(t) {\n e.$n = t;\n })) ];\n }));\n }));\n}\n\n/**\n * Creates a new target using the given bundle name, which will be used to\n * hold the keys of all documents from the bundle in query-document mappings.\n * This ensures that the loaded documents do not get garbage collected\n * right away.\n */\n/**\n * Applies the documents from a bundle to the \"ground-state\" (remote)\n * documents.\n *\n * LocalDocuments are re-calculated if there are remaining mutations in the\n * queue.\n */ function Zi(t, e, i, o) {\n return n(this, void 0, void 0, (function() {\n var n, s, u, a, c, h, f, l, d, p;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n for (n = F(t), s = sn(), u = Ze(), a = rn(), c = 0, h = i; c < h.length; c++) f = h[c], \n l = e.qn(f.metadata.name), f.document && (s = s.add(l)), u = u.insert(l, e.Un(f)), \n a = a.insert(l, e.Kn(f.metadata.readTime));\n return d = n.On.newChangeBuffer({\n trackRemovals: !0\n }), [ 4 /*yield*/ , Wi(n, function(t) {\n // It is OK that the path used for the query is not valid, because this will\n // not be read and queried.\n return ne(Yt(H.fromString(\"__bundle__/docs/\" + t)));\n }(o)) ];\n\n case 1:\n // Allocates a target to hold all document keys from the bundle, such that\n // they will not get garbage collected right away.\n return p = r.sent(), [ 2 /*return*/ , n.persistence.runTransaction(\"Apply bundle documents\", \"readwrite\", (function(t) {\n return Qi(t, d, u, K.min(), a).next((function(e) {\n return d.apply(t), e;\n })).next((function(e) {\n return n.qe.removeMatchingKeysForTargetId(t, p.targetId).next((function() {\n return n.qe.addMatchingKeys(t, s, p.targetId);\n })).next((function() {\n return n.Mn.En(t, e);\n })).next((function() {\n return e;\n }));\n }));\n })) ];\n }\n }));\n }));\n}\n\n/**\n * Returns a promise of a boolean to indicate if the given bundle has already\n * been loaded and the create time is newer than the current loading bundle.\n */\n/**\n * Saves the given `NamedQuery` to local persistence.\n */ function to(t, e, i) {\n return void 0 === i && (i = sn()), n(this, void 0, void 0, (function() {\n var n, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , Wi(t, ne(zr(e.bundledQuery))) ];\n\n case 1:\n return n = r.sent(), [ 2 /*return*/ , (o = F(t)).persistence.runTransaction(\"Save named query\", \"readwrite\", (function(t) {\n var r = En(e.readTime);\n // Simply save the query itself if it is older than what the SDK already\n // has.\n if (n.snapshotVersion.compareTo(r) >= 0) return o.Ke.saveNamedQuery(t, e);\n // Update existing target data because the query from the bundle is newer.\n var s = n.withResumeToken(J.EMPTY_BYTE_STRING, r);\n return o.kn = o.kn.insert(s.targetId, s), o.qe.updateTargetData(t, s).next((function() {\n return o.qe.removeMatchingKeysForTargetId(t, n.targetId);\n })).next((function() {\n return o.qe.addMatchingKeys(t, i, n.targetId);\n })).next((function() {\n return o.Ke.saveNamedQuery(t, e);\n }));\n })) ];\n }\n }));\n }));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var eo = /** @class */ function() {\n function t(t) {\n this.R = t, this.Qn = new Map, this.jn = new Map;\n }\n return t.prototype.getBundleMetadata = function(t, e) {\n return Ir.resolve(this.Qn.get(e));\n }, t.prototype.saveBundleMetadata = function(t, e) {\n /** Decodes a BundleMetadata proto into a BundleMetadata object. */\n var n;\n return this.Qn.set(e.id, {\n id: (n = e).id,\n version: n.version,\n createTime: En(n.createTime)\n }), Ir.resolve();\n }, t.prototype.getNamedQuery = function(t, e) {\n return Ir.resolve(this.jn.get(e));\n }, t.prototype.saveNamedQuery = function(t, e) {\n return this.jn.set(e.name, function(t) {\n return {\n name: t.name,\n query: zr(t.bundledQuery),\n readTime: En(t.readTime)\n };\n }(e)), Ir.resolve();\n }, t;\n}(), no = /** @class */ function() {\n function t() {\n // A set of outstanding references to a document sorted by key.\n this.Wn = new $e(ro.Gn), \n // A set of outstanding references to a document sorted by target id.\n this.zn = new $e(ro.Hn)\n /** Returns true if the reference set contains no references. */;\n }\n return t.prototype.isEmpty = function() {\n return this.Wn.isEmpty();\n }, \n /** Adds a reference to the given document key for the given ID. */ t.prototype.addReference = function(t, e) {\n var n = new ro(t, e);\n this.Wn = this.Wn.add(n), this.zn = this.zn.add(n);\n }, \n /** Add references to the given document keys for the given ID. */ t.prototype.Jn = function(t, e) {\n var n = this;\n t.forEach((function(t) {\n return n.addReference(t, e);\n }));\n }, \n /**\n * Removes a reference to the given document key for the given\n * ID.\n */\n t.prototype.removeReference = function(t, e) {\n this.Yn(new ro(t, e));\n }, t.prototype.Xn = function(t, e) {\n var n = this;\n t.forEach((function(t) {\n return n.removeReference(t, e);\n }));\n }, \n /**\n * Clears all references with a given ID. Calls removeRef() for each key\n * removed.\n */\n t.prototype.Zn = function(t) {\n var e = this, n = new ct(new H([])), r = new ro(n, t), i = new ro(n, t + 1), o = [];\n return this.zn.forEachInRange([ r, i ], (function(t) {\n e.Yn(t), o.push(t.key);\n })), o;\n }, t.prototype.ts = function() {\n var t = this;\n this.Wn.forEach((function(e) {\n return t.Yn(e);\n }));\n }, t.prototype.Yn = function(t) {\n this.Wn = this.Wn.delete(t), this.zn = this.zn.delete(t);\n }, t.prototype.es = function(t) {\n var e = new ct(new H([])), n = new ro(e, t), r = new ro(e, t + 1), i = sn();\n return this.zn.forEachInRange([ n, r ], (function(t) {\n i = i.add(t.key);\n })), i;\n }, t.prototype.containsKey = function(t) {\n var e = new ro(t, 0), n = this.Wn.firstAfterOrEqual(e);\n return null !== n && t.isEqual(n.key);\n }, t;\n}(), ro = /** @class */ function() {\n function t(t, e) {\n this.key = t, this.ns = e\n /** Compare by key then by ID */;\n }\n return t.Gn = function(t, e) {\n return ct.comparator(t.key, e.key) || q(t.ns, e.ns);\n }, \n /** Compare by ID then by key */ t.Hn = function(t, e) {\n return q(t.ns, e.ns) || ct.comparator(t.key, e.key);\n }, t;\n}(), io = /** @class */ function() {\n function t(t, e) {\n this.Ut = t, this.referenceDelegate = e, \n /**\n * The set of all mutations that have been sent but not yet been applied to\n * the backend.\n */\n this._n = [], \n /** Next value to use when assigning sequential IDs to each mutation batch. */\n this.ss = 1, \n /** An ordered mapping between documents and the mutations batch IDs. */\n this.rs = new $e(ro.Gn);\n }\n return t.prototype.checkEmpty = function(t) {\n return Ir.resolve(0 === this._n.length);\n }, t.prototype.addMutationBatch = function(t, e, n, r) {\n var i = this.ss;\n this.ss++, this._n.length > 0 && this._n[this._n.length - 1];\n var o = new Lr(i, e, n, r);\n this._n.push(o);\n // Track references by document key and index collection parents.\n for (var s = 0, u = r; s < u.length; s++) {\n var a = u[s];\n this.rs = this.rs.add(new ro(a.key, i)), this.Ut.addToCollectionParentIndex(t, a.key.path.popLast());\n }\n return Ir.resolve(o);\n }, t.prototype.lookupMutationBatch = function(t, e) {\n return Ir.resolve(this.os(e));\n }, t.prototype.getNextMutationBatchAfterBatchId = function(t, e) {\n var n = e + 1, r = this.cs(n), i = r < 0 ? 0 : r;\n // The requested batchId may still be out of range so normalize it to the\n // start of the queue.\n return Ir.resolve(this._n.length > i ? this._n[i] : null);\n }, t.prototype.getHighestUnacknowledgedBatchId = function() {\n return Ir.resolve(0 === this._n.length ? -1 : this.ss - 1);\n }, t.prototype.getAllMutationBatches = function(t) {\n return Ir.resolve(this._n.slice());\n }, t.prototype.getAllMutationBatchesAffectingDocumentKey = function(t, e) {\n var n = this, r = new ro(e, 0), i = new ro(e, Number.POSITIVE_INFINITY), o = [];\n return this.rs.forEachInRange([ r, i ], (function(t) {\n var e = n.os(t.ns);\n o.push(e);\n })), Ir.resolve(o);\n }, t.prototype.getAllMutationBatchesAffectingDocumentKeys = function(t, e) {\n var n = this, r = new $e(q);\n return e.forEach((function(t) {\n var e = new ro(t, 0), i = new ro(t, Number.POSITIVE_INFINITY);\n n.rs.forEachInRange([ e, i ], (function(t) {\n r = r.add(t.ns);\n }));\n })), Ir.resolve(this.us(r));\n }, t.prototype.getAllMutationBatchesAffectingQuery = function(t, e) {\n // Use the query path as a prefix for testing if a document matches the\n // query.\n var n = e.path, r = n.length + 1, i = n;\n // Construct a document reference for actually scanning the index. Unlike\n // the prefix the document key in this reference must have an even number of\n // segments. The empty segment can be used a suffix of the query path\n // because it precedes all other segments in an ordered traversal.\n ct.isDocumentKey(i) || (i = i.child(\"\"));\n var o = new ro(new ct(i), 0), s = new $e(q);\n // Find unique batchIDs referenced by all documents potentially matching the\n // query.\n return this.rs.forEachWhile((function(t) {\n var e = t.key.path;\n return !!n.isPrefixOf(e) && (\n // Rows with document keys more than one segment longer than the query\n // path can't be matches. For example, a query on 'rooms' can't match\n // the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n e.length === r && (s = s.add(t.ns)), !0);\n }), o), Ir.resolve(this.us(s));\n }, t.prototype.us = function(t) {\n var e = this, n = [];\n // Construct an array of matching batches, sorted by batchID to ensure that\n // multiple mutations affecting the same document key are applied in order.\n return t.forEach((function(t) {\n var r = e.os(t);\n null !== r && n.push(r);\n })), n;\n }, t.prototype.removeMutationBatch = function(t, e) {\n var n = this;\n P(0 === this.hs(e.batchId, \"removed\")), this._n.shift();\n var r = this.rs;\n return Ir.forEach(e.mutations, (function(i) {\n var o = new ro(i.key, e.batchId);\n return r = r.delete(o), n.referenceDelegate.markPotentiallyOrphaned(t, i.key);\n })).next((function() {\n n.rs = r;\n }));\n }, t.prototype.Gt = function(t) {\n // No-op since the memory mutation queue does not maintain a separate cache.\n }, t.prototype.containsKey = function(t, e) {\n var n = new ro(e, 0), r = this.rs.firstAfterOrEqual(n);\n return Ir.resolve(e.isEqual(r && r.key));\n }, t.prototype.performConsistencyCheck = function(t) {\n return this._n.length, Ir.resolve();\n }, \n /**\n * Finds the index of the given batchId in the mutation queue and asserts that\n * the resulting index is within the bounds of the queue.\n *\n * @param batchId - The batchId to search for\n * @param action - A description of what the caller is doing, phrased in passive\n * form (e.g. \"acknowledged\" in a routine that acknowledges batches).\n */\n t.prototype.hs = function(t, e) {\n return this.cs(t);\n }, \n /**\n * Finds the index of the given batchId in the mutation queue. This operation\n * is O(1).\n *\n * @returns The computed index of the batch with the given batchId, based on\n * the state of the queue. Note this index can be negative if the requested\n * batchId has already been remvoed from the queue or past the end of the\n * queue if the batchId is larger than the last added batch.\n */\n t.prototype.cs = function(t) {\n return 0 === this._n.length ? 0 : t - this._n[0].batchId;\n // Examine the front of the queue to figure out the difference between the\n // batchId and indexes in the array. Note that since the queue is ordered\n // by batchId, if the first batch has a larger batchId then the requested\n // batchId doesn't exist in the queue.\n }, \n /**\n * A version of lookupMutationBatch that doesn't return a promise, this makes\n * other functions that uses this code easier to read and more efficent.\n */\n t.prototype.os = function(t) {\n var e = this.cs(t);\n return e < 0 || e >= this._n.length ? null : this._n[e];\n }, t;\n}(), oo = /** @class */ function() {\n /**\n * @param sizer - Used to assess the size of a document. For eager GC, this is\n * expected to just return 0 to avoid unnecessarily doing the work of\n * calculating the size.\n */\n function t(t, e) {\n this.Ut = t, this.ls = e, \n /** Underlying cache of documents and their read times. */\n this.docs = new We(ct.comparator), \n /** Size of all cached documents. */\n this.size = 0\n /**\n * Adds the supplied entry to the cache and updates the cache size as appropriate.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */;\n }\n return t.prototype.addEntry = function(t, e, n) {\n var r = e.key, i = this.docs.get(r), o = i ? i.size : 0, s = this.ls(e);\n return this.docs = this.docs.insert(r, {\n document: e.clone(),\n size: s,\n readTime: n\n }), this.size += s - o, this.Ut.addToCollectionParentIndex(t, r.path.popLast());\n }, \n /**\n * Removes the specified entry from the cache and updates the cache size as appropriate.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */\n t.prototype.removeEntry = function(t) {\n var e = this.docs.get(t);\n e && (this.docs = this.docs.remove(t), this.size -= e.size);\n }, t.prototype.getEntry = function(t, e) {\n var n = this.docs.get(e);\n return Ir.resolve(n ? n.document.clone() : Nt.newInvalidDocument(e));\n }, t.prototype.getEntries = function(t, e) {\n var n = this, r = Ze();\n return e.forEach((function(t) {\n var e = n.docs.get(t);\n r = r.insert(t, e ? e.document.clone() : Nt.newInvalidDocument(t));\n })), Ir.resolve(r);\n }, t.prototype.getDocumentsMatchingQuery = function(t, e, n) {\n for (var r = Ze(), i = new ct(e.path.child(\"\")), o = this.docs.getIteratorFrom(i)\n // Documents are ordered by key, so we can use a prefix scan to narrow down\n // the documents we need to match the query against.\n ; o.hasNext(); ) {\n var s = o.getNext(), u = s.key, a = s.value, c = a.document, h = a.readTime;\n if (!e.path.isPrefixOf(u.path)) break;\n h.compareTo(n) <= 0 || ue(e, c) && (r = r.insert(c.key, c.clone()));\n }\n return Ir.resolve(r);\n }, t.prototype.fs = function(t, e) {\n return Ir.forEach(this.docs, (function(t) {\n return e(t);\n }));\n }, t.prototype.newChangeBuffer = function(t) {\n // `trackRemovals` is ignores since the MemoryRemoteDocumentCache keeps\n // a separate changelog and does not need special handling for removals.\n return new so(this);\n }, t.prototype.getSize = function(t) {\n return Ir.resolve(this.size);\n }, t;\n}(), so = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).Ie = t, n;\n }\n return t(n, e), n.prototype.applyChanges = function(t) {\n var e = this, n = [];\n return this.changes.forEach((function(r, i) {\n i.document.isValidDocument() ? n.push(e.Ie.addEntry(t, i.document, e.getReadTime(r))) : e.Ie.removeEntry(r);\n })), Ir.waitFor(n);\n }, n.prototype.getFromCache = function(t, e) {\n return this.Ie.getEntry(t, e);\n }, n.prototype.getAllFromCache = function(t, e) {\n return this.Ie.getEntries(t, e);\n }, n;\n}(Ti), uo = /** @class */ function() {\n function t(t) {\n this.persistence = t, \n /**\n * Maps a target to the data about that target\n */\n this.ds = new Ii((function(t) {\n return kt(t);\n }), Ct), \n /** The last received snapshot version. */\n this.lastRemoteSnapshotVersion = K.min(), \n /** The highest numbered target ID encountered. */\n this.highestTargetId = 0, \n /** The highest sequence number encountered. */\n this.ws = 0, \n /**\n * A ordered bidirectional mapping between documents and the remote target\n * IDs.\n */\n this._s = new no, this.targetCount = 0, this.ys = ci.Jt();\n }\n return t.prototype.forEachTarget = function(t, e) {\n return this.ds.forEach((function(t, n) {\n return e(n);\n })), Ir.resolve();\n }, t.prototype.getLastRemoteSnapshotVersion = function(t) {\n return Ir.resolve(this.lastRemoteSnapshotVersion);\n }, t.prototype.getHighestSequenceNumber = function(t) {\n return Ir.resolve(this.ws);\n }, t.prototype.allocateTargetId = function(t) {\n return this.highestTargetId = this.ys.next(), Ir.resolve(this.highestTargetId);\n }, t.prototype.setTargetsMetadata = function(t, e, n) {\n return n && (this.lastRemoteSnapshotVersion = n), e > this.ws && (this.ws = e), \n Ir.resolve();\n }, t.prototype.te = function(t) {\n this.ds.set(t.target, t);\n var e = t.targetId;\n e > this.highestTargetId && (this.ys = new ci(e), this.highestTargetId = e), t.sequenceNumber > this.ws && (this.ws = t.sequenceNumber);\n }, t.prototype.addTargetData = function(t, e) {\n return this.te(e), this.targetCount += 1, Ir.resolve();\n }, t.prototype.updateTargetData = function(t, e) {\n return this.te(e), Ir.resolve();\n }, t.prototype.removeTargetData = function(t, e) {\n return this.ds.delete(e.target), this._s.Zn(e.targetId), this.targetCount -= 1, \n Ir.resolve();\n }, t.prototype.removeTargets = function(t, e, n) {\n var r = this, i = 0, o = [];\n return this.ds.forEach((function(s, u) {\n u.sequenceNumber <= e && null === n.get(u.targetId) && (r.ds.delete(s), o.push(r.removeMatchingKeysForTargetId(t, u.targetId)), \n i++);\n })), Ir.waitFor(o).next((function() {\n return i;\n }));\n }, t.prototype.getTargetCount = function(t) {\n return Ir.resolve(this.targetCount);\n }, t.prototype.getTargetData = function(t, e) {\n var n = this.ds.get(e) || null;\n return Ir.resolve(n);\n }, t.prototype.addMatchingKeys = function(t, e, n) {\n return this._s.Jn(e, n), Ir.resolve();\n }, t.prototype.removeMatchingKeys = function(t, e, n) {\n this._s.Xn(e, n);\n var r = this.persistence.referenceDelegate, i = [];\n return r && e.forEach((function(e) {\n i.push(r.markPotentiallyOrphaned(t, e));\n })), Ir.waitFor(i);\n }, t.prototype.removeMatchingKeysForTargetId = function(t, e) {\n return this._s.Zn(e), Ir.resolve();\n }, t.prototype.getMatchingKeysForTargetId = function(t, e) {\n var n = this._s.es(e);\n return Ir.resolve(n);\n }, t.prototype.containsKey = function(t, e) {\n return Ir.resolve(this._s.containsKey(e));\n }, t;\n}(), ao = /** @class */ function() {\n /**\n * The constructor accepts a factory for creating a reference delegate. This\n * allows both the delegate and this instance to have strong references to\n * each other without having nullable fields that would then need to be\n * checked or asserted on every access.\n */\n function t(t, e) {\n var n = this;\n this.gs = {}, this.Ne = new S(0), this.xe = !1, this.xe = !0, this.referenceDelegate = t(this), \n this.qe = new uo(this), this.Ut = new $r, this.Ue = function(t, e) {\n return new oo(t, (function(t) {\n return n.referenceDelegate.ps(t);\n }));\n }(this.Ut), this.R = new Fr(e), this.Ke = new eo(this.R);\n }\n return t.prototype.start = function() {\n return Promise.resolve();\n }, t.prototype.shutdown = function() {\n // No durable state to ensure is closed on shutdown.\n return this.xe = !1, Promise.resolve();\n }, Object.defineProperty(t.prototype, \"started\", {\n get: function() {\n return this.xe;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.setDatabaseDeletedListener = function() {\n // No op.\n }, t.prototype.setNetworkEnabled = function() {\n // No op.\n }, t.prototype.getIndexManager = function() {\n return this.Ut;\n }, t.prototype.getMutationQueue = function(t) {\n var e = this.gs[t.toKey()];\n return e || (e = new io(this.Ut, this.referenceDelegate), this.gs[t.toKey()] = e), \n e;\n }, t.prototype.getTargetCache = function() {\n return this.qe;\n }, t.prototype.getRemoteDocumentCache = function() {\n return this.Ue;\n }, t.prototype.getBundleCache = function() {\n return this.Ke;\n }, t.prototype.runTransaction = function(t, e, n) {\n var r = this;\n C(\"MemoryPersistence\", \"Starting transaction:\", t);\n var i = new co(this.Ne.next());\n return this.referenceDelegate.Es(), n(i).next((function(t) {\n return r.referenceDelegate.Ts(i).next((function() {\n return t;\n }));\n })).toPromise().then((function(t) {\n return i.raiseOnCommittedEvent(), t;\n }));\n }, t.prototype.Is = function(t, e) {\n return Ir.or(Object.values(this.gs).map((function(n) {\n return function() {\n return n.containsKey(t, e);\n };\n })));\n }, t;\n}(), co = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).currentSequenceNumber = t, n;\n }\n return t(n, e), n;\n}(wr), ho = /** @class */ function() {\n function t(t) {\n this.persistence = t, \n /** Tracks all documents that are active in Query views. */\n this.As = new no, \n /** The list of documents that are potentially GCed after each transaction. */\n this.Rs = null;\n }\n return t.bs = function(e) {\n return new t(e);\n }, Object.defineProperty(t.prototype, \"vs\", {\n get: function() {\n if (this.Rs) return this.Rs;\n throw O();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.addReference = function(t, e, n) {\n return this.As.addReference(n, e), this.vs.delete(n.toString()), Ir.resolve();\n }, t.prototype.removeReference = function(t, e, n) {\n return this.As.removeReference(n, e), this.vs.add(n.toString()), Ir.resolve();\n }, t.prototype.markPotentiallyOrphaned = function(t, e) {\n return this.vs.add(e.toString()), Ir.resolve();\n }, t.prototype.removeTarget = function(t, e) {\n var n = this;\n this.As.Zn(e.targetId).forEach((function(t) {\n return n.vs.add(t.toString());\n }));\n var r = this.persistence.getTargetCache();\n return r.getMatchingKeysForTargetId(t, e.targetId).next((function(t) {\n t.forEach((function(t) {\n return n.vs.add(t.toString());\n }));\n })).next((function() {\n return r.removeTargetData(t, e);\n }));\n }, t.prototype.Es = function() {\n this.Rs = new Set;\n }, t.prototype.Ts = function(t) {\n var e = this, n = this.persistence.getRemoteDocumentCache().newChangeBuffer();\n // Remove newly orphaned documents.\n return Ir.forEach(this.vs, (function(r) {\n var i = ct.fromPath(r);\n return e.Ps(t, i).next((function(t) {\n t || n.removeEntry(i);\n }));\n })).next((function() {\n return e.Rs = null, n.apply(t);\n }));\n }, t.prototype.updateLimboDocument = function(t, e) {\n var n = this;\n return this.Ps(t, e).next((function(t) {\n t ? n.vs.delete(e.toString()) : n.vs.add(e.toString());\n }));\n }, t.prototype.ps = function(t) {\n // For eager GC, we don't care about the document size, there are no size thresholds.\n return 0;\n }, t.prototype.Ps = function(t, e) {\n var n = this;\n return Ir.or([ function() {\n return Ir.resolve(n.As.containsKey(e));\n }, function() {\n return n.persistence.getTargetCache().containsKey(t, e);\n }, function() {\n return n.persistence.Is(t, e);\n } ]);\n }, t;\n}(), fo = /** @class */ function() {\n function t(t) {\n this.uid = t;\n }\n return t.prototype.isAuthenticated = function() {\n return null != this.uid;\n }, \n /**\n * Returns a key representing this user, suitable for inclusion in a\n * dictionary.\n */\n t.prototype.toKey = function() {\n return this.isAuthenticated() ? \"uid:\" + this.uid : \"anonymous-user\";\n }, t.prototype.isEqual = function(t) {\n return t.uid === this.uid;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A collection of references to a document from some kind of numbered entity\n * (either a target ID or batch ID). As references are added to or removed from\n * the set corresponding events are emitted to a registered garbage collector.\n *\n * Each reference is represented by a DocumentReference object. Each of them\n * contains enough information to uniquely identify the reference. They are all\n * stored primarily in a set sorted by key. A document is considered garbage if\n * there's no references in that set (this can be efficiently checked thanks to\n * sorting by key).\n *\n * ReferenceSet also keeps a secondary set that contains references sorted by\n * IDs. This one is used to efficiently implement removal of all references by\n * some target ID.\n */\n/** Assembles the key for a client state in WebStorage */\nfunction lo(t, e) {\n return \"firestore_clients_\" + t + \"_\" + e;\n}\n\n// The format of the WebStorage key that stores the mutation state is:\n// firestore_mutations__\n// (for unauthenticated users)\n// or: firestore_mutations___\n// 'user_uid' is last to avoid needing to escape '_' characters that it might\n// contain.\n/** Assembles the key for a mutation batch in WebStorage */ function po(t, e, n) {\n var r = \"firestore_mutations_\" + t + \"_\" + n;\n return e.isAuthenticated() && (r += \"_\" + e.uid), r;\n}\n\n// The format of the WebStorage key that stores a query target's metadata is:\n// firestore_targets__\n/** Assembles the key for a query state in WebStorage */ function yo(t, e) {\n return \"firestore_targets_\" + t + \"_\" + e;\n}\n\n// The WebStorage prefix that stores the primary tab's online state. The\n// format of the key is:\n// firestore_online_state_\n/**\n * Holds the state of a mutation batch, including its user ID, batch ID and\n * whether the batch is 'pending', 'acknowledged' or 'rejected'.\n */\n// Visible for testing\n/** A user with a null UID. */ fo.UNAUTHENTICATED = new fo(null), \n// TODO(mikelehen): Look into getting a proper uid-equivalent for\n// non-FirebaseAuth providers.\nfo.GOOGLE_CREDENTIALS = new fo(\"google-credentials-uid\"), fo.FIRST_PARTY = new fo(\"first-party-uid\"), \nfo.MOCK_USER = new fo(\"mock-user\");\n\nvar vo = /** @class */ function() {\n function t(t, e, n, r) {\n this.user = t, this.batchId = e, this.state = n, this.error = r\n /**\n * Parses a MutationMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e, n, r) {\n var i, o = JSON.parse(r), s = \"object\" == typeof o && -1 !== [ \"pending\", \"acknowledged\", \"rejected\" ].indexOf(o.state) && (void 0 === o.error || \"object\" == typeof o.error);\n return s && o.error && ((s = \"string\" == typeof o.error.message && \"string\" == typeof o.error.code) && (i = new D(o.error.code, o.error.message))), \n s ? new t(e, n, o.state, i) : (x(\"SharedClientState\", \"Failed to parse mutation state for ID '\" + n + \"': \" + r), \n null);\n }, t.prototype.Ss = function() {\n var t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }, t;\n}(), mo = /** @class */ function() {\n function t(t, e, n) {\n this.targetId = t, this.state = e, this.error = n\n /**\n * Parses a QueryTargetMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e, n) {\n var r, i = JSON.parse(n), o = \"object\" == typeof i && -1 !== [ \"not-current\", \"current\", \"rejected\" ].indexOf(i.state) && (void 0 === i.error || \"object\" == typeof i.error);\n return o && i.error && ((o = \"string\" == typeof i.error.message && \"string\" == typeof i.error.code) && (r = new D(i.error.code, i.error.message))), \n o ? new t(e, i.state, r) : (x(\"SharedClientState\", \"Failed to parse target state for ID '\" + e + \"': \" + n), \n null);\n }, t.prototype.Ss = function() {\n var t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }, t;\n}(), go = /** @class */ function() {\n function t(t, e) {\n this.clientId = t, this.activeTargetIds = e\n /**\n * Parses a RemoteClientState from the JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e, n) {\n for (var r = JSON.parse(n), i = \"object\" == typeof r && r.activeTargetIds instanceof Array, o = an(), s = 0; i && s < r.activeTargetIds.length; ++s) i = at(r.activeTargetIds[s]), \n o = o.add(r.activeTargetIds[s]);\n return i ? new t(e, o) : (x(\"SharedClientState\", \"Failed to parse client data for instance '\" + e + \"': \" + n), \n null);\n }, t;\n}(), wo = /** @class */ function() {\n function t(t, e) {\n this.clientId = t, this.onlineState = e\n /**\n * Parses a SharedOnlineState from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */;\n }\n return t.Vs = function(e) {\n var n = JSON.parse(e);\n return \"object\" == typeof n && -1 !== [ \"Unknown\", \"Online\", \"Offline\" ].indexOf(n.onlineState) && \"string\" == typeof n.clientId ? new t(n.clientId, n.onlineState) : (x(\"SharedClientState\", \"Failed to parse online state: \" + e), \n null);\n }, t;\n}(), bo = /** @class */ function() {\n function t() {\n this.activeTargetIds = an();\n }\n return t.prototype.Ds = function(t) {\n this.activeTargetIds = this.activeTargetIds.add(t);\n }, t.prototype.Cs = function(t) {\n this.activeTargetIds = this.activeTargetIds.delete(t);\n }, \n /**\n * Converts this entry into a JSON-encoded format we can use for WebStorage.\n * Does not encode `clientId` as it is part of the key in WebStorage.\n */\n t.prototype.Ss = function() {\n var t = {\n activeTargetIds: this.activeTargetIds.toArray(),\n updateTimeMs: Date.now()\n };\n return JSON.stringify(t);\n }, t;\n}(), Io = /** @class */ function() {\n function t(t, e, n, r, i) {\n this.window = t, this.Se = e, this.persistenceKey = n, this.Ns = r, this.syncEngine = null, \n this.onlineStateHandler = null, this.sequenceNumberHandler = null, this.xs = this.ks.bind(this), \n this.Fs = new We(q), this.started = !1, \n /**\n * Captures WebStorage events that occur before `start()` is called. These\n * events are replayed once `WebStorageSharedClientState` is started.\n */\n this.$s = [];\n // Escape the special characters mentioned here:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n var o = n.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n this.storage = this.window.localStorage, this.currentUser = i, this.Os = lo(this.persistenceKey, this.Ns), \n this.Ms = \n /** Assembles the key for the current sequence number. */\n function(t) {\n return \"firestore_sequence_number_\" + t;\n }(this.persistenceKey), this.Fs = this.Fs.insert(this.Ns, new bo), this.Ls = new RegExp(\"^firestore_clients_\" + o + \"_([^_]*)$\"), \n this.Bs = new RegExp(\"^firestore_mutations_\" + o + \"_(\\\\d+)(?:_(.*))?$\"), this.qs = new RegExp(\"^firestore_targets_\" + o + \"_(\\\\d+)$\"), \n this.Us = \n /** Assembles the key for the online state of the primary tab. */\n function(t) {\n return \"firestore_online_state_\" + t;\n }(this.persistenceKey), this.Ks = function(t) {\n return \"firestore_bundle_loaded_\" + t;\n }(this.persistenceKey), \n // Rather than adding the storage observer during start(), we add the\n // storage observer during initialization. This ensures that we collect\n // events before other components populate their initial state (during their\n // respective start() calls). Otherwise, we might for example miss a\n // mutation that is added after LocalStore's start() processed the existing\n // mutations but before we observe WebStorage events.\n this.window.addEventListener(\"storage\", this.xs);\n }\n /** Returns 'true' if WebStorage is available in the current environment. */ return t.yt = function(t) {\n return !(!t || !t.localStorage);\n }, t.prototype.start = function() {\n return n(this, void 0, void 0, (function() {\n var t, e, n, i, o, s, u, a, c, h, f, l = this;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , this.syncEngine.fn() ];\n\n case 1:\n for (t = r.sent(), e = 0, n = t; e < n.length; e++) (i = n[e]) !== this.Ns && (o = this.getItem(lo(this.persistenceKey, i))) && (s = go.Vs(i, o)) && (this.Fs = this.Fs.insert(s.clientId, s));\n for (this.Qs(), (u = this.storage.getItem(this.Us)) && (a = this.js(u)) && this.Ws(a), \n c = 0, h = this.$s; c < h.length; c++) f = h[c], this.ks(f);\n return this.$s = [], \n // Register a window unload hook to remove the client metadata entry from\n // WebStorage even if `shutdown()` was not called.\n this.window.addEventListener(\"pagehide\", (function() {\n return l.shutdown();\n })), this.started = !0, [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.writeSequenceNumber = function(t) {\n this.setItem(this.Ms, JSON.stringify(t));\n }, t.prototype.getAllActiveQueryTargets = function() {\n return this.Gs(this.Fs);\n }, t.prototype.isActiveQueryTarget = function(t) {\n var e = !1;\n return this.Fs.forEach((function(n, r) {\n r.activeTargetIds.has(t) && (e = !0);\n })), e;\n }, t.prototype.addPendingMutation = function(t) {\n this.zs(t, \"pending\");\n }, t.prototype.updateMutationState = function(t, e, n) {\n this.zs(t, e, n), \n // Once a final mutation result is observed by other clients, they no longer\n // access the mutation's metadata entry. Since WebStorage replays events\n // in order, it is safe to delete the entry right after updating it.\n this.Hs(t);\n }, t.prototype.addLocalQueryTarget = function(t) {\n var e = \"not-current\";\n // Lookup an existing query state if the target ID was already registered\n // by another tab\n if (this.isActiveQueryTarget(t)) {\n var n = this.storage.getItem(yo(this.persistenceKey, t));\n if (n) {\n var r = mo.Vs(t, n);\n r && (e = r.state);\n }\n }\n return this.Js.Ds(t), this.Qs(), e;\n }, t.prototype.removeLocalQueryTarget = function(t) {\n this.Js.Cs(t), this.Qs();\n }, t.prototype.isLocalQueryTarget = function(t) {\n return this.Js.activeTargetIds.has(t);\n }, t.prototype.clearQueryState = function(t) {\n this.removeItem(yo(this.persistenceKey, t));\n }, t.prototype.updateQueryState = function(t, e, n) {\n this.Ys(t, e, n);\n }, t.prototype.handleUserChange = function(t, e, n) {\n var r = this;\n e.forEach((function(t) {\n r.Hs(t);\n })), this.currentUser = t, n.forEach((function(t) {\n r.addPendingMutation(t);\n }));\n }, t.prototype.setOnlineState = function(t) {\n this.Xs(t);\n }, t.prototype.notifyBundleLoaded = function() {\n this.Zs();\n }, t.prototype.shutdown = function() {\n this.started && (this.window.removeEventListener(\"storage\", this.xs), this.removeItem(this.Os), \n this.started = !1);\n }, t.prototype.getItem = function(t) {\n var e = this.storage.getItem(t);\n return C(\"SharedClientState\", \"READ\", t, e), e;\n }, t.prototype.setItem = function(t, e) {\n C(\"SharedClientState\", \"SET\", t, e), this.storage.setItem(t, e);\n }, t.prototype.removeItem = function(t) {\n C(\"SharedClientState\", \"REMOVE\", t), this.storage.removeItem(t);\n }, t.prototype.ks = function(t) {\n var e = this, i = t;\n // Note: The function is typed to take Event to be interface-compatible with\n // `Window.addEventListener`.\n if (i.storageArea === this.storage) {\n if (C(\"SharedClientState\", \"EVENT\", i.key, i.newValue), i.key === this.Os) return void x(\"Received WebStorage notification for local change. Another client might have garbage-collected our state\");\n this.Se.enqueueRetryable((function() {\n return n(e, void 0, void 0, (function() {\n var t, e, n, o, s, u;\n return r(this, (function(r) {\n if (this.started) {\n if (null !== i.key) if (this.Ls.test(i.key)) {\n if (null == i.newValue) return t = this.ti(i.key), [ 2 /*return*/ , this.ei(t, null) ];\n if (e = this.ni(i.key, i.newValue)) return [ 2 /*return*/ , this.ei(e.clientId, e) ];\n } else if (this.Bs.test(i.key)) {\n if (null !== i.newValue && (n = this.si(i.key, i.newValue))) return [ 2 /*return*/ , this.ii(n) ];\n } else if (this.qs.test(i.key)) {\n if (null !== i.newValue && (o = this.ri(i.key, i.newValue))) return [ 2 /*return*/ , this.oi(o) ];\n } else if (i.key === this.Us) {\n if (null !== i.newValue && (s = this.js(i.newValue))) return [ 2 /*return*/ , this.Ws(s) ];\n } else if (i.key === this.Ms) (u = function(t) {\n var e = S.o;\n if (null != t) try {\n var n = JSON.parse(t);\n P(\"number\" == typeof n), e = n;\n } catch (t) {\n x(\"SharedClientState\", \"Failed to read sequence number from WebStorage\", t);\n }\n return e;\n }(i.newValue)) !== S.o && this.sequenceNumberHandler(u); else if (i.key === this.Ks) return [ 2 /*return*/ , this.syncEngine.ci() ];\n } else this.$s.push(i);\n return [ 2 /*return*/ ];\n }));\n }));\n }));\n }\n }, Object.defineProperty(t.prototype, \"Js\", {\n get: function() {\n return this.Fs.get(this.Ns);\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.Qs = function() {\n this.setItem(this.Os, this.Js.Ss());\n }, t.prototype.zs = function(t, e, n) {\n var r = new vo(this.currentUser, t, e, n), i = po(this.persistenceKey, this.currentUser, t);\n this.setItem(i, r.Ss());\n }, t.prototype.Hs = function(t) {\n var e = po(this.persistenceKey, this.currentUser, t);\n this.removeItem(e);\n }, t.prototype.Xs = function(t) {\n var e = {\n clientId: this.Ns,\n onlineState: t\n };\n this.storage.setItem(this.Us, JSON.stringify(e));\n }, t.prototype.Ys = function(t, e, n) {\n var r = yo(this.persistenceKey, t), i = new mo(t, e, n);\n this.setItem(r, i.Ss());\n }, t.prototype.Zs = function() {\n this.setItem(this.Ks, \"value-not-used\");\n }, \n /**\n * Parses a client state key in WebStorage. Returns null if the key does not\n * match the expected key format.\n */\n t.prototype.ti = function(t) {\n var e = this.Ls.exec(t);\n return e ? e[1] : null;\n }, \n /**\n * Parses a client state in WebStorage. Returns 'null' if the value could not\n * be parsed.\n */\n t.prototype.ni = function(t, e) {\n var n = this.ti(t);\n return go.Vs(n, e);\n }, \n /**\n * Parses a mutation batch state in WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n t.prototype.si = function(t, e) {\n var n = this.Bs.exec(t), r = Number(n[1]), i = void 0 !== n[2] ? n[2] : null;\n return vo.Vs(new fo(i), r, e);\n }, \n /**\n * Parses a query target state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n t.prototype.ri = function(t, e) {\n var n = this.qs.exec(t), r = Number(n[1]);\n return mo.Vs(r, e);\n }, \n /**\n * Parses an online state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */\n t.prototype.js = function(t) {\n return wo.Vs(t);\n }, t.prototype.ii = function(t) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(e) {\n return t.user.uid === this.currentUser.uid ? [ 2 /*return*/ , this.syncEngine.ui(t.batchId, t.state, t.error) ] : (C(\"SharedClientState\", \"Ignoring mutation for non-active user \" + t.user.uid), \n [ 2 /*return*/ ]);\n }));\n }));\n }, t.prototype.oi = function(t) {\n return this.syncEngine.ai(t.targetId, t.state, t.error);\n }, t.prototype.ei = function(t, e) {\n var n = this, r = e ? this.Fs.insert(t, e) : this.Fs.remove(t), i = this.Gs(this.Fs), o = this.Gs(r), s = [], u = [];\n return o.forEach((function(t) {\n i.has(t) || s.push(t);\n })), i.forEach((function(t) {\n o.has(t) || u.push(t);\n })), this.syncEngine.hi(s, u).then((function() {\n n.Fs = r;\n }));\n }, t.prototype.Ws = function(t) {\n // We check whether the client that wrote this online state is still active\n // by comparing its client ID to the list of clients kept active in\n // IndexedDb. If a client does not update their IndexedDb client state\n // within 5 seconds, it is considered inactive and we don't emit an online\n // state event.\n this.Fs.get(t.clientId) && this.onlineStateHandler(t.onlineState);\n }, t.prototype.Gs = function(t) {\n var e = an();\n return t.forEach((function(t, n) {\n e = e.unionWith(n.activeTargetIds);\n })), e;\n }, t;\n}(), To = /** @class */ function() {\n function t() {\n this.li = new bo, this.fi = {}, this.onlineStateHandler = null, this.sequenceNumberHandler = null;\n }\n return t.prototype.addPendingMutation = function(t) {\n // No op.\n }, t.prototype.updateMutationState = function(t, e, n) {\n // No op.\n }, t.prototype.addLocalQueryTarget = function(t) {\n return this.li.Ds(t), this.fi[t] || \"not-current\";\n }, t.prototype.updateQueryState = function(t, e, n) {\n this.fi[t] = e;\n }, t.prototype.removeLocalQueryTarget = function(t) {\n this.li.Cs(t);\n }, t.prototype.isLocalQueryTarget = function(t) {\n return this.li.activeTargetIds.has(t);\n }, t.prototype.clearQueryState = function(t) {\n delete this.fi[t];\n }, t.prototype.getAllActiveQueryTargets = function() {\n return this.li.activeTargetIds;\n }, t.prototype.isActiveQueryTarget = function(t) {\n return this.li.activeTargetIds.has(t);\n }, t.prototype.start = function() {\n return this.li = new bo, Promise.resolve();\n }, t.prototype.handleUserChange = function(t, e, n) {\n // No op.\n }, t.prototype.setOnlineState = function(t) {\n // No op.\n }, t.prototype.shutdown = function() {}, t.prototype.writeSequenceNumber = function(t) {}, \n t.prototype.notifyBundleLoaded = function() {\n // No op.\n }, t;\n}(), _o = /** @class */ function() {\n function t() {}\n return t.prototype.di = function(t) {\n // No-op.\n }, t.prototype.shutdown = function() {\n // No-op.\n }, t;\n}(), Eo = /** @class */ function() {\n function t() {\n var t = this;\n this.wi = function() {\n return t._i();\n }, this.mi = function() {\n return t.yi();\n }, this.gi = [], this.pi();\n }\n return t.prototype.di = function(t) {\n this.gi.push(t);\n }, t.prototype.shutdown = function() {\n window.removeEventListener(\"online\", this.wi), window.removeEventListener(\"offline\", this.mi);\n }, t.prototype.pi = function() {\n window.addEventListener(\"online\", this.wi), window.addEventListener(\"offline\", this.mi);\n }, t.prototype._i = function() {\n C(\"ConnectivityMonitor\", \"Network connectivity changed: AVAILABLE\");\n for (var t = 0, e = this.gi; t < e.length; t++) {\n (0, e[t])(0 /* AVAILABLE */);\n }\n }, t.prototype.yi = function() {\n C(\"ConnectivityMonitor\", \"Network connectivity changed: UNAVAILABLE\");\n for (var t = 0, e = this.gi; t < e.length; t++) {\n (0, e[t])(1 /* UNAVAILABLE */);\n }\n }, \n // TODO(chenbrian): Consider passing in window either into this component or\n // here for testing via FakeWindow.\n /** Checks that all used attributes of window are available. */\n t.yt = function() {\n return \"undefined\" != typeof window && void 0 !== window.addEventListener && void 0 !== window.removeEventListener;\n }, t;\n}(), So = {\n BatchGetDocuments: \"batchGet\",\n Commit: \"commit\",\n RunQuery: \"runQuery\"\n}, No = /** @class */ function() {\n function t(t) {\n this.Ei = t.Ei, this.Ti = t.Ti;\n }\n return t.prototype.Ii = function(t) {\n this.Ai = t;\n }, t.prototype.Ri = function(t) {\n this.bi = t;\n }, t.prototype.onMessage = function(t) {\n this.vi = t;\n }, t.prototype.close = function() {\n this.Ti();\n }, t.prototype.send = function(t) {\n this.Ei(t);\n }, t.prototype.Pi = function() {\n this.Ai();\n }, t.prototype.Vi = function(t) {\n this.bi(t);\n }, t.prototype.Si = function(t) {\n this.vi(t);\n }, t;\n}(), Do = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this, t) || this).forceLongPolling = t.forceLongPolling, n.autoDetectLongPolling = t.autoDetectLongPolling, \n n.useFetchStreams = t.useFetchStreams, n;\n }\n /**\n * Base class for all Rest-based connections to the backend (WebChannel and\n * HTTP).\n */\n return t(n, e), n.prototype.Fi = function(t, e, n, r) {\n return new Promise((function(i, o) {\n var s = new v;\n s.listenOnce(m.COMPLETE, (function() {\n try {\n switch (s.getLastErrorCode()) {\n case g.NO_ERROR:\n var e = s.getResponseJson();\n C(\"Connection\", \"XHR received:\", JSON.stringify(e)), i(e);\n break;\n\n case g.TIMEOUT:\n C(\"Connection\", 'RPC \"' + t + '\" timed out'), o(new D(N.DEADLINE_EXCEEDED, \"Request time out\"));\n break;\n\n case g.HTTP_ERROR:\n var n = s.getStatus();\n if (C(\"Connection\", 'RPC \"' + t + '\" failed with status:', n, \"response text:\", s.getResponseText()), \n n > 0) {\n var r = s.getResponseJson().error;\n if (r && r.status && r.message) {\n var u = function(t) {\n var e = t.toLowerCase().replace(/_/g, \"-\");\n return Object.values(N).indexOf(e) >= 0 ? e : N.UNKNOWN;\n }(r.status);\n o(new D(u, r.message));\n } else o(new D(N.UNKNOWN, \"Server responded with status \" + s.getStatus()));\n } else \n // If we received an HTTP_ERROR but there's no status code,\n // it's most probably a connection issue\n o(new D(N.UNAVAILABLE, \"Connection failed.\"));\n break;\n\n default:\n O();\n }\n } finally {\n C(\"Connection\", 'RPC \"' + t + '\" completed.');\n }\n }));\n var u = JSON.stringify(r);\n s.send(e, \"POST\", u, n, 15);\n }));\n }, n.prototype.Oi = function(t, e) {\n var n = [ this.Di, \"/\", \"google.firestore.v1.Firestore\", \"/\", t, \"/channel\" ], r = w(), i = b(), o = {\n // Required for backend stickiness, routing behavior is based on this\n // parameter.\n httpSessionIdParam: \"gsessionid\",\n initMessageHeaders: {},\n messageUrlParams: {\n // This param is used to improve routing and project isolation by the\n // backend and must be included in every request.\n database: \"projects/\" + this.databaseId.projectId + \"/databases/\" + this.databaseId.database\n },\n sendRawJson: !0,\n supportsCrossDomainXhr: !0,\n internalChannelParams: {\n // Override the default timeout (randomized between 10-20 seconds) since\n // a large write batch on a slow internet connection may take a long\n // time to send to the backend. Rather than have WebChannel impose a\n // tight timeout which could lead to infinite timeouts and retries, we\n // set it very large (5-10 minutes) and rely on the browser's builtin\n // timeouts to kick in if the request isn't working.\n forwardChannelRequestTimeoutMs: 6e5\n },\n forceLongPolling: this.forceLongPolling,\n detectBufferingProxy: this.autoDetectLongPolling\n };\n this.useFetchStreams && (o.xmlHttpFactory = new I({})), this.ki(o.initMessageHeaders, e), \n // Sending the custom headers we just added to request.initMessageHeaders\n // (Authorization, etc.) will trigger the browser to make a CORS preflight\n // request because the XHR will no longer meet the criteria for a \"simple\"\n // CORS request:\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests\n // Therefore to avoid the CORS preflight request (an extra network\n // roundtrip), we use the httpHeadersOverwriteParam option to specify that\n // the headers should instead be encoded into a special \"$httpHeaders\" query\n // parameter, which is recognized by the webchannel backend. This is\n // formally defined here:\n // https://github.com/google/closure-library/blob/b0e1815b13fb92a46d7c9b3c30de5d6a396a3245/closure/goog/net/rpc/httpcors.js#L32\n // TODO(b/145624756): There is a backend bug where $httpHeaders isn't respected if the request\n // doesn't have an Origin header. So we have to exclude a few browser environments that are\n // known to (sometimes) not include an Origin. See\n // https://github.com/firebase/firebase-js-sdk/issues/1491.\n s() || u() || a() || c() || h() || f() || (o.httpHeadersOverwriteParam = \"$httpHeaders\");\n var l = n.join(\"\");\n C(\"Connection\", \"Creating WebChannel: \" + l, o);\n var d = r.createWebChannel(l, o), p = !1, y = !1, v = new No({\n Ei: function(t) {\n y ? C(\"Connection\", \"Not sending because WebChannel is closed:\", t) : (p || (C(\"Connection\", \"Opening WebChannel transport.\"), \n d.open(), p = !0), C(\"Connection\", \"WebChannel sending:\", t), d.send(t));\n },\n Ti: function() {\n return d.close();\n }\n }), m = function(t, e, n) {\n // TODO(dimond): closure typing seems broken because WebChannel does\n // not implement goog.events.Listenable\n t.listen(e, (function(t) {\n try {\n n(t);\n } catch (t) {\n setTimeout((function() {\n throw t;\n }), 0);\n }\n }));\n };\n // WebChannel supports sending the first message with the handshake - saving\n // a network round trip. However, it will have to call send in the same\n // JS event loop as open. In order to enforce this, we delay actually\n // opening the WebChannel until send is called. Whether we have called\n // open is tracked with this variable.\n // Closure events are guarded and exceptions are swallowed, so catch any\n // exception and rethrow using a setTimeout so they become visible again.\n // Note that eventually this function could go away if we are confident\n // enough the code is exception free.\n return m(d, T.EventType.OPEN, (function() {\n y || C(\"Connection\", \"WebChannel transport opened.\");\n })), m(d, T.EventType.CLOSE, (function() {\n y || (y = !0, C(\"Connection\", \"WebChannel transport closed\"), v.Vi());\n })), m(d, T.EventType.ERROR, (function(t) {\n y || (y = !0, R(\"Connection\", \"WebChannel transport errored:\", t), v.Vi(new D(N.UNAVAILABLE, \"The operation could not be completed\")));\n })), m(d, T.EventType.MESSAGE, (function(t) {\n var e;\n if (!y) {\n var n = t.data[0];\n P(!!n);\n // TODO(b/35143891): There is a bug in One Platform that caused errors\n // (and only errors) to be wrapped in an extra array. To be forward\n // compatible with the bug we need to check either condition. The latter\n // can be removed once the fix has been rolled out.\n // Use any because msgData.error is not typed.\n var r = n, i = r.error || (null === (e = r[0]) || void 0 === e ? void 0 : e.error);\n if (i) {\n C(\"Connection\", \"WebChannel received error:\", i);\n // error.status will be a string like 'OK' or 'NOT_FOUND'.\n var o = i.status, s = \n /**\n * Maps an error Code from a GRPC status identifier like 'NOT_FOUND'.\n *\n * @returns The Code equivalent to the given status string or undefined if\n * there is no match.\n */\n function(t) {\n // lookup by string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var e = Ue[t];\n if (void 0 !== e) return ze(e);\n }(o), u = i.message;\n void 0 === s && (s = N.INTERNAL, u = \"Unknown error status: \" + o + \" with message \" + i.message), \n // Mark closed so no further events are propagated\n y = !0, v.Vi(new D(s, u)), d.close();\n } else C(\"Connection\", \"WebChannel received:\", n), v.Si(n);\n }\n })), m(i, _.STAT_EVENT, (function(t) {\n t.stat === E.PROXY ? C(\"Connection\", \"Detected buffering proxy\") : t.stat === E.NOPROXY && C(\"Connection\", \"Detected no buffering proxy\");\n })), setTimeout((function() {\n // Technically we could/should wait for the WebChannel opened event,\n // but because we want to send the first message with the WebChannel\n // handshake we pretend the channel opened here (asynchronously), and\n // then delay the actual open until the first message is sent.\n v.Pi();\n }), 0), v;\n }, n;\n}(/** @class */ function() {\n function t(t) {\n this.databaseInfo = t, this.databaseId = t.databaseId;\n var e = t.ssl ? \"https\" : \"http\";\n this.Di = e + \"://\" + t.host, this.Ci = \"projects/\" + this.databaseId.projectId + \"/databases/\" + this.databaseId.database + \"/documents\";\n }\n return t.prototype.Ni = function(t, e, n, r) {\n var i = this.xi(t, e);\n C(\"RestConnection\", \"Sending: \", i, n);\n var o = {};\n return this.ki(o, r), this.Fi(t, i, o, n).then((function(t) {\n return C(\"RestConnection\", \"Received: \", t), t;\n }), (function(e) {\n throw R(\"RestConnection\", t + \" failed with error: \", e, \"url: \", i, \"request:\", n), \n e;\n }));\n }, t.prototype.$i = function(t, e, n, r) {\n // The REST API automatically aggregates all of the streamed results, so we\n // can just use the normal invoke() method.\n return this.Ni(t, e, n, r);\n }, \n /**\n * Modifies the headers for a request, adding any authorization token if\n * present and any additional headers for the request.\n */\n t.prototype.ki = function(t, e) {\n if (t[\"X-Goog-Api-Client\"] = \"gl-js/ fire/8.10.1\", \n // Content-Type: text/plain will avoid preflight requests which might\n // mess with CORS and redirects by proxies. If we add custom headers\n // we will need to change this code to potentially use the $httpOverwrite\n // parameter supported by ESF to avoid triggering preflight requests.\n t[\"Content-Type\"] = \"text/plain\", this.databaseInfo.appId && (t[\"X-Firebase-GMPID\"] = this.databaseInfo.appId), \n e) for (var n in e.authHeaders) e.authHeaders.hasOwnProperty(n) && (t[n] = e.authHeaders[n]);\n }, t.prototype.xi = function(t, e) {\n var n = So[t];\n return this.Di + \"/v1/\" + e + \":\" + n;\n }, t;\n}());\n\n/**\n * Holds the state of a query target, including its target ID and whether the\n * target is 'not-current', 'current' or 'rejected'.\n */\n// Visible for testing\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** Initializes the WebChannelConnection for the browser. */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** The Platform's 'window' implementation or null if not available. */\nfunction Ao() {\n // `window` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof window ? window : null;\n}\n\n/** The Platform's 'document' implementation or null if not available. */ function ko() {\n // `document` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof document ? document : null;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ function Co(t) {\n return new bn(t, /* useProto3Json= */ !0);\n}\n\n/**\n * An instance of the Platform's 'TextEncoder' implementation.\n */\n/**\n * A helper for running delayed tasks following an exponential backoff curve\n * between attempts.\n *\n * Each delay is made up of a \"base\" delay which follows the exponential\n * backoff curve, and a +/- 50% \"jitter\" that is calculated and added to the\n * base delay. This prevents clients from accidentally synchronizing their\n * delays causing spikes of load to the backend.\n */ var xo = /** @class */ function() {\n function t(\n /**\n * The AsyncQueue to run backoff operations on.\n */\n t, \n /**\n * The ID to use when scheduling backoff operations on the AsyncQueue.\n */\n e, \n /**\n * The initial delay (used as the base delay on the first retry attempt).\n * Note that jitter will still be applied, so the actual delay could be as\n * little as 0.5*initialDelayMs.\n */\n n\n /**\n * The multiplier to use to determine the extended base delay after each\n * attempt.\n */ , r\n /**\n * The maximum base delay after which no further backoff is performed.\n * Note that jitter will still be applied, so the actual delay could be as\n * much as 1.5*maxDelayMs.\n */ , i) {\n void 0 === n && (n = 1e3), void 0 === r && (r = 1.5), void 0 === i && (i = 6e4), \n this.Se = t, this.timerId = e, this.Mi = n, this.Li = r, this.Bi = i, this.qi = 0, \n this.Ui = null, \n /** The last backoff attempt, as epoch milliseconds. */\n this.Ki = Date.now(), this.reset();\n }\n /**\n * Resets the backoff delay.\n *\n * The very next backoffAndWait() will have no delay. If it is called again\n * (i.e. due to an error), initialDelayMs (plus jitter) will be used, and\n * subsequent ones will increase according to the backoffFactor.\n */ return t.prototype.reset = function() {\n this.qi = 0;\n }, \n /**\n * Resets the backoff delay to the maximum delay (e.g. for use after a\n * RESOURCE_EXHAUSTED error).\n */\n t.prototype.Qi = function() {\n this.qi = this.Bi;\n }, \n /**\n * Returns a promise that resolves after currentDelayMs, and increases the\n * delay for any subsequent attempts. If there was a pending backoff operation\n * already, it will be canceled.\n */\n t.prototype.ji = function(t) {\n var e = this;\n // Cancel any pending backoff operation.\n this.cancel();\n // First schedule using the current base (which may be 0 and should be\n // honored as such).\n var n = Math.floor(this.qi + this.Wi()), r = Math.max(0, Date.now() - this.Ki), i = Math.max(0, n - r);\n // Guard against lastAttemptTime being in the future due to a clock change.\n i > 0 && C(\"ExponentialBackoff\", \"Backing off for \" + i + \" ms (base delay: \" + this.qi + \" ms, delay with jitter: \" + n + \" ms, last attempt: \" + r + \" ms ago)\"), \n this.Ui = this.Se.enqueueAfterDelay(this.timerId, i, (function() {\n return e.Ki = Date.now(), t();\n })), \n // Apply backoff factor to determine next delay and ensure it is within\n // bounds.\n this.qi *= this.Li, this.qi < this.Mi && (this.qi = this.Mi), this.qi > this.Bi && (this.qi = this.Bi);\n }, t.prototype.Gi = function() {\n null !== this.Ui && (this.Ui.skipDelay(), this.Ui = null);\n }, t.prototype.cancel = function() {\n null !== this.Ui && (this.Ui.cancel(), this.Ui = null);\n }, \n /** Returns a random value in the range [-currentBaseMs/2, currentBaseMs/2] */ t.prototype.Wi = function() {\n return (Math.random() - .5) * this.qi;\n }, t;\n}(), Ro = /** @class */ function() {\n function t(t, e, n, r, i, o) {\n this.Se = t, this.zi = n, this.Hi = r, this.Ji = i, this.listener = o, this.state = 0 /* Initial */ , \n /**\n * A close count that's incremented every time the stream is closed; used by\n * getCloseGuardedDispatcher() to invalidate callbacks that happen after\n * close.\n */\n this.Yi = 0, this.Xi = null, this.stream = null, this.Zi = new xo(t, e)\n /**\n * Returns true if start() has been called and no error has occurred. True\n * indicates the stream is open or in the process of opening (which\n * encompasses respecting backoff, getting auth tokens, and starting the\n * actual RPC). Use isOpen() to determine if the stream is open and ready for\n * outbound requests.\n */;\n }\n return t.prototype.tr = function() {\n return 1 /* Starting */ === this.state || 2 /* Open */ === this.state || 4 /* Backoff */ === this.state;\n }, \n /**\n * Returns true if the underlying RPC is open (the onOpen() listener has been\n * called) and the stream is ready for outbound requests.\n */\n t.prototype.er = function() {\n return 2 /* Open */ === this.state;\n }, \n /**\n * Starts the RPC. Only allowed if isStarted() returns false. The stream is\n * not immediately ready for use: onOpen() will be invoked when the RPC is\n * ready for outbound requests, at which point isOpen() will return true.\n *\n * When start returns, isStarted() will return true.\n */\n t.prototype.start = function() {\n 3 /* Error */ !== this.state ? this.auth() : this.nr();\n }, \n /**\n * Stops the RPC. This call is idempotent and allowed regardless of the\n * current isStarted() state.\n *\n * When stop returns, isStarted() and isOpen() will both return false.\n */\n t.prototype.stop = function() {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(t) {\n switch (t.label) {\n case 0:\n return this.tr() ? [ 4 /*yield*/ , this.close(0 /* Initial */) ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * After an error the stream will usually back off on the next attempt to\n * start it. If the error warrants an immediate restart of the stream, the\n * sender can use this to indicate that the receiver should not back off.\n *\n * Each error will call the onClose() listener. That function can decide to\n * inhibit backoff if required.\n */\n t.prototype.sr = function() {\n this.state = 0 /* Initial */ , this.Zi.reset();\n }, \n /**\n * Marks this stream as idle. If no further actions are performed on the\n * stream for one minute, the stream will automatically close itself and\n * notify the stream's onClose() handler with Status.OK. The stream will then\n * be in a !isStarted() state, requiring the caller to start the stream again\n * before further use.\n *\n * Only streams that are in state 'Open' can be marked idle, as all other\n * states imply pending network operations.\n */\n t.prototype.ir = function() {\n var t = this;\n // Starts the idle time if we are in state 'Open' and are not yet already\n // running a timer (in which case the previous idle timeout still applies).\n this.er() && null === this.Xi && (this.Xi = this.Se.enqueueAfterDelay(this.zi, 6e4, (function() {\n return t.rr();\n })));\n }, \n /** Sends a message to the underlying stream. */ t.prototype.cr = function(t) {\n this.ur(), this.stream.send(t);\n }, \n /** Called by the idle timer when the stream should close due to inactivity. */ t.prototype.rr = function() {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(t) {\n return this.er() ? [ 2 /*return*/ , this.close(0 /* Initial */) ] : [ 2 /*return*/ ];\n }));\n }));\n }, \n /** Marks the stream as active again. */ t.prototype.ur = function() {\n this.Xi && (this.Xi.cancel(), this.Xi = null);\n }, \n /**\n * Closes the stream and cleans up as necessary:\n *\n * * closes the underlying GRPC stream;\n * * calls the onClose handler with the given 'error';\n * * sets internal stream state to 'finalState';\n * * adjusts the backoff timer based on the error\n *\n * A new stream can be opened by calling start().\n *\n * @param finalState - the intended state of the stream after closing.\n * @param error - the error the connection was closed with.\n */\n t.prototype.close = function(t, e) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n // Notify the listener that the stream closed.\n // Cancel any outstanding timers (they're guaranteed not to execute).\n return this.ur(), this.Zi.cancel(), \n // Invalidates any stream-related callbacks (e.g. from auth or the\n // underlying stream), guaranteeing they won't execute.\n this.Yi++, 3 /* Error */ !== t ? \n // If this is an intentional close ensure we don't delay our next connection attempt.\n this.Zi.reset() : e && e.code === N.RESOURCE_EXHAUSTED ? (\n // Log the error. (Probably either 'quota exceeded' or 'max queue length reached'.)\n x(e.toString()), x(\"Using maximum backoff delay to prevent overloading the backend.\"), \n this.Zi.Qi()) : e && e.code === N.UNAUTHENTICATED && \n // \"unauthenticated\" error means the token was rejected. Try force refreshing it in case it\n // just expired.\n this.Ji.invalidateToken(), \n // Clean up the underlying stream because we are no longer interested in events.\n null !== this.stream && (this.ar(), this.stream.close(), this.stream = null), \n // This state must be assigned before calling onClose() to allow the callback to\n // inhibit backoff or otherwise manipulate the state in its non-started state.\n this.state = t, [ 4 /*yield*/ , this.listener.Ri(e) ];\n\n case 1:\n // Cancel any outstanding timers (they're guaranteed not to execute).\n // Notify the listener that the stream closed.\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * Can be overridden to perform additional cleanup before the stream is closed.\n * Calling super.tearDown() is not required.\n */\n t.prototype.ar = function() {}, t.prototype.auth = function() {\n var t = this;\n this.state = 1 /* Starting */;\n var e = this.hr(this.Yi), n = this.Yi;\n // TODO(mikelehen): Just use dispatchIfNotClosed, but see TODO below.\n this.Ji.getToken().then((function(e) {\n // Stream can be stopped while waiting for authentication.\n // TODO(mikelehen): We really should just use dispatchIfNotClosed\n // and let this dispatch onto the queue, but that opened a spec test can\n // of worms that I don't want to deal with in this PR.\n t.Yi === n && \n // Normally we'd have to schedule the callback on the AsyncQueue.\n // However, the following calls are safe to be called outside the\n // AsyncQueue since they don't chain asynchronous calls\n t.lr(e);\n }), (function(n) {\n e((function() {\n var e = new D(N.UNKNOWN, \"Fetching auth token failed: \" + n.message);\n return t.dr(e);\n }));\n }));\n }, t.prototype.lr = function(t) {\n var e = this, n = this.hr(this.Yi);\n this.stream = this.wr(t), this.stream.Ii((function() {\n n((function() {\n return e.state = 2 /* Open */ , e.listener.Ii();\n }));\n })), this.stream.Ri((function(t) {\n n((function() {\n return e.dr(t);\n }));\n })), this.stream.onMessage((function(t) {\n n((function() {\n return e.onMessage(t);\n }));\n }));\n }, t.prototype.nr = function() {\n var t = this;\n this.state = 4 /* Backoff */ , this.Zi.ji((function() {\n return n(t, void 0, void 0, (function() {\n return r(this, (function(t) {\n return this.state = 0 /* Initial */ , this.start(), [ 2 /*return*/ ];\n }));\n }));\n }));\n }, \n // Visible for tests\n t.prototype.dr = function(t) {\n // In theory the stream could close cleanly, however, in our current model\n // we never expect this to happen because if we stop a stream ourselves,\n // this callback will never be called. To prevent cases where we retry\n // without a backoff accidentally, we set the stream to error in all cases.\n return C(\"PersistentStream\", \"close with error: \" + t), this.stream = null, this.close(3 /* Error */ , t);\n }, \n /**\n * Returns a \"dispatcher\" function that dispatches operations onto the\n * AsyncQueue but only runs them if closeCount remains unchanged. This allows\n * us to turn auth / stream callbacks into no-ops if the stream is closed /\n * re-opened, etc.\n */\n t.prototype.hr = function(t) {\n var e = this;\n return function(n) {\n e.Se.enqueueAndForget((function() {\n return e.Yi === t ? n() : (C(\"PersistentStream\", \"stream callback skipped by getCloseGuardedDispatcher.\"), \n Promise.resolve());\n }));\n };\n }, t;\n}(), Lo = /** @class */ function(e) {\n function n(t, n, r, i, o) {\n var s = this;\n return (s = e.call(this, t, \"listen_stream_connection_backoff\" /* ListenStreamConnectionBackoff */ , \"listen_stream_idle\" /* ListenStreamIdle */ , n, r, o) || this).R = i, \n s;\n }\n return t(n, e), n.prototype.wr = function(t) {\n return this.Hi.Oi(\"Listen\", t);\n }, n.prototype.onMessage = function(t) {\n // A successful response means the stream is healthy\n this.Zi.reset();\n var e = function(t, e) {\n var n;\n if (\"targetChange\" in e) {\n e.targetChange;\n // proto3 default value is unset in JSON (undefined), so use 'NO_CHANGE'\n // if unset\n var r = function(t) {\n return \"NO_CHANGE\" === t ? 0 /* NoChange */ : \"ADD\" === t ? 1 /* Added */ : \"REMOVE\" === t ? 2 /* Removed */ : \"CURRENT\" === t ? 3 /* Current */ : \"RESET\" === t ? 4 /* Reset */ : O();\n }(e.targetChange.targetChangeType || \"NO_CHANGE\"), i = e.targetChange.targetIds || [], o = function(t, e) {\n return t.I ? (P(void 0 === e || \"string\" == typeof e), J.fromBase64String(e || \"\")) : (P(void 0 === e || e instanceof Uint8Array), \n J.fromUint8Array(e || new Uint8Array));\n }(t, e.targetChange.resumeToken), s = (u = e.targetChange.cause) && function(t) {\n var e = void 0 === t.code ? N.UNKNOWN : ze(t.code);\n return new D(e, t.message || \"\");\n }(u);\n n = new dn(r, i, o, s || null);\n } else if (\"documentChange\" in e) {\n e.documentChange, (r = e.documentChange).document, r.document.name, r.document.updateTime, \n i = An(t, r.document.name), o = En(r.document.updateTime);\n var u = new Et({\n mapValue: {\n fields: r.document.fields\n }\n }), a = (s = Nt.newFoundDocument(i, o, u), r.targetIds || []), c = r.removedTargetIds || [];\n n = new fn(a, c, s.key, s);\n } else if (\"documentDelete\" in e) e.documentDelete, (r = e.documentDelete).document, \n i = An(t, r.document), o = r.readTime ? En(r.readTime) : K.min(), u = Nt.newNoDocument(i, o), \n s = r.removedTargetIds || [], n = new fn([], s, u.key, u); else if (\"documentRemove\" in e) e.documentRemove, \n (r = e.documentRemove).document, i = An(t, r.document), o = r.removedTargetIds || [], \n n = new fn([], o, i, null); else {\n if (!(\"filter\" in e)) return O();\n e.filter;\n var h = e.filter;\n h.targetId, r = h.count || 0, i = new Ge(r), o = h.targetId, n = new ln(o, i);\n }\n return n;\n }(this.R, t), n = function(t) {\n // We have only reached a consistent snapshot for the entire stream if there\n // is a read_time set and it applies to all targets (i.e. the list of\n // targets is empty). The backend is guaranteed to send such responses.\n if (!(\"targetChange\" in t)) return K.min();\n var e = t.targetChange;\n return e.targetIds && e.targetIds.length ? K.min() : e.readTime ? En(e.readTime) : K.min();\n }(t);\n return this.listener._r(e, n);\n }, \n /**\n * Registers interest in the results of the given target. If the target\n * includes a resumeToken it will be included in the request. Results that\n * affect the target will be streamed back as WatchChange messages that\n * reference the targetId.\n */\n n.prototype.mr = function(t) {\n var e = {};\n e.database = xn(this.R), e.addTarget = function(t, e) {\n var n, r = e.target;\n return (n = xt(r) ? {\n documents: Mn(t, r)\n } : {\n query: Vn(t, r)\n }).targetId = e.targetId, e.resumeToken.approximateByteSize() > 0 ? n.resumeToken = Tn(t, e.resumeToken) : e.snapshotVersion.compareTo(K.min()) > 0 && (\n // TODO(wuandy): Consider removing above check because it is most likely true.\n // Right now, many tests depend on this behaviour though (leaving min() out\n // of serialization).\n n.readTime = In(t, e.snapshotVersion.toTimestamp())), n;\n }(this.R, t);\n var n = function(t, e) {\n var n = function(t, e) {\n switch (e) {\n case 0 /* Listen */ :\n return null;\n\n case 1 /* ExistenceFilterMismatch */ :\n return \"existence-filter-mismatch\";\n\n case 2 /* LimboResolution */ :\n return \"limbo-document\";\n\n default:\n return O();\n }\n }(0, e.purpose);\n return null == n ? null : {\n \"goog-listen-tags\": n\n };\n }(this.R, t);\n n && (e.labels = n), this.cr(e);\n }, \n /**\n * Unregisters interest in the results of the target associated with the\n * given targetId.\n */\n n.prototype.yr = function(t) {\n var e = {};\n e.database = xn(this.R), e.removeTarget = t, this.cr(e);\n }, n;\n}(Ro), Oo = /** @class */ function(e) {\n function n(t, n, r, i, o) {\n var s = this;\n return (s = e.call(this, t, \"write_stream_connection_backoff\" /* WriteStreamConnectionBackoff */ , \"write_stream_idle\" /* WriteStreamIdle */ , n, r, o) || this).R = i, \n s.gr = !1, s;\n }\n return t(n, e), Object.defineProperty(n.prototype, \"pr\", {\n /**\n * Tracks whether or not a handshake has been successfully exchanged and\n * the stream is ready to accept mutations.\n */\n get: function() {\n return this.gr;\n },\n enumerable: !1,\n configurable: !0\n }), \n // Override of PersistentStream.start\n n.prototype.start = function() {\n this.gr = !1, this.lastStreamToken = void 0, e.prototype.start.call(this);\n }, n.prototype.ar = function() {\n this.gr && this.Er([]);\n }, n.prototype.wr = function(t) {\n return this.Hi.Oi(\"Write\", t);\n }, n.prototype.onMessage = function(t) {\n if (\n // Always capture the last stream token.\n P(!!t.streamToken), this.lastStreamToken = t.streamToken, this.gr) {\n // A successful first write response means the stream is healthy,\n // Note, that we could consider a successful handshake healthy, however,\n // the write itself might be causing an error we want to back off from.\n this.Zi.reset();\n var e = function(t, e) {\n return t && t.length > 0 ? (P(void 0 !== e), t.map((function(t) {\n return function(t, e) {\n // NOTE: Deletes don't have an updateTime.\n var n = t.updateTime ? En(t.updateTime) : En(e);\n return n.isEqual(K.min()) && (\n // The Firestore Emulator currently returns an update time of 0 for\n // deletes of non-existing documents (rather than null). This breaks the\n // test \"get deleted doc while offline with source=cache\" as NoDocuments\n // with version 0 are filtered by IndexedDb's RemoteDocumentCache.\n // TODO(#2149): Remove this when Emulator is fixed\n n = En(e)), new Ne(n, t.transformResults || []);\n }(t, e);\n }))) : [];\n }(t.writeResults, t.commitTime), n = En(t.commitTime);\n return this.listener.Tr(n, e);\n }\n // The first response is always the handshake response\n return P(!t.writeResults || 0 === t.writeResults.length), this.gr = !0, \n this.listener.Ir();\n }, \n /**\n * Sends an initial streamToken to the server, performing the handshake\n * required to make the StreamingWrite RPC work. Subsequent\n * calls should wait until onHandshakeComplete was called.\n */\n n.prototype.Ar = function() {\n // TODO(dimond): Support stream resumption. We intentionally do not set the\n // stream token on the handshake, ignoring any stream token we might have.\n var t = {};\n t.database = xn(this.R), this.cr(t);\n }, \n /** Sends a group of mutations to the Firestore backend to apply. */ n.prototype.Er = function(t) {\n var e = this, n = {\n streamToken: this.lastStreamToken,\n writes: t.map((function(t) {\n return Pn(e.R, t);\n }))\n };\n this.cr(n);\n }, n;\n}(Ro), Po = /** @class */ function(e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).credentials = t, i.Hi = n, i.R = r, i.Rr = !1, \n i;\n }\n return t(n, e), n.prototype.br = function() {\n if (this.Rr) throw new D(N.FAILED_PRECONDITION, \"The client has already been terminated.\");\n }, \n /** Gets an auth token and invokes the provided RPC. */ n.prototype.Ni = function(t, e, n) {\n var r = this;\n return this.br(), this.credentials.getToken().then((function(i) {\n return r.Hi.Ni(t, e, n, i);\n })).catch((function(t) {\n throw \"FirebaseError\" === t.name ? (t.code === N.UNAUTHENTICATED && r.credentials.invalidateToken(), \n t) : new D(N.UNKNOWN, t.toString());\n }));\n }, \n /** Gets an auth token and invokes the provided RPC with streamed results. */ n.prototype.$i = function(t, e, n) {\n var r = this;\n return this.br(), this.credentials.getToken().then((function(i) {\n return r.Hi.$i(t, e, n, i);\n })).catch((function(t) {\n throw \"FirebaseError\" === t.name ? (t.code === N.UNAUTHENTICATED && r.credentials.invalidateToken(), \n t) : new D(N.UNKNOWN, t.toString());\n }));\n }, n.prototype.terminate = function() {\n this.Rr = !0;\n }, n;\n}((function() {})), Fo = /** @class */ function() {\n function t(t, e) {\n this.asyncQueue = t, this.onlineStateHandler = e, \n /** The current OnlineState. */\n this.state = \"Unknown\" /* Unknown */ , \n /**\n * A count of consecutive failures to open the stream. If it reaches the\n * maximum defined by MAX_WATCH_STREAM_FAILURES, we'll set the OnlineState to\n * Offline.\n */\n this.vr = 0, \n /**\n * A timer that elapses after ONLINE_STATE_TIMEOUT_MS, at which point we\n * transition from OnlineState.Unknown to OnlineState.Offline without waiting\n * for the stream to actually fail (MAX_WATCH_STREAM_FAILURES times).\n */\n this.Pr = null, \n /**\n * Whether the client should log a warning message if it fails to connect to\n * the backend (initially true, cleared after a successful stream, or if we've\n * logged the message already).\n */\n this.Vr = !0\n /**\n * Called by RemoteStore when a watch stream is started (including on each\n * backoff attempt).\n *\n * If this is the first attempt, it sets the OnlineState to Unknown and starts\n * the onlineStateTimer.\n */;\n }\n return t.prototype.Sr = function() {\n var t = this;\n 0 === this.vr && (this.Dr(\"Unknown\" /* Unknown */), this.Pr = this.asyncQueue.enqueueAfterDelay(\"online_state_timeout\" /* OnlineStateTimeout */ , 1e4, (function() {\n return t.Pr = null, t.Cr(\"Backend didn't respond within 10 seconds.\"), t.Dr(\"Offline\" /* Offline */), \n Promise.resolve();\n })));\n }, \n /**\n * Updates our OnlineState as appropriate after the watch stream reports a\n * failure. The first failure moves us to the 'Unknown' state. We then may\n * allow multiple failures (based on MAX_WATCH_STREAM_FAILURES) before we\n * actually transition to the 'Offline' state.\n */\n t.prototype.Nr = function(t) {\n \"Online\" /* Online */ === this.state ? this.Dr(\"Unknown\" /* Unknown */) : (this.vr++, \n this.vr >= 1 && (this.kr(), this.Cr(\"Connection failed 1 times. Most recent error: \" + t.toString()), \n this.Dr(\"Offline\" /* Offline */)));\n }, \n /**\n * Explicitly sets the OnlineState to the specified state.\n *\n * Note that this resets our timers / failure counters, etc. used by our\n * Offline heuristics, so must not be used in place of\n * handleWatchStreamStart() and handleWatchStreamFailure().\n */\n t.prototype.set = function(t) {\n this.kr(), this.vr = 0, \"Online\" /* Online */ === t && (\n // We've connected to watch at least once. Don't warn the developer\n // about being offline going forward.\n this.Vr = !1), this.Dr(t);\n }, t.prototype.Dr = function(t) {\n t !== this.state && (this.state = t, this.onlineStateHandler(t));\n }, t.prototype.Cr = function(t) {\n var e = \"Could not reach Cloud Firestore backend. \" + t + \"\\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.\";\n this.Vr ? (x(e), this.Vr = !1) : C(\"OnlineStateTracker\", e);\n }, t.prototype.kr = function() {\n null !== this.Pr && (this.Pr.cancel(), this.Pr = null);\n }, t;\n}(), Mo = function(\n/**\n * The local store, used to fill the write pipeline with outbound mutations.\n */\nt, \n/** The client-side proxy for interacting with the backend. */\ne, i, o, s) {\n var u = this;\n this.localStore = t, this.datastore = e, this.asyncQueue = i, this.remoteSyncer = {}, \n /**\n * A list of up to MAX_PENDING_WRITES writes that we have fetched from the\n * LocalStore via fillWritePipeline() and have or will send to the write\n * stream.\n *\n * Whenever writePipeline.length > 0 the RemoteStore will attempt to start or\n * restart the write stream. When the stream is established the writes in the\n * pipeline will be sent in order.\n *\n * Writes remain in writePipeline until they are acknowledged by the backend\n * and thus will automatically be re-sent if the stream is interrupted /\n * restarted before they're acknowledged.\n *\n * Write responses from the backend are linked to their originating request\n * purely based on order, and so we can just shift() writes from the front of\n * the writePipeline as we receive responses.\n */\n this.Fr = [], \n /**\n * A mapping of watched targets that the client cares about tracking and the\n * user has explicitly called a 'listen' for this target.\n *\n * These targets may or may not have been sent to or acknowledged by the\n * server. On re-establishing the listen stream, these targets should be sent\n * to the server. The targets removed with unlistens are removed eagerly\n * without waiting for confirmation from the listen stream.\n */\n this.$r = new Map, \n /**\n * A set of reasons for why the RemoteStore may be offline. If empty, the\n * RemoteStore may start its network connections.\n */\n this.Or = new Set, \n /**\n * Event handlers that get called when the network is disabled or enabled.\n *\n * PORTING NOTE: These functions are used on the Web client to create the\n * underlying streams (to support tree-shakeable streams). On Android and iOS,\n * the streams are created during construction of RemoteStore.\n */\n this.Mr = [], this.Lr = s, this.Lr.di((function(t) {\n i.enqueueAndForget((function() {\n return n(u, void 0, void 0, (function() {\n return r(this, (function(t) {\n switch (t.label) {\n case 0:\n return zo(this) ? (C(\"RemoteStore\", \"Restarting streams for network reachability change.\"), \n [ 4 /*yield*/ , function(t) {\n return n(this, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return (e = F(t)).Or.add(4 /* ConnectivityChange */), [ 4 /*yield*/ , qo(e) ];\n\n case 1:\n return n.sent(), e.Br.set(\"Unknown\" /* Unknown */), e.Or.delete(4 /* ConnectivityChange */), \n [ 4 /*yield*/ , Vo(e) ];\n\n case 2:\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(this) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n t.sent(), t.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n })), this.Br = new Fo(i, o);\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A PersistentStream is an abstract base class that represents a streaming RPC\n * to the Firestore backend. It's built on top of the connections own support\n * for streaming RPCs, and adds several critical features for our clients:\n *\n * - Exponential backoff on failure\n * - Authentication via CredentialsProvider\n * - Dispatching all callbacks into the shared worker queue\n * - Closing idle streams after 60 seconds of inactivity\n *\n * Subclasses of PersistentStream implement serialization of models to and\n * from the JSON representation of the protocol buffers for a specific\n * streaming RPC.\n *\n * ## Starting and Stopping\n *\n * Streaming RPCs are stateful and need to be start()ed before messages can\n * be sent and received. The PersistentStream will call the onOpen() function\n * of the listener once the stream is ready to accept requests.\n *\n * Should a start() fail, PersistentStream will call the registered onClose()\n * listener with a FirestoreError indicating what went wrong.\n *\n * A PersistentStream can be started and stopped repeatedly.\n *\n * Generic types:\n * SendType: The type of the outgoing message of the underlying\n * connection stream\n * ReceiveType: The type of the incoming message of the underlying\n * connection stream\n * ListenerType: The type of the listener that will be used for callbacks\n */ function Vo(t) {\n return n(this, void 0, void 0, (function() {\n var e, n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n if (!zo(t)) return [ 3 /*break*/ , 4 ];\n e = 0, n = t.Mr, r.label = 1;\n\n case 1:\n return e < n.length ? [ 4 /*yield*/ , (0, n[e])(/* enabled= */ !0) ] : [ 3 /*break*/ , 4 ];\n\n case 2:\n r.sent(), r.label = 3;\n\n case 3:\n return e++, [ 3 /*break*/ , 1 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Temporarily disables the network. The network can be re-enabled using\n * enableNetwork().\n */ function qo(t) {\n return n(this, void 0, void 0, (function() {\n var e, n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n e = 0, n = t.Mr, r.label = 1;\n\n case 1:\n return e < n.length ? [ 4 /*yield*/ , (0, n[e])(/* enabled= */ !1) ] : [ 3 /*break*/ , 4 ];\n\n case 2:\n r.sent(), r.label = 3;\n\n case 3:\n return e++, [ 3 /*break*/ , 1 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Starts new listen for the given target. Uses resume token if provided. It\n * is a no-op if the target of given `TargetData` is already being listened to.\n */ function Uo(t, e) {\n var n = F(t);\n n.$r.has(e.targetId) || (\n // Mark this as something the client is currently listening for.\n n.$r.set(e.targetId, e), Qo(n) ? \n // The listen will be sent in onWatchStreamOpen\n Go(n) : us(n).er() && jo(n, e));\n}\n\n/**\n * Removes the listen from server. It is a no-op if the given target id is\n * not being listened to.\n */ function Bo(t, e) {\n var n = F(t), r = us(n);\n n.$r.delete(e), r.er() && Ko(n, e), 0 === n.$r.size && (r.er() ? r.ir() : zo(n) && \n // Revert to OnlineState.Unknown if the watch stream is not open and we\n // have no listeners, since without any listens to send we cannot\n // confirm if the stream is healthy and upgrade to OnlineState.Online.\n n.Br.set(\"Unknown\" /* Unknown */));\n}\n\n/**\n * We need to increment the the expected number of pending responses we're due\n * from watch so we wait for the ack to process any messages from this target.\n */ function jo(t, e) {\n t.qr.U(e.targetId), us(t).mr(e)\n /**\n * We need to increment the expected number of pending responses we're due\n * from watch so we wait for the removal on the server before we process any\n * messages from this target.\n */;\n}\n\nfunction Ko(t, e) {\n t.qr.U(e), us(t).yr(e);\n}\n\nfunction Go(t) {\n t.qr = new yn({\n getRemoteKeysForTarget: function(e) {\n return t.remoteSyncer.getRemoteKeysForTarget(e);\n },\n lt: function(e) {\n return t.$r.get(e) || null;\n }\n }), us(t).start(), t.Br.Sr()\n /**\n * Returns whether the watch stream should be started because it's necessary\n * and has not yet been started.\n */;\n}\n\nfunction Qo(t) {\n return zo(t) && !us(t).tr() && t.$r.size > 0;\n}\n\nfunction zo(t) {\n return 0 === F(t).Or.size;\n}\n\nfunction Wo(t) {\n t.qr = void 0;\n}\n\nfunction Ho(t) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(e) {\n return t.$r.forEach((function(e, n) {\n jo(t, e);\n })), [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction Yo(t, e) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(n) {\n return Wo(t), \n // If we still need the watch stream, retry the connection.\n Qo(t) ? (t.Br.Nr(e), Go(t)) : \n // No need to restart watch stream because there are no active targets.\n // The online state is set to unknown because there is no active attempt\n // at establishing a connection\n t.Br.set(\"Unknown\" /* Unknown */), [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction $o(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var o, s, u;\n return r(this, (function(a) {\n switch (a.label) {\n case 0:\n if (t.Br.set(\"Online\" /* Online */), !(e instanceof dn && 2 /* Removed */ === e.state && e.cause)) \n // Mark the client as online since we got a message from the server\n return [ 3 /*break*/ , 6 ];\n a.label = 1;\n\n case 1:\n return a.trys.push([ 1, 3, , 5 ]), [ 4 /*yield*/ , \n /** Handles an error on a target */\n function(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = e.cause, i = 0, o = e.targetIds, r.label = 1;\n\n case 1:\n return i < o.length ? (s = o[i], t.$r.has(s) ? [ 4 /*yield*/ , t.remoteSyncer.rejectListen(s, n) ] : [ 3 /*break*/ , 3 ]) : [ 3 /*break*/ , 5 ];\n\n case 2:\n r.sent(), t.$r.delete(s), t.qr.removeTarget(s), r.label = 3;\n\n case 3:\n r.label = 4;\n\n case 4:\n return i++, [ 3 /*break*/ , 1 ];\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }(t, e) ];\n\n case 2:\n return a.sent(), [ 3 /*break*/ , 5 ];\n\n case 3:\n return o = a.sent(), C(\"RemoteStore\", \"Failed to remove targets %s: %s \", e.targetIds.join(\",\"), o), \n [ 4 /*yield*/ , Xo(t, o) ];\n\n case 4:\n return a.sent(), [ 3 /*break*/ , 5 ];\n\n case 5:\n return [ 3 /*break*/ , 13 ];\n\n case 6:\n if (e instanceof fn ? t.qr.X(e) : e instanceof ln ? t.qr.rt(e) : t.qr.et(e), i.isEqual(K.min())) return [ 3 /*break*/ , 13 ];\n a.label = 7;\n\n case 7:\n return a.trys.push([ 7, 11, , 13 ]), [ 4 /*yield*/ , Ki(t.localStore) ];\n\n case 8:\n return s = a.sent(), i.compareTo(s) >= 0 ? [ 4 /*yield*/ , \n /**\n * Takes a batch of changes from the Datastore, repackages them as a\n * RemoteEvent, and passes that on to the listener, which is typically the\n * SyncEngine.\n */\n function(t, e) {\n var n = t.qr.ut(e);\n // Update in-memory resume tokens. LocalStore will update the\n // persistent view of these when applying the completed RemoteEvent.\n return n.targetChanges.forEach((function(n, r) {\n if (n.resumeToken.approximateByteSize() > 0) {\n var i = t.$r.get(r);\n // A watched target might have been removed already.\n i && t.$r.set(r, i.withResumeToken(n.resumeToken, e));\n }\n })), \n // Re-establish listens for the targets that have been invalidated by\n // existence filter mismatches.\n n.targetMismatches.forEach((function(e) {\n var n = t.$r.get(e);\n if (n) {\n // Clear the resume token for the target, since we're in a known mismatch\n // state.\n t.$r.set(e, n.withResumeToken(J.EMPTY_BYTE_STRING, n.snapshotVersion)), \n // Cause a hard reset by unwatching and rewatching immediately, but\n // deliberately don't send a resume token so that we get a full update.\n Ko(t, e);\n // Mark the target we send as being on behalf of an existence filter\n // mismatch, but don't actually retain that in listenTargets. This ensures\n // that we flag the first re-listen this way without impacting future\n // listens of this target (that might happen e.g. on reconnect).\n var r = new Pr(n.target, e, 1 /* ExistenceFilterMismatch */ , n.sequenceNumber);\n jo(t, r);\n }\n })), t.remoteSyncer.applyRemoteEvent(n);\n }(t, i) ] : [ 3 /*break*/ , 10 ];\n\n // We have received a target change with a global snapshot if the snapshot\n // version is not equal to SnapshotVersion.min().\n case 9:\n // We have received a target change with a global snapshot if the snapshot\n // version is not equal to SnapshotVersion.min().\n a.sent(), a.label = 10;\n\n case 10:\n return [ 3 /*break*/ , 13 ];\n\n case 11:\n return C(\"RemoteStore\", \"Failed to raise snapshot:\", u = a.sent()), [ 4 /*yield*/ , Xo(t, u) ];\n\n case 12:\n return a.sent(), [ 3 /*break*/ , 13 ];\n\n case 13:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Recovery logic for IndexedDB errors that takes the network offline until\n * `op` succeeds. Retries are scheduled with backoff using\n * `enqueueRetryable()`. If `op()` is not provided, IndexedDB access is\n * validated via a generic operation.\n *\n * The returned Promise is resolved once the network is disabled and before\n * any retry attempt.\n */ function Xo(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var o = this;\n return r(this, (function(s) {\n switch (s.label) {\n case 0:\n if (!Nr(e)) throw e;\n // Disable network and raise offline snapshots\n return t.Or.add(1 /* IndexedDbFailed */), [ 4 /*yield*/ , qo(t) ];\n\n case 1:\n // Disable network and raise offline snapshots\n return s.sent(), t.Br.set(\"Offline\" /* Offline */), i || (\n // Use a simple read operation to determine if IndexedDB recovered.\n // Ideally, we would expose a health check directly on SimpleDb, but\n // RemoteStore only has access to persistence through LocalStore.\n i = function() {\n return Ki(t.localStore);\n }), \n // Probe IndexedDB periodically and re-enable network\n t.asyncQueue.enqueueRetryable((function() {\n return n(o, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return C(\"RemoteStore\", \"Retrying IndexedDB access\"), [ 4 /*yield*/ , i() ];\n\n case 1:\n return e.sent(), t.Or.delete(1 /* IndexedDbFailed */), [ 4 /*yield*/ , Vo(t) ];\n\n case 2:\n return e.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n })), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Executes `op`. If `op` fails, takes the network offline until `op`\n * succeeds. Returns after the first attempt.\n */ function Jo(t, e) {\n return e().catch((function(n) {\n return Xo(t, n, e);\n }));\n}\n\nfunction Zo(t) {\n return n(this, void 0, void 0, (function() {\n var e, n, i, o, s;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n e = F(t), n = as(e), i = e.Fr.length > 0 ? e.Fr[e.Fr.length - 1].batchId : -1, r.label = 1;\n\n case 1:\n if (!\n /**\n * Returns true if we can add to the write pipeline (i.e. the network is\n * enabled and the write pipeline is not full).\n */\n function(t) {\n return zo(t) && t.Fr.length < 10;\n }\n /**\n * Queues additional writes to be sent to the write stream, sending them\n * immediately if the write stream is established.\n */ (e)) return [ 3 /*break*/ , 7 ];\n r.label = 2;\n\n case 2:\n return r.trys.push([ 2, 4, , 6 ]), [ 4 /*yield*/ , zi(e.localStore, i) ];\n\n case 3:\n return null === (o = r.sent()) ? (0 === e.Fr.length && n.ir(), [ 3 /*break*/ , 7 ]) : (i = o.batchId, \n function(t, e) {\n t.Fr.push(e);\n var n = as(t);\n n.er() && n.pr && n.Er(e.mutations);\n }(e, o), [ 3 /*break*/ , 6 ]);\n\n case 4:\n return s = r.sent(), [ 4 /*yield*/ , Xo(e, s) ];\n\n case 5:\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 3 /*break*/ , 1 ];\n\n case 7:\n return ts(e) && es(e), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction ts(t) {\n return zo(t) && !as(t).tr() && t.Fr.length > 0;\n}\n\nfunction es(t) {\n as(t).start();\n}\n\nfunction ns(t) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(e) {\n return as(t).Ar(), [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction rs(t) {\n return n(this, void 0, void 0, (function() {\n var e, n, i, o;\n return r(this, (function(r) {\n // Send the write pipeline now that the stream is established.\n for (e = as(t), n = 0, i = t.Fr; n < i.length; n++) o = i[n], e.Er(o.mutations);\n return [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction is(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = t.Fr.shift(), o = Or.from(n, e, i), [ 4 /*yield*/ , Jo(t, (function() {\n return t.remoteSyncer.applySuccessfulWrite(o);\n })) ];\n\n case 1:\n // It's possible that with the completion of this mutation another\n // slot has freed up.\n return r.sent(), [ 4 /*yield*/ , Zo(t) ];\n\n case 2:\n // It's possible that with the completion of this mutation another\n // slot has freed up.\n return r.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction os(t, e) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(i) {\n switch (i.label) {\n case 0:\n return e && as(t).pr ? [ 4 /*yield*/ , function(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return Qe(i = e.code) && i !== N.ABORTED ? (n = t.Fr.shift(), \n // In this case it's also unlikely that the server itself is melting\n // down -- this was just a bad request so inhibit backoff on the next\n // restart.\n as(t).sr(), [ 4 /*yield*/ , Jo(t, (function() {\n return t.remoteSyncer.rejectFailedWrite(n.batchId, e);\n })) ]) : [ 3 /*break*/ , 3 ];\n\n case 1:\n // It's possible that with the completion of this mutation\n // another slot has freed up.\n return r.sent(), [ 4 /*yield*/ , Zo(t) ];\n\n case 2:\n // In this case it's also unlikely that the server itself is melting\n // down -- this was just a bad request so inhibit backoff on the next\n // restart.\n // It's possible that with the completion of this mutation\n // another slot has freed up.\n r.sent(), r.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }(t, e) ] : [ 3 /*break*/ , 2 ];\n\n // This error affects the actual write.\n case 1:\n // This error affects the actual write.\n i.sent(), i.label = 2;\n\n case 2:\n // If the write stream closed after the write handshake completes, a write\n // operation failed and we fail the pending operation.\n // The write stream might have been started by refilling the write\n // pipeline for failed writes\n return ts(t) && es(t), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Toggles the network state when the client gains or loses its primary lease.\n */ function ss(t, e) {\n return n(this, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = F(t), e ? (n.Or.delete(2 /* IsSecondary */), [ 4 /*yield*/ , Vo(n) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n return r.sent(), [ 3 /*break*/ , 5 ];\n\n case 2:\n return e ? [ 3 /*break*/ , 4 ] : (n.Or.add(2 /* IsSecondary */), [ 4 /*yield*/ , qo(n) ]);\n\n case 3:\n r.sent(), n.Br.set(\"Unknown\" /* Unknown */), r.label = 4;\n\n case 4:\n r.label = 5;\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * If not yet initialized, registers the WatchStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WatchStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */ function us(t) {\n var e = this;\n return t.Ur || (\n // Create stream (but note that it is not started yet).\n t.Ur = function(t, e, n) {\n var r = F(t);\n return r.br(), new Lo(e, r.Hi, r.credentials, r.R, n);\n }(t.datastore, t.asyncQueue, {\n Ii: Ho.bind(null, t),\n Ri: Yo.bind(null, t),\n _r: $o.bind(null, t)\n }), t.Mr.push((function(i) {\n return n(e, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return i ? (t.Ur.sr(), Qo(t) ? Go(t) : t.Br.set(\"Unknown\" /* Unknown */), [ 3 /*break*/ , 3 ]) : [ 3 /*break*/ , 1 ];\n\n case 1:\n return [ 4 /*yield*/ , t.Ur.stop() ];\n\n case 2:\n e.sent(), Wo(t), e.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }))), t.Ur\n /**\n * If not yet initialized, registers the WriteStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WriteStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */;\n}\n\nfunction as(t) {\n var e = this;\n return t.Kr || (\n // Create stream (but note that it is not started yet).\n t.Kr = function(t, e, n) {\n var r = F(t);\n return r.br(), new Oo(e, r.Hi, r.credentials, r.R, n);\n }(t.datastore, t.asyncQueue, {\n Ii: ns.bind(null, t),\n Ri: os.bind(null, t),\n Ir: rs.bind(null, t),\n Tr: is.bind(null, t)\n }), t.Mr.push((function(i) {\n return n(e, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return i ? (t.Kr.sr(), [ 4 /*yield*/ , Zo(t) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n // This will start the write stream if necessary.\n return e.sent(), [ 3 /*break*/ , 4 ];\n\n case 2:\n return [ 4 /*yield*/ , t.Kr.stop() ];\n\n case 3:\n e.sent(), t.Fr.length > 0 && (C(\"RemoteStore\", \"Stopping write stream with \" + t.Fr.length + \" pending writes\"), \n t.Fr = []), e.label = 4;\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }))), t.Kr\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Represents an operation scheduled to be run in the future on an AsyncQueue.\n *\n * It is created via DelayedOperation.createAndSchedule().\n *\n * Supports cancellation (via cancel()) and early execution (via skipDelay()).\n *\n * Note: We implement `PromiseLike` instead of `Promise`, as the `Promise` type\n * in newer versions of TypeScript defines `finally`, which is not available in\n * IE.\n */;\n}\n\nvar cs = /** @class */ function() {\n function t(t, e, n, r, i) {\n this.asyncQueue = t, this.timerId = e, this.targetTimeMs = n, this.op = r, this.removalCallback = i, \n this.deferred = new br, this.then = this.deferred.promise.then.bind(this.deferred.promise), \n // It's normal for the deferred promise to be canceled (due to cancellation)\n // and so we attach a dummy catch callback to avoid\n // 'UnhandledPromiseRejectionWarning' log spam.\n this.deferred.promise.catch((function(t) {}))\n /**\n * Creates and returns a DelayedOperation that has been scheduled to be\n * executed on the provided asyncQueue after the provided delayMs.\n *\n * @param asyncQueue - The queue to schedule the operation on.\n * @param id - A Timer ID identifying the type of operation this is.\n * @param delayMs - The delay (ms) before the operation should be scheduled.\n * @param op - The operation to run.\n * @param removalCallback - A callback to be called synchronously once the\n * operation is executed or canceled, notifying the AsyncQueue to remove it\n * from its delayedOperations list.\n * PORTING NOTE: This exists to prevent making removeDelayedOperation() and\n * the DelayedOperation class public.\n */;\n }\n return t.createAndSchedule = function(e, n, r, i, o) {\n var s = new t(e, n, Date.now() + r, i, o);\n return s.start(r), s;\n }, \n /**\n * Starts the timer. This is called immediately after construction by\n * createAndSchedule().\n */\n t.prototype.start = function(t) {\n var e = this;\n this.timerHandle = setTimeout((function() {\n return e.handleDelayElapsed();\n }), t);\n }, \n /**\n * Queues the operation to run immediately (if it hasn't already been run or\n * canceled).\n */\n t.prototype.skipDelay = function() {\n return this.handleDelayElapsed();\n }, \n /**\n * Cancels the operation if it hasn't already been executed or canceled. The\n * promise will be rejected.\n *\n * As long as the operation has not yet been run, calling cancel() provides a\n * guarantee that the operation will not be run.\n */\n t.prototype.cancel = function(t) {\n null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new D(N.CANCELLED, \"Operation cancelled\" + (t ? \": \" + t : \"\"))));\n }, t.prototype.handleDelayElapsed = function() {\n var t = this;\n this.asyncQueue.enqueueAndForget((function() {\n return null !== t.timerHandle ? (t.clearTimeout(), t.op().then((function(e) {\n return t.deferred.resolve(e);\n }))) : Promise.resolve();\n }));\n }, t.prototype.clearTimeout = function() {\n null !== this.timerHandle && (this.removalCallback(this), clearTimeout(this.timerHandle), \n this.timerHandle = null);\n }, t;\n}();\n\n/**\n * Returns a FirestoreError that can be surfaced to the user if the provided\n * error is an IndexedDbTransactionError. Re-throws the error otherwise.\n */ function hs(t, e) {\n if (x(\"AsyncQueue\", e + \": \" + t), Nr(t)) return new D(N.UNAVAILABLE, e + \": \" + t);\n throw t;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * DocumentSet is an immutable (copy-on-write) collection that holds documents\n * in order specified by the provided comparator. We always add a document key\n * comparator on top of what is provided to guarantee document equality based on\n * the key.\n */ var fs = /** @class */ function() {\n /** The default ordering is by key if the comparator is omitted */\n function t(t) {\n // We are adding document key comparator to the end as it's the only\n // guaranteed unique property of a document.\n this.comparator = t ? function(e, n) {\n return t(e, n) || ct.comparator(e.key, n.key);\n } : function(t, e) {\n return ct.comparator(t.key, e.key);\n }, this.keyedMap = en(), this.sortedSet = new We(this.comparator)\n /**\n * Returns an empty copy of the existing DocumentSet, using the same\n * comparator.\n */;\n }\n return t.emptySet = function(e) {\n return new t(e.comparator);\n }, t.prototype.has = function(t) {\n return null != this.keyedMap.get(t);\n }, t.prototype.get = function(t) {\n return this.keyedMap.get(t);\n }, t.prototype.first = function() {\n return this.sortedSet.minKey();\n }, t.prototype.last = function() {\n return this.sortedSet.maxKey();\n }, t.prototype.isEmpty = function() {\n return this.sortedSet.isEmpty();\n }, \n /**\n * Returns the index of the provided key in the document set, or -1 if the\n * document key is not present in the set;\n */\n t.prototype.indexOf = function(t) {\n var e = this.keyedMap.get(t);\n return e ? this.sortedSet.indexOf(e) : -1;\n }, Object.defineProperty(t.prototype, \"size\", {\n get: function() {\n return this.sortedSet.size;\n },\n enumerable: !1,\n configurable: !0\n }), \n /** Iterates documents in order defined by \"comparator\" */ t.prototype.forEach = function(t) {\n this.sortedSet.inorderTraversal((function(e, n) {\n return t(e), !1;\n }));\n }, \n /** Inserts or updates a document with the same key */ t.prototype.add = function(t) {\n // First remove the element if we have it.\n var e = this.delete(t.key);\n return e.copy(e.keyedMap.insert(t.key, t), e.sortedSet.insert(t, null));\n }, \n /** Deletes a document with a given key */ t.prototype.delete = function(t) {\n var e = this.get(t);\n return e ? this.copy(this.keyedMap.remove(t), this.sortedSet.remove(e)) : this;\n }, t.prototype.isEqual = function(e) {\n if (!(e instanceof t)) return !1;\n if (this.size !== e.size) return !1;\n for (var n = this.sortedSet.getIterator(), r = e.sortedSet.getIterator(); n.hasNext(); ) {\n var i = n.getNext().key, o = r.getNext().key;\n if (!i.isEqual(o)) return !1;\n }\n return !0;\n }, t.prototype.toString = function() {\n var t = [];\n return this.forEach((function(e) {\n t.push(e.toString());\n })), 0 === t.length ? \"DocumentSet ()\" : \"DocumentSet (\\n \" + t.join(\" \\n\") + \"\\n)\";\n }, t.prototype.copy = function(e, n) {\n var r = new t;\n return r.comparator = this.comparator, r.keyedMap = e, r.sortedSet = n, r;\n }, t;\n}(), ls = /** @class */ function() {\n function t() {\n this.Qr = new We(ct.comparator);\n }\n return t.prototype.track = function(t) {\n var e = t.doc.key, n = this.Qr.get(e);\n n ? \n // Merge the new change with the existing change.\n 0 /* Added */ !== t.type && 3 /* Metadata */ === n.type ? this.Qr = this.Qr.insert(e, t) : 3 /* Metadata */ === t.type && 1 /* Removed */ !== n.type ? this.Qr = this.Qr.insert(e, {\n type: n.type,\n doc: t.doc\n }) : 2 /* Modified */ === t.type && 2 /* Modified */ === n.type ? this.Qr = this.Qr.insert(e, {\n type: 2 /* Modified */ ,\n doc: t.doc\n }) : 2 /* Modified */ === t.type && 0 /* Added */ === n.type ? this.Qr = this.Qr.insert(e, {\n type: 0 /* Added */ ,\n doc: t.doc\n }) : 1 /* Removed */ === t.type && 0 /* Added */ === n.type ? this.Qr = this.Qr.remove(e) : 1 /* Removed */ === t.type && 2 /* Modified */ === n.type ? this.Qr = this.Qr.insert(e, {\n type: 1 /* Removed */ ,\n doc: n.doc\n }) : 0 /* Added */ === t.type && 1 /* Removed */ === n.type ? this.Qr = this.Qr.insert(e, {\n type: 2 /* Modified */ ,\n doc: t.doc\n }) : \n // This includes these cases, which don't make sense:\n // Added->Added\n // Removed->Removed\n // Modified->Added\n // Removed->Modified\n // Metadata->Added\n // Removed->Metadata\n O() : this.Qr = this.Qr.insert(e, t);\n }, t.prototype.jr = function() {\n var t = [];\n return this.Qr.inorderTraversal((function(e, n) {\n t.push(n);\n })), t;\n }, t;\n}(), ds = /** @class */ function() {\n function t(t, e, n, r, i, o, s, u) {\n this.query = t, this.docs = e, this.oldDocs = n, this.docChanges = r, this.mutatedKeys = i, \n this.fromCache = o, this.syncStateChanged = s, this.excludesMetadataChanges = u\n /** Returns a view snapshot as if all documents in the snapshot were added. */;\n }\n return t.fromInitialDocuments = function(e, n, r, i) {\n var o = [];\n return n.forEach((function(t) {\n o.push({\n type: 0 /* Added */ ,\n doc: t\n });\n })), new t(e, n, fs.emptySet(n), o, r, i, \n /* syncStateChanged= */ !0, \n /* excludesMetadataChanges= */ !1);\n }, Object.defineProperty(t.prototype, \"hasPendingWrites\", {\n get: function() {\n return !this.mutatedKeys.isEmpty();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(t) {\n if (!(this.fromCache === t.fromCache && this.syncStateChanged === t.syncStateChanged && this.mutatedKeys.isEqual(t.mutatedKeys) && ie(this.query, t.query) && this.docs.isEqual(t.docs) && this.oldDocs.isEqual(t.oldDocs))) return !1;\n var e = this.docChanges, n = t.docChanges;\n if (e.length !== n.length) return !1;\n for (var r = 0; r < e.length; r++) if (e[r].type !== n[r].type || !e[r].doc.isEqual(n[r].doc)) return !1;\n return !0;\n }, t;\n}(), ps = function() {\n this.Wr = void 0, this.listeners = [];\n}, ys = function() {\n this.queries = new Ii((function(t) {\n return oe(t);\n }), ie), this.onlineState = \"Unknown\" /* Unknown */ , this.Gr = new Set;\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * DocumentChangeSet keeps track of a set of changes to docs in a query, merging\n * duplicate events for the same doc.\n */ function vs(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u, a, c;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n if (n = F(t), i = e.query, o = !1, (s = n.queries.get(i)) || (o = !0, s = new ps), \n !o) return [ 3 /*break*/ , 4 ];\n r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 3, , 4 ]), u = s, [ 4 /*yield*/ , n.onListen(i) ];\n\n case 2:\n return u.Wr = r.sent(), [ 3 /*break*/ , 4 ];\n\n case 3:\n return a = r.sent(), c = hs(a, \"Initialization of query '\" + se(e.query) + \"' failed\"), \n [ 2 /*return*/ , void e.onError(c) ];\n\n case 4:\n return n.queries.set(i, s), s.listeners.push(e), \n // Run global snapshot listeners if a consistent snapshot has been emitted.\n e.zr(n.onlineState), s.Wr && e.Hr(s.Wr) && bs(n), [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction ms(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u;\n return r(this, (function(r) {\n return n = F(t), i = e.query, o = !1, (s = n.queries.get(i)) && (u = s.listeners.indexOf(e)) >= 0 && (s.listeners.splice(u, 1), \n o = 0 === s.listeners.length), o ? [ 2 /*return*/ , (n.queries.delete(i), n.onUnlisten(i)) ] : [ 2 /*return*/ ];\n }));\n }));\n}\n\nfunction gs(t, e) {\n for (var n = F(t), r = !1, i = 0, o = e; i < o.length; i++) {\n var s = o[i], u = s.query, a = n.queries.get(u);\n if (a) {\n for (var c = 0, h = a.listeners; c < h.length; c++) {\n h[c].Hr(s) && (r = !0);\n }\n a.Wr = s;\n }\n }\n r && bs(n);\n}\n\nfunction ws(t, e, n) {\n var r = F(t), i = r.queries.get(e);\n if (i) for (var o = 0, s = i.listeners; o < s.length; o++) {\n s[o].onError(n);\n }\n // Remove all listeners. NOTE: We don't need to call syncEngine.unlisten()\n // after an error.\n r.queries.delete(e);\n}\n\n// Call all global snapshot listeners that have been set.\nfunction bs(t) {\n t.Gr.forEach((function(t) {\n t.next();\n }));\n}\n\n/**\n * QueryListener takes a series of internal view snapshots and determines\n * when to raise the event.\n *\n * It uses an Observer to dispatch events.\n */ var Is = /** @class */ function() {\n function t(t, e, n) {\n this.query = t, this.Jr = e, \n /**\n * Initial snapshots (e.g. from cache) may not be propagated to the wrapped\n * observer. This flag is set to true once we've actually raised an event.\n */\n this.Yr = !1, this.Xr = null, this.onlineState = \"Unknown\" /* Unknown */ , this.options = n || {}\n /**\n * Applies the new ViewSnapshot to this listener, raising a user-facing event\n * if applicable (depending on what changed, whether the user has opted into\n * metadata-only changes, etc.). Returns true if a user-facing event was\n * indeed raised.\n */;\n }\n return t.prototype.Hr = function(t) {\n if (!this.options.includeMetadataChanges) {\n for (\n // Remove the metadata only changes.\n var e = [], n = 0, r = t.docChanges; n < r.length; n++) {\n var i = r[n];\n 3 /* Metadata */ !== i.type && e.push(i);\n }\n t = new ds(t.query, t.docs, t.oldDocs, e, t.mutatedKeys, t.fromCache, t.syncStateChanged, \n /* excludesMetadataChanges= */ !0);\n }\n var o = !1;\n return this.Yr ? this.Zr(t) && (this.Jr.next(t), o = !0) : this.eo(t, this.onlineState) && (this.no(t), \n o = !0), this.Xr = t, o;\n }, t.prototype.onError = function(t) {\n this.Jr.error(t);\n }, \n /** Returns whether a snapshot was raised. */ t.prototype.zr = function(t) {\n this.onlineState = t;\n var e = !1;\n return this.Xr && !this.Yr && this.eo(this.Xr, t) && (this.no(this.Xr), e = !0), \n e;\n }, t.prototype.eo = function(t, e) {\n // Always raise the first event when we're synced\n if (!t.fromCache) return !0;\n // NOTE: We consider OnlineState.Unknown as online (it should become Offline\n // or Online if we wait long enough).\n var n = \"Offline\" /* Offline */ !== e;\n // Don't raise the event if we're online, aren't synced yet (checked\n // above) and are waiting for a sync.\n return !(this.options.so && n || t.docs.isEmpty() && \"Offline\" /* Offline */ !== e);\n // Raise data from cache if we have any documents or we are offline\n }, t.prototype.Zr = function(t) {\n // We don't need to handle includeDocumentMetadataChanges here because\n // the Metadata only changes have already been stripped out if needed.\n // At this point the only changes we will see are the ones we should\n // propagate.\n if (t.docChanges.length > 0) return !0;\n var e = this.Xr && this.Xr.hasPendingWrites !== t.hasPendingWrites;\n return !(!t.syncStateChanged && !e) && !0 === this.options.includeMetadataChanges;\n // Generally we should have hit one of the cases above, but it's possible\n // to get here if there were only metadata docChanges and they got\n // stripped out.\n }, t.prototype.no = function(t) {\n t = ds.fromInitialDocuments(t.query, t.docs, t.mutatedKeys, t.fromCache), this.Yr = !0, \n this.Jr.next(t);\n }, t;\n}(), Ts = /** @class */ function() {\n function t(t, \n // How many bytes this element takes to store in the bundle.\n e) {\n this.payload = t, this.byteLength = e;\n }\n return t.prototype.io = function() {\n return \"metadata\" in this.payload;\n }, t;\n}(), _s = /** @class */ function() {\n function t(t) {\n this.R = t;\n }\n return t.prototype.qn = function(t) {\n return An(this.R, t);\n }, \n /**\n * Converts a BundleDocument to a MutableDocument.\n */\n t.prototype.Un = function(t) {\n return t.metadata.exists ? On(this.R, t.document, !1) : Nt.newNoDocument(this.qn(t.metadata.name), this.Kn(t.metadata.readTime));\n }, t.prototype.Kn = function(t) {\n return En(t);\n }, t;\n}(), Es = /** @class */ function() {\n function t(t, e, n) {\n this.ro = t, this.localStore = e, this.R = n, \n /** Batched queries to be saved into storage */\n this.queries = [], \n /** Batched documents to be saved into storage */\n this.documents = [], this.progress = Ss(t)\n /**\n * Adds an element from the bundle to the loader.\n *\n * Returns a new progress if adding the element leads to a new progress,\n * otherwise returns null.\n */;\n }\n return t.prototype.oo = function(t) {\n this.progress.bytesLoaded += t.byteLength;\n var e = this.progress.documentsLoaded;\n return t.payload.namedQuery ? this.queries.push(t.payload.namedQuery) : t.payload.documentMetadata ? (this.documents.push({\n metadata: t.payload.documentMetadata\n }), t.payload.documentMetadata.exists || ++e) : t.payload.document && (this.documents[this.documents.length - 1].document = t.payload.document, \n ++e), e !== this.progress.documentsLoaded ? (this.progress.documentsLoaded = e, \n Object.assign({}, this.progress)) : null;\n }, t.prototype.co = function(t) {\n for (var e = new Map, n = new _s(this.R), r = 0, i = t; r < i.length; r++) {\n var o = i[r];\n if (o.metadata.queries) for (var s = n.qn(o.metadata.name), u = 0, a = o.metadata.queries; u < a.length; u++) {\n var c = a[u], h = (e.get(c) || sn()).add(s);\n e.set(c, h);\n }\n }\n return e;\n }, \n /**\n * Update the progress to 'Success' and return the updated progress.\n */\n t.prototype.complete = function() {\n return n(this, void 0, void 0, (function() {\n var t, e, n, i, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , Zi(this.localStore, new _s(this.R), this.documents, this.ro.id) ];\n\n case 1:\n t = r.sent(), e = this.co(this.documents), n = 0, i = this.queries, r.label = 2;\n\n case 2:\n return n < i.length ? (o = i[n], [ 4 /*yield*/ , to(this.localStore, o, e.get(o.name)) ]) : [ 3 /*break*/ , 5 ];\n\n case 3:\n r.sent(), r.label = 4;\n\n case 4:\n return n++, [ 3 /*break*/ , 2 ];\n\n case 5:\n return [ 2 /*return*/ , (this.progress.taskState = \"Success\", new Pi(Object.assign({}, this.progress), t)) ];\n }\n }));\n }));\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A complete element in the bundle stream, together with the byte length it\n * occupies in the stream.\n */\n/**\n * Returns a `LoadBundleTaskProgress` representing the initial progress of\n * loading a bundle.\n */\nfunction Ss(t) {\n return {\n taskState: \"Running\",\n documentsLoaded: 0,\n bytesLoaded: 0,\n totalDocuments: t.totalDocuments,\n totalBytes: t.totalBytes\n };\n}\n\n/**\n * Returns a `LoadBundleTaskProgress` representing the progress that the loading\n * has succeeded.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ var Ns = function(t) {\n this.key = t;\n}, Ds = function(t) {\n this.key = t;\n}, As = /** @class */ function() {\n function t(t, \n /** Documents included in the remote target */\n e) {\n this.query = t, this.uo = e, this.ao = null, \n /**\n * A flag whether the view is current with the backend. A view is considered\n * current after it has seen the current flag from the backend and did not\n * lose consistency within the watch stream (e.g. because of an existence\n * filter mismatch).\n */\n this.current = !1, \n /** Documents in the view but not in the remote target */\n this.ho = sn(), \n /** Document Keys that have local changes */\n this.mutatedKeys = sn(), this.lo = ae(t), this.fo = new fs(this.lo);\n }\n return Object.defineProperty(t.prototype, \"wo\", {\n /**\n * The set of remote documents that the server has told us belongs to the target associated with\n * this view.\n */\n get: function() {\n return this.uo;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Iterates over a set of doc changes, applies the query limit, and computes\n * what the new results should be, what the changes were, and whether we may\n * need to go back to the local cache for more results. Does not make any\n * changes to the view.\n * @param docChanges - The doc changes to apply to this view.\n * @param previousChanges - If this is being called with a refill, then start\n * with this set of docs and changes instead of the current view.\n * @returns a new set of docs, changes, and refill flag.\n */\n t.prototype._o = function(t, e) {\n var n = this, r = e ? e.mo : new ls, i = e ? e.fo : this.fo, o = e ? e.mutatedKeys : this.mutatedKeys, s = i, u = !1, a = $t(this.query) && i.size === this.query.limit ? i.last() : null, c = Xt(this.query) && i.size === this.query.limit ? i.first() : null;\n // Drop documents out to meet limit/limitToLast requirement.\n if (t.inorderTraversal((function(t, e) {\n var h = i.get(t), f = ue(n.query, e) ? e : null, l = !!h && n.mutatedKeys.has(h.key), d = !!f && (f.hasLocalMutations || \n // We only consider committed mutations for documents that were\n // mutated during the lifetime of the view.\n n.mutatedKeys.has(f.key) && f.hasCommittedMutations), p = !1;\n // Calculate change\n h && f ? h.data.isEqual(f.data) ? l !== d && (r.track({\n type: 3 /* Metadata */ ,\n doc: f\n }), p = !0) : n.yo(h, f) || (r.track({\n type: 2 /* Modified */ ,\n doc: f\n }), p = !0, (a && n.lo(f, a) > 0 || c && n.lo(f, c) < 0) && (\n // This doc moved from inside the limit to outside the limit.\n // That means there may be some other doc in the local cache\n // that should be included instead.\n u = !0)) : !h && f ? (r.track({\n type: 0 /* Added */ ,\n doc: f\n }), p = !0) : h && !f && (r.track({\n type: 1 /* Removed */ ,\n doc: h\n }), p = !0, (a || c) && (\n // A doc was removed from a full limit query. We'll need to\n // requery from the local cache to see if we know about some other\n // doc that should be in the results.\n u = !0)), p && (f ? (s = s.add(f), o = d ? o.add(t) : o.delete(t)) : (s = s.delete(t), \n o = o.delete(t)));\n })), $t(this.query) || Xt(this.query)) for (;s.size > this.query.limit; ) {\n var h = $t(this.query) ? s.last() : s.first();\n s = s.delete(h.key), o = o.delete(h.key), r.track({\n type: 1 /* Removed */ ,\n doc: h\n });\n }\n return {\n fo: s,\n mo: r,\n Nn: u,\n mutatedKeys: o\n };\n }, t.prototype.yo = function(t, e) {\n // We suppress the initial change event for documents that were modified as\n // part of a write acknowledgment (e.g. when the value of a server transform\n // is applied) as Watch will send us the same document again.\n // By suppressing the event, we only raise two user visible events (one with\n // `hasPendingWrites` and the final state of the document) instead of three\n // (one with `hasPendingWrites`, the modified document with\n // `hasPendingWrites` and the final state of the document).\n return t.hasLocalMutations && e.hasCommittedMutations && !e.hasLocalMutations;\n }, \n /**\n * Updates the view with the given ViewDocumentChanges and optionally updates\n * limbo docs and sync state from the provided target change.\n * @param docChanges - The set of changes to make to the view's docs.\n * @param updateLimboDocuments - Whether to update limbo documents based on\n * this change.\n * @param targetChange - A target change to apply for computing limbo docs and\n * sync state.\n * @returns A new ViewChange with the given docs, changes, and sync state.\n */\n // PORTING NOTE: The iOS/Android clients always compute limbo document changes.\n t.prototype.applyChanges = function(t, e, n) {\n var r = this, i = this.fo;\n this.fo = t.fo, this.mutatedKeys = t.mutatedKeys;\n // Sort changes based on type and query comparator\n var o = t.mo.jr();\n o.sort((function(t, e) {\n return function(t, e) {\n var n = function(t) {\n switch (t) {\n case 0 /* Added */ :\n return 1;\n\n case 2 /* Modified */ :\n case 3 /* Metadata */ :\n // A metadata change is converted to a modified change at the public\n // api layer. Since we sort by document key and then change type,\n // metadata and modified changes must be sorted equivalently.\n return 2;\n\n case 1 /* Removed */ :\n return 0;\n\n default:\n return O();\n }\n };\n return n(t) - n(e);\n }(t.type, e.type) || r.lo(t.doc, e.doc);\n })), this.po(n);\n var s = e ? this.Eo() : [], u = 0 === this.ho.size && this.current ? 1 /* Synced */ : 0 /* Local */ , a = u !== this.ao;\n return this.ao = u, 0 !== o.length || a ? {\n snapshot: new ds(this.query, t.fo, i, o, t.mutatedKeys, 0 /* Local */ === u, a, \n /* excludesMetadataChanges= */ !1),\n To: s\n } : {\n To: s\n };\n // no changes\n }, \n /**\n * Applies an OnlineState change to the view, potentially generating a\n * ViewChange if the view's syncState changes as a result.\n */\n t.prototype.zr = function(t) {\n return this.current && \"Offline\" /* Offline */ === t ? (\n // If we're offline, set `current` to false and then call applyChanges()\n // to refresh our syncState and generate a ViewChange as appropriate. We\n // are guaranteed to get a new TargetChange that sets `current` back to\n // true once the client is back online.\n this.current = !1, this.applyChanges({\n fo: this.fo,\n mo: new ls,\n mutatedKeys: this.mutatedKeys,\n Nn: !1\n }, \n /* updateLimboDocuments= */ !1)) : {\n To: []\n };\n }, \n /**\n * Returns whether the doc for the given key should be in limbo.\n */\n t.prototype.Io = function(t) {\n // If the remote end says it's part of this query, it's not in limbo.\n return !this.uo.has(t) && \n // The local store doesn't think it's a result, so it shouldn't be in limbo.\n !!this.fo.has(t) && !this.fo.get(t).hasLocalMutations;\n }, \n /**\n * Updates syncedDocuments, current, and limbo docs based on the given change.\n * Returns the list of changes to which docs are in limbo.\n */\n t.prototype.po = function(t) {\n var e = this;\n t && (t.addedDocuments.forEach((function(t) {\n return e.uo = e.uo.add(t);\n })), t.modifiedDocuments.forEach((function(t) {})), t.removedDocuments.forEach((function(t) {\n return e.uo = e.uo.delete(t);\n })), this.current = t.current);\n }, t.prototype.Eo = function() {\n var t = this;\n // We can only determine limbo documents when we're in-sync with the server.\n if (!this.current) return [];\n // TODO(klimt): Do this incrementally so that it's not quadratic when\n // updating many documents.\n var e = this.ho;\n this.ho = sn(), this.fo.forEach((function(e) {\n t.Io(e.key) && (t.ho = t.ho.add(e.key));\n }));\n // Diff the new limbo docs with the old limbo docs.\n var n = [];\n return e.forEach((function(e) {\n t.ho.has(e) || n.push(new Ds(e));\n })), this.ho.forEach((function(t) {\n e.has(t) || n.push(new Ns(t));\n })), n;\n }, \n /**\n * Update the in-memory state of the current view with the state read from\n * persistence.\n *\n * We update the query view whenever a client's primary status changes:\n * - When a client transitions from primary to secondary, it can miss\n * LocalStorage updates and its query views may temporarily not be\n * synchronized with the state on disk.\n * - For secondary to primary transitions, the client needs to update the list\n * of `syncedDocuments` since secondary clients update their query views\n * based purely on synthesized RemoteEvents.\n *\n * @param queryResult.documents - The documents that match the query according\n * to the LocalStore.\n * @param queryResult.remoteKeys - The keys of the documents that match the\n * query according to the backend.\n *\n * @returns The ViewChange that resulted from this synchronization.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.Ao = function(t) {\n this.uo = t.Bn, this.ho = sn();\n var e = this._o(t.documents);\n return this.applyChanges(e, /*updateLimboDocuments=*/ !0);\n }, \n /**\n * Returns a view snapshot as if this query was just listened to. Contains\n * a document add for every existing document and the `fromCache` and\n * `hasPendingWrites` status of the already established view.\n */\n // PORTING NOTE: Multi-tab only.\n t.prototype.Ro = function() {\n return ds.fromInitialDocuments(this.query, this.fo, this.mutatedKeys, 0 /* Local */ === this.ao);\n }, t;\n}(), ks = function(\n/**\n * The query itself.\n */\nt, \n/**\n * The target number created by the client that is used in the watch\n * stream to identify this query.\n */\ne, \n/**\n * The view is responsible for computing the final merged truth of what\n * docs are in the query. It gets notified of local and remote changes,\n * and applies the query filters and limits to determine the most correct\n * possible results.\n */\nn) {\n this.query = t, this.targetId = e, this.view = n;\n}, Cs = function(t) {\n this.key = t, \n /**\n * Set to true once we've received a document. This is used in\n * getRemoteKeysForTarget() and ultimately used by WatchChangeAggregator to\n * decide whether it needs to manufacture a delete event for the target once\n * the target is CURRENT.\n */\n this.bo = !1;\n}, xs = /** @class */ function() {\n function t(t, e, n, \n // PORTING NOTE: Manages state synchronization in multi-tab environments.\n r, i, o) {\n this.localStore = t, this.remoteStore = e, this.eventManager = n, this.sharedClientState = r, \n this.currentUser = i, this.maxConcurrentLimboResolutions = o, this.vo = {}, this.Po = new Ii((function(t) {\n return oe(t);\n }), ie), this.Vo = new Map, \n /**\n * The keys of documents that are in limbo for which we haven't yet started a\n * limbo resolution query. The strings in this set are the result of calling\n * `key.path.canonicalString()` where `key` is a `DocumentKey` object.\n *\n * The `Set` type was chosen because it provides efficient lookup and removal\n * of arbitrary elements and it also maintains insertion order, providing the\n * desired queue-like FIFO semantics.\n */\n this.So = new Set, \n /**\n * Keeps track of the target ID for each document that is in limbo with an\n * active target.\n */\n this.Do = new We(ct.comparator), \n /**\n * Keeps track of the information about an active limbo resolution for each\n * active target ID that was started for the purpose of limbo resolution.\n */\n this.Co = new Map, this.No = new no, \n /** Stores user completion handlers, indexed by User and BatchId. */\n this.xo = {}, \n /** Stores user callbacks waiting for all pending writes to be acknowledged. */\n this.ko = new Map, this.Fo = ci.Yt(), this.onlineState = \"Unknown\" /* Unknown */ , \n // The primary state is set to `true` or `false` immediately after Firestore\n // startup. In the interim, a client should only be considered primary if\n // `isPrimary` is true.\n this.$o = void 0;\n }\n return Object.defineProperty(t.prototype, \"isPrimaryClient\", {\n get: function() {\n return !0 === this.$o;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}();\n\n/**\n * Initiates the new listen, resolves promise when listen enqueued to the\n * server. All the subsequent view snapshots or errors are sent to the\n * subscribed handlers. Returns the initial snapshot.\n */\nfunction Rs(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u, a;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = uu(t), (s = n.Po.get(e)) ? (\n // PORTING NOTE: With Multi-Tab Web, it is possible that a query view\n // already exists when EventManager calls us for the first time. This\n // happens when the primary tab is already listening to this query on\n // behalf of another tab and the user of the primary also starts listening\n // to the query. EventManager will not have an assigned target ID in this\n // case and calls `listen` to obtain this ID.\n i = s.targetId, n.sharedClientState.addLocalQueryTarget(i), o = s.view.Ro(), [ 3 /*break*/ , 4 ]) : [ 3 /*break*/ , 1 ];\n\n case 1:\n return [ 4 /*yield*/ , Wi(n.localStore, ne(e)) ];\n\n case 2:\n return u = r.sent(), a = n.sharedClientState.addLocalQueryTarget(u.targetId), i = u.targetId, \n [ 4 /*yield*/ , Ls(n, e, i, \"current\" === a) ];\n\n case 3:\n o = r.sent(), n.isPrimaryClient && Uo(n.remoteStore, u), r.label = 4;\n\n case 4:\n return [ 2 /*return*/ , o ];\n }\n }));\n }));\n}\n\n/**\n * Registers a view for a previously unknown query and computes its initial\n * snapshot.\n */ function Ls(t, e, i, o) {\n return n(this, void 0, void 0, (function() {\n var s, u, a, c, h, f;\n return r(this, (function(l) {\n switch (l.label) {\n case 0:\n // PORTING NOTE: On Web only, we inject the code that registers new Limbo\n // targets based on view changes. This allows us to only depend on Limbo\n // changes when user code includes queries.\n return t.Oo = function(e, i, o) {\n return function(t, e, i, o) {\n return n(this, void 0, void 0, (function() {\n var n, s, u;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = e.view._o(i), n.Nn ? [ 4 /*yield*/ , Yi(t.localStore, e.query, \n /* usePreviousResults= */ !1).then((function(t) {\n var r = t.documents;\n return e.view._o(r, n);\n })) ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n // The query has a limit and some docs were removed, so we need\n // to re-run the query against the local store to make sure we\n // didn't lose any good docs that had been past the limit.\n n = r.sent(), r.label = 2;\n\n case 2:\n return s = o && o.targetChanges.get(e.targetId), u = e.view.applyChanges(n, \n /* updateLimboDocuments= */ t.isPrimaryClient, s), [ 2 /*return*/ , (zs(t, e.targetId, u.To), \n u.snapshot) ];\n }\n }));\n }));\n }(t, e, i, o);\n }, [ 4 /*yield*/ , Yi(t.localStore, e, \n /* usePreviousResults= */ !0) ];\n\n case 1:\n return s = l.sent(), u = new As(e, s.Bn), a = u._o(s.documents), c = hn.createSynthesizedTargetChangeForCurrentChange(i, o && \"Offline\" /* Offline */ !== t.onlineState), \n h = u.applyChanges(a, \n /* updateLimboDocuments= */ t.isPrimaryClient, c), zs(t, i, h.To), f = new ks(e, i, u), \n [ 2 /*return*/ , (t.Po.set(e, f), t.Vo.has(i) ? t.Vo.get(i).push(e) : t.Vo.set(i, [ e ]), \n h.snapshot) ];\n }\n }));\n }));\n}\n\n/** Stops listening to the query. */ function Os(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = F(t), i = n.Po.get(e), (o = n.Vo.get(i.targetId)).length > 1 ? [ 2 /*return*/ , (n.Vo.set(i.targetId, o.filter((function(t) {\n return !ie(t, e);\n }))), void n.Po.delete(e)) ] : n.isPrimaryClient ? (\n // We need to remove the local query target first to allow us to verify\n // whether any other client is still interested in this target.\n n.sharedClientState.removeLocalQueryTarget(i.targetId), n.sharedClientState.isActiveQueryTarget(i.targetId) ? [ 3 /*break*/ , 2 ] : [ 4 /*yield*/ , Hi(n.localStore, i.targetId, \n /*keepPersistedTargetData=*/ !1).then((function() {\n n.sharedClientState.clearQueryState(i.targetId), Bo(n.remoteStore, i.targetId), \n Gs(n, i.targetId);\n })).catch(pi) ]) : [ 3 /*break*/ , 3 ];\n\n case 1:\n r.sent(), r.label = 2;\n\n case 2:\n return [ 3 /*break*/ , 5 ];\n\n case 3:\n return Gs(n, i.targetId), [ 4 /*yield*/ , Hi(n.localStore, i.targetId, \n /*keepPersistedTargetData=*/ !0) ];\n\n case 4:\n r.sent(), r.label = 5;\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Initiates the write of local mutation batch which involves adding the\n * writes to the mutation queue, notifying the remote store about new\n * mutations and raising events for any changes this write caused.\n *\n * The promise returned by this call is resolved when the above steps\n * have completed, *not* when the write was acked by the backend. The\n * userCallback is resolved once the write was acked/rejected by the\n * backend (or failed locally for any other reason).\n */ function Ps(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o, s, u;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = au(t), r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 5, , 6 ]), [ 4 /*yield*/ , function(t, e) {\n var n, r = F(t), i = j.now(), o = e.reduce((function(t, e) {\n return t.add(e.key);\n }), sn());\n return r.persistence.runTransaction(\"Locally write mutations\", \"readwrite\", (function(t) {\n return r.Mn.pn(t, o).next((function(o) {\n n = o;\n for (\n // For non-idempotent mutations (such as `FieldValue.increment()`),\n // we record the base state in a separate patch mutation. This is\n // later used to guarantee consistent values and prevents flicker\n // even if the backend sends us an update that already includes our\n // transform.\n var s = [], u = 0, a = e; u < a.length; u++) {\n var c = a[u], h = Re(c, n.get(c.key));\n null != h && \n // NOTE: The base state should only be applied if there's some\n // existing document to override, so use a Precondition of\n // exists=true\n s.push(new Fe(c.key, h, St(h.value.mapValue), De.exists(!0)));\n }\n return r._n.addMutationBatch(t, i, s, e);\n }));\n })).then((function(t) {\n return t.applyToLocalDocumentSet(n), {\n batchId: t.batchId,\n changes: n\n };\n }));\n }(n.localStore, e) ];\n\n case 2:\n return o = r.sent(), n.sharedClientState.addPendingMutation(o.batchId), function(t, e, n) {\n var r = t.xo[t.currentUser.toKey()];\n r || (r = new We(q)), r = r.insert(e, n), t.xo[t.currentUser.toKey()] = r;\n }(n, o.batchId, i), [ 4 /*yield*/ , Ys(n, o.changes) ];\n\n case 3:\n return r.sent(), [ 4 /*yield*/ , Zo(n.remoteStore) ];\n\n case 4:\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 5:\n return s = r.sent(), u = hs(s, \"Failed to persist write\"), i.reject(u), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Applies one remote event to the sync engine, notifying any views of the\n * changes, and releasing any pending mutation batches that would become\n * visible because of the snapshot version the remote event contains.\n */ function Fs(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = F(t), r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 4, , 6 ]), [ 4 /*yield*/ , Gi(n.localStore, e) ];\n\n case 2:\n return i = r.sent(), \n // Update `receivedDocument` as appropriate for any limbo targets.\n e.targetChanges.forEach((function(t, e) {\n var r = n.Co.get(e);\n r && (\n // Since this is a limbo resolution lookup, it's for a single document\n // and it could be added, modified, or removed, but not a combination.\n P(t.addedDocuments.size + t.modifiedDocuments.size + t.removedDocuments.size <= 1), \n t.addedDocuments.size > 0 ? r.bo = !0 : t.modifiedDocuments.size > 0 ? P(r.bo) : t.removedDocuments.size > 0 && (P(r.bo), \n r.bo = !1));\n })), [ 4 /*yield*/ , Ys(n, i, e) ];\n\n case 3:\n // Update `receivedDocument` as appropriate for any limbo targets.\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 4:\n return [ 4 /*yield*/ , pi(r.sent()) ];\n\n case 5:\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Applies an OnlineState change to the sync engine and notifies any views of\n * the change.\n */ function Ms(t, e, n) {\n var r = F(t);\n // If we are the secondary client, we explicitly ignore the remote store's\n // online state (the local client may go offline, even though the primary\n // tab remains online) and only apply the primary tab's online state from\n // SharedClientState.\n if (r.isPrimaryClient && 0 /* RemoteStore */ === n || !r.isPrimaryClient && 1 /* SharedClientState */ === n) {\n var i = [];\n r.Po.forEach((function(t, n) {\n var r = n.view.zr(e);\n r.snapshot && i.push(r.snapshot);\n })), function(t, e) {\n var n = F(t);\n n.onlineState = e;\n var r = !1;\n n.queries.forEach((function(t, n) {\n for (var i = 0, o = n.listeners; i < o.length; i++) {\n // Run global snapshot listeners if a consistent snapshot has been emitted.\n o[i].zr(e) && (r = !0);\n }\n })), r && bs(n);\n }(r.eventManager, e), i.length && r.vo._r(i), r.onlineState = e, r.isPrimaryClient && r.sharedClientState.setOnlineState(e);\n }\n}\n\n/**\n * Rejects the listen for the given targetID. This can be triggered by the\n * backend for any active target.\n *\n * @param syncEngine - The sync engine implementation.\n * @param targetId - The targetID corresponds to one previously initiated by the\n * user as part of TargetData passed to listen() on RemoteStore.\n * @param err - A description of the condition that has forced the rejection.\n * Nearly always this will be an indication that the user is no longer\n * authorized to see the data matching the target.\n */ function Vs(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o, s, u, a, c;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n // PORTING NOTE: Multi-tab only.\n return (n = F(t)).sharedClientState.updateQueryState(e, \"rejected\", i), o = n.Co.get(e), \n (s = o && o.key) ? (u = (u = new We(ct.comparator)).insert(s, Nt.newNoDocument(s, K.min())), \n a = sn().add(s), c = new cn(K.min(), \n /* targetChanges= */ new Map, \n /* targetMismatches= */ new $e(q), u, a), [ 4 /*yield*/ , Fs(n, c) ]) : [ 3 /*break*/ , 2 ];\n\n case 1:\n return r.sent(), \n // Since this query failed, we won't want to manually unlisten to it.\n // We only remove it from bookkeeping after we successfully applied the\n // RemoteEvent. If `applyRemoteEvent()` throws, we want to re-listen to\n // this query when the RemoteStore restarts the Watch stream, which should\n // re-trigger the target failure.\n n.Do = n.Do.remove(s), n.Co.delete(e), Hs(n), [ 3 /*break*/ , 4 ];\n\n case 2:\n return [ 4 /*yield*/ , Hi(n.localStore, e, \n /* keepPersistedTargetData */ !1).then((function() {\n return Gs(n, e, i);\n })).catch(pi) ];\n\n case 3:\n r.sent(), r.label = 4;\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction qs(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = F(t), i = e.batch.batchId, r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 4, , 6 ]), [ 4 /*yield*/ , ji(n.localStore, e) ];\n\n case 2:\n return o = r.sent(), \n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught\n // up), so we raise user callbacks first so that they consistently happen\n // before listen events.\n Ks(n, i, /*error=*/ null), js(n, i), n.sharedClientState.updateMutationState(i, \"acknowledged\"), \n [ 4 /*yield*/ , Ys(n, o) ];\n\n case 3:\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught\n // up), so we raise user callbacks first so that they consistently happen\n // before listen events.\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 4:\n return [ 4 /*yield*/ , pi(r.sent()) ];\n\n case 5:\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Us(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = F(t), r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 4, , 6 ]), [ 4 /*yield*/ , function(t, e) {\n var n = F(t);\n return n.persistence.runTransaction(\"Reject batch\", \"readwrite-primary\", (function(t) {\n var r;\n return n._n.lookupMutationBatch(t, e).next((function(e) {\n return P(null !== e), r = e.keys(), n._n.removeMutationBatch(t, e);\n })).next((function() {\n return n._n.performConsistencyCheck(t);\n })).next((function() {\n return n.Mn.pn(t, r);\n }));\n }));\n }(n.localStore, e) ];\n\n case 2:\n return o = r.sent(), \n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught up),\n // so we raise user callbacks first so that they consistently happen before\n // listen events.\n Ks(n, e, i), js(n, e), n.sharedClientState.updateMutationState(e, \"rejected\", i), \n [ 4 /*yield*/ , Ys(n, o) ];\n\n case 3:\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught up),\n // so we raise user callbacks first so that they consistently happen before\n // listen events.\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 4:\n return [ 4 /*yield*/ , pi(r.sent()) ];\n\n case 5:\n return r.sent(), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Registers a user callback that resolves when all pending mutations at the moment of calling\n * are acknowledged .\n */ function Bs(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n zo((n = F(t)).remoteStore) || C(\"SyncEngine\", \"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.\"), \n r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 3, , 4 ]), [ 4 /*yield*/ , function(t) {\n var e = F(t);\n return e.persistence.runTransaction(\"Get highest unacknowledged batch id\", \"readonly\", (function(t) {\n return e._n.getHighestUnacknowledgedBatchId(t);\n }));\n }(n.localStore) ];\n\n case 2:\n return -1 === (i = r.sent()) ? [ 2 /*return*/ , void e.resolve() ] : ((o = n.ko.get(i) || []).push(e), \n n.ko.set(i, o), [ 3 /*break*/ , 4 ]);\n\n case 3:\n return s = r.sent(), u = hs(s, \"Initialization of waitForPendingWrites() operation failed\"), \n e.reject(u), [ 3 /*break*/ , 4 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/**\n * Triggers the callbacks that are waiting for this batch id to get acknowledged by server,\n * if there are any.\n */ function js(t, e) {\n (t.ko.get(e) || []).forEach((function(t) {\n t.resolve();\n })), t.ko.delete(e)\n /** Reject all outstanding callbacks waiting for pending writes to complete. */;\n}\n\nfunction Ks(t, e, n) {\n var r = F(t), i = r.xo[r.currentUser.toKey()];\n // NOTE: Mutations restored from persistence won't have callbacks, so it's\n // okay for there to be no callback for this ID.\n if (i) {\n var o = i.get(e);\n o && (n ? o.reject(n) : o.resolve(), i = i.remove(e)), r.xo[r.currentUser.toKey()] = i;\n }\n}\n\nfunction Gs(t, e, n) {\n void 0 === n && (n = null), t.sharedClientState.removeLocalQueryTarget(e);\n for (var r = 0, i = t.Vo.get(e); r < i.length; r++) {\n var o = i[r];\n t.Po.delete(o), n && t.vo.Mo(o, n);\n }\n t.Vo.delete(e), t.isPrimaryClient && t.No.Zn(e).forEach((function(e) {\n t.No.containsKey(e) || \n // We removed the last reference for this key\n Qs(t, e);\n }));\n}\n\nfunction Qs(t, e) {\n t.So.delete(e.path.canonicalString());\n // It's possible that the target already got removed because the query failed. In that case,\n // the key won't exist in `limboTargetsByKey`. Only do the cleanup if we still have the target.\n var n = t.Do.get(e);\n null !== n && (Bo(t.remoteStore, n), t.Do = t.Do.remove(e), t.Co.delete(n), Hs(t));\n}\n\nfunction zs(t, e, n) {\n for (var r = 0, i = n; r < i.length; r++) {\n var o = i[r];\n o instanceof Ns ? (t.No.addReference(o.key, e), Ws(t, o)) : o instanceof Ds ? (C(\"SyncEngine\", \"Document no longer in limbo: \" + o.key), \n t.No.removeReference(o.key, e), t.No.containsKey(o.key) || \n // We removed the last reference for this key\n Qs(t, o.key)) : O();\n }\n}\n\nfunction Ws(t, e) {\n var n = e.key, r = n.path.canonicalString();\n t.Do.get(n) || t.So.has(r) || (C(\"SyncEngine\", \"New document in limbo: \" + n), t.So.add(r), \n Hs(t));\n}\n\n/**\n * Starts listens for documents in limbo that are enqueued for resolution,\n * subject to a maximum number of concurrent resolutions.\n *\n * Without bounding the number of concurrent resolutions, the server can fail\n * with \"resource exhausted\" errors which can lead to pathological client\n * behavior as seen in https://github.com/firebase/firebase-js-sdk/issues/2683.\n */ function Hs(t) {\n for (;t.So.size > 0 && t.Do.size < t.maxConcurrentLimboResolutions; ) {\n var e = t.So.values().next().value;\n t.So.delete(e);\n var n = new ct(H.fromString(e)), r = t.Fo.next();\n t.Co.set(r, new Cs(n)), t.Do = t.Do.insert(n, r), Uo(t.remoteStore, new Pr(ne(Yt(n.path)), r, 2 /* LimboResolution */ , S.o));\n }\n}\n\nfunction Ys(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var o, s, u, a;\n return r(this, (function(c) {\n switch (c.label) {\n case 0:\n return o = F(t), s = [], u = [], a = [], o.Po.isEmpty() ? [ 3 /*break*/ , 3 ] : (o.Po.forEach((function(t, n) {\n a.push(o.Oo(n, e, i).then((function(t) {\n if (t) {\n o.isPrimaryClient && o.sharedClientState.updateQueryState(n.targetId, t.fromCache ? \"not-current\" : \"current\"), \n s.push(t);\n var e = Mi.Pn(n.targetId, t);\n u.push(e);\n }\n })));\n })), [ 4 /*yield*/ , Promise.all(a) ]);\n\n case 1:\n return c.sent(), o.vo._r(s), [ 4 /*yield*/ , function(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u, a, c, h, f;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = F(t), r.label = 1;\n\n case 1:\n return r.trys.push([ 1, 3, , 4 ]), [ 4 /*yield*/ , n.persistence.runTransaction(\"notifyLocalViewChanges\", \"readwrite\", (function(t) {\n return Ir.forEach(e, (function(e) {\n return Ir.forEach(e.bn, (function(r) {\n return n.persistence.referenceDelegate.addReference(t, e.targetId, r);\n })).next((function() {\n return Ir.forEach(e.vn, (function(r) {\n return n.persistence.referenceDelegate.removeReference(t, e.targetId, r);\n }));\n }));\n }));\n })) ];\n\n case 2:\n return r.sent(), [ 3 /*break*/ , 4 ];\n\n case 3:\n if (!Nr(i = r.sent())) throw i;\n // If `notifyLocalViewChanges` fails, we did not advance the sequence\n // number for the documents that were included in this transaction.\n // This might trigger them to be deleted earlier than they otherwise\n // would have, but it should not invalidate the integrity of the data.\n return C(\"LocalStore\", \"Failed to update sequence numbers: \" + i), \n [ 3 /*break*/ , 4 ];\n\n case 4:\n for (o = 0, s = e; o < s.length; o++) u = s[o], a = u.targetId, u.fromCache || (c = n.kn.get(a), \n h = c.snapshotVersion, f = c.withLastLimboFreeSnapshotVersion(h), \n // Advance the last limbo free snapshot version\n n.kn = n.kn.insert(a, f));\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }(o.localStore, u) ];\n\n case 2:\n c.sent(), c.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction $s(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return (n = F(t)).currentUser.isEqual(e) ? [ 3 /*break*/ , 3 ] : (C(\"SyncEngine\", \"User change. New user:\", e.toKey()), \n [ 4 /*yield*/ , Bi(n.localStore, e) ]);\n\n case 1:\n return i = r.sent(), n.currentUser = e, \n // Fails tasks waiting for pending writes requested by previous user.\n function(t, e) {\n t.ko.forEach((function(t) {\n t.forEach((function(t) {\n t.reject(new D(N.CANCELLED, \"'waitForPendingWrites' promise is rejected due to a user change.\"));\n }));\n })), t.ko.clear();\n }(n), \n // TODO(b/114226417): Consider calling this only in the primary tab.\n n.sharedClientState.handleUserChange(e, i.removedBatchIds, i.addedBatchIds), [ 4 /*yield*/ , Ys(n, i.Ln) ];\n\n case 2:\n r.sent(), r.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Xs(t, e) {\n var n = F(t), r = n.Co.get(e);\n if (r && r.bo) return sn().add(r.key);\n var i = sn(), o = n.Vo.get(e);\n if (!o) return i;\n for (var s = 0, u = o; s < u.length; s++) {\n var a = u[s], c = n.Po.get(a);\n i = i.unionWith(c.view.wo);\n }\n return i;\n}\n\n/**\n * Reconcile the list of synced documents in an existing view with those\n * from persistence.\n */ function Js(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , Yi((n = F(t)).localStore, e.query, \n /* usePreviousResults= */ !0) ];\n\n case 1:\n return i = r.sent(), o = e.view.Ao(i), [ 2 /*return*/ , (n.isPrimaryClient && zs(n, e.targetId, o.To), \n o) ];\n }\n }));\n }));\n}\n\n/**\n * Retrieves newly changed documents from remote document cache and raises\n * snapshots if needed.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Zs(t) {\n return n(this, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n return [ 2 /*return*/ , Xi((e = F(t)).localStore).then((function(t) {\n return Ys(e, t);\n })) ];\n }));\n }));\n}\n\n/** Applies a mutation state to an existing batch. */\n// PORTING NOTE: Multi-Tab only.\nfunction tu(t, e, i, o) {\n return n(this, void 0, void 0, (function() {\n var n, s;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , function(t, e) {\n var n = F(t), r = F(n._n);\n return n.persistence.runTransaction(\"Lookup mutation documents\", \"readonly\", (function(t) {\n return r.jt(t, e).next((function(e) {\n return e ? n.Mn.pn(t, e) : Ir.resolve(null);\n }));\n }));\n }((n = F(t)).localStore, e) ];\n\n case 1:\n return null === (s = r.sent()) ? [ 3 /*break*/ , 6 ] : \"pending\" !== i ? [ 3 /*break*/ , 3 ] : [ 4 /*yield*/ , Zo(n.remoteStore) ];\n\n case 2:\n // If we are the primary client, we need to send this write to the\n // backend. Secondary clients will ignore these writes since their remote\n // connection is disabled.\n return r.sent(), [ 3 /*break*/ , 4 ];\n\n case 3:\n \"acknowledged\" === i || \"rejected\" === i ? (\n // NOTE: Both these methods are no-ops for batches that originated from\n // other clients.\n Ks(n, e, o || null), js(n, e), function(t, e) {\n F(F(t)._n).Gt(e);\n }(n.localStore, e)) : O(), r.label = 4;\n\n case 4:\n return [ 4 /*yield*/ , Ys(n, s) ];\n\n case 5:\n return r.sent(), [ 3 /*break*/ , 7 ];\n\n case 6:\n // A throttled tab may not have seen the mutation before it was completed\n // and removed from the mutation queue, in which case we won't have cached\n // the affected documents. In this case we can safely ignore the update\n // since that means we didn't apply the mutation locally at all (if we\n // had, we would have cached the affected documents), and so we will just\n // see any resulting document changes via normal remote document updates\n // as applicable.\n C(\"SyncEngine\", \"Cannot apply mutation batch with id: \" + e), r.label = 7;\n\n case 7:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\nfunction eu(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u, a, c, h;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return uu(n = F(t)), au(n), !0 !== e || !0 === n.$o ? [ 3 /*break*/ , 3 ] : (i = n.sharedClientState.getAllActiveQueryTargets(), \n [ 4 /*yield*/ , nu(n, i.toArray()) ]);\n\n case 1:\n return o = r.sent(), n.$o = !0, [ 4 /*yield*/ , ss(n.remoteStore, !0) ];\n\n case 2:\n for (r.sent(), s = 0, u = o; s < u.length; s++) a = u[s], Uo(n.remoteStore, a);\n return [ 3 /*break*/ , 7 ];\n\n case 3:\n return !1 !== e || !1 === n.$o ? [ 3 /*break*/ , 7 ] : (c = [], h = Promise.resolve(), \n n.Vo.forEach((function(t, e) {\n n.sharedClientState.isLocalQueryTarget(e) ? c.push(e) : h = h.then((function() {\n return Gs(n, e), Hi(n.localStore, e, \n /*keepPersistedTargetData=*/ !0);\n })), Bo(n.remoteStore, e);\n })), [ 4 /*yield*/ , h ]);\n\n case 4:\n return r.sent(), [ 4 /*yield*/ , nu(n, c) ];\n\n case 5:\n return r.sent(), \n // PORTING NOTE: Multi-Tab only.\n function(t) {\n var e = F(t);\n e.Co.forEach((function(t, n) {\n Bo(e.remoteStore, n);\n })), e.No.ts(), e.Co = new Map, e.Do = new We(ct.comparator);\n }(n), n.$o = !1, [ 4 /*yield*/ , ss(n.remoteStore, !1) ];\n\n case 6:\n r.sent(), r.label = 7;\n\n case 7:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction nu(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u, a, c, h, f, l, d, p, y, v;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n n = F(t), i = [], o = [], s = 0, u = e, r.label = 1;\n\n case 1:\n return s < u.length ? (a = u[s], c = void 0, (h = n.Vo.get(a)) && 0 !== h.length ? [ 4 /*yield*/ , Wi(n.localStore, ne(h[0])) ] : [ 3 /*break*/ , 7 ]) : [ 3 /*break*/ , 13 ];\n\n case 2:\n // For queries that have a local View, we fetch their current state\n // from LocalStore (as the resume token and the snapshot version\n // might have changed) and reconcile their views with the persisted\n // state (the list of syncedDocuments may have gotten out of sync).\n c = r.sent(), f = 0, l = h, r.label = 3;\n\n case 3:\n return f < l.length ? (d = l[f], p = n.Po.get(d), [ 4 /*yield*/ , Js(n, p) ]) : [ 3 /*break*/ , 6 ];\n\n case 4:\n (y = r.sent()).snapshot && o.push(y.snapshot), r.label = 5;\n\n case 5:\n return f++, [ 3 /*break*/ , 3 ];\n\n case 6:\n return [ 3 /*break*/ , 11 ];\n\n case 7:\n return [ 4 /*yield*/ , $i(n.localStore, a) ];\n\n case 8:\n return v = r.sent(), [ 4 /*yield*/ , Wi(n.localStore, v) ];\n\n case 9:\n return c = r.sent(), [ 4 /*yield*/ , Ls(n, ru(v), a, \n /*current=*/ !1) ];\n\n case 10:\n r.sent(), r.label = 11;\n\n case 11:\n i.push(c), r.label = 12;\n\n case 12:\n return s++, [ 3 /*break*/ , 1 ];\n\n case 13:\n return [ 2 /*return*/ , (n.vo._r(o), i) ];\n }\n }));\n }));\n}\n\n/**\n * Creates a `Query` object from the specified `Target`. There is no way to\n * obtain the original `Query`, so we synthesize a `Query` from the `Target`\n * object.\n *\n * The synthesized result might be different from the original `Query`, but\n * since the synthesized `Query` should return the same results as the\n * original one (only the presentation of results might differ), the potential\n * difference will not cause issues.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction ru(t) {\n return Ht(t.path, t.collectionGroup, t.orderBy, t.filters, t.limit, \"F\" /* First */ , t.startAt, t.endAt);\n}\n\n/** Returns the IDs of the clients that are currently active. */\n// PORTING NOTE: Multi-Tab only.\nfunction iu(t) {\n var e = F(t);\n return F(F(e.localStore).persistence).fn();\n}\n\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\nfunction ou(t, e, i, o) {\n return n(this, void 0, void 0, (function() {\n var n, s, u;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return (n = F(t)).$o ? (\n // If we receive a target state notification via WebStorage, we are\n // either already secondary or another tab has taken the primary lease.\n C(\"SyncEngine\", \"Ignoring unexpected query state notification.\"), [ 3 /*break*/ , 8 ]) : [ 3 /*break*/ , 1 ];\n\n case 1:\n if (!n.Vo.has(e)) return [ 3 /*break*/ , 8 ];\n switch (i) {\n case \"current\":\n case \"not-current\":\n return [ 3 /*break*/ , 2 ];\n\n case \"rejected\":\n return [ 3 /*break*/ , 5 ];\n }\n return [ 3 /*break*/ , 7 ];\n\n case 2:\n return [ 4 /*yield*/ , Xi(n.localStore) ];\n\n case 3:\n return s = r.sent(), u = cn.createSynthesizedRemoteEventForCurrentChange(e, \"current\" === i), \n [ 4 /*yield*/ , Ys(n, s, u) ];\n\n case 4:\n return r.sent(), [ 3 /*break*/ , 8 ];\n\n case 5:\n return [ 4 /*yield*/ , Hi(n.localStore, e, \n /* keepPersistedTargetData */ !0) ];\n\n case 6:\n return r.sent(), Gs(n, e, o), [ 3 /*break*/ , 8 ];\n\n case 7:\n O(), r.label = 8;\n\n case 8:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\n/** Adds or removes Watch targets for queries from different tabs. */ function su(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o, s, u, a, c, h, f, l, d;\n return r(this, (function(p) {\n switch (p.label) {\n case 0:\n if (!(n = uu(t)).$o) return [ 3 /*break*/ , 10 ];\n o = 0, s = e, p.label = 1;\n\n case 1:\n return o < s.length ? (u = s[o], n.Vo.has(u) ? (\n // A target might have been added in a previous attempt\n C(\"SyncEngine\", \"Adding an already active target \" + u), [ 3 /*break*/ , 5 ]) : [ 4 /*yield*/ , $i(n.localStore, u) ]) : [ 3 /*break*/ , 6 ];\n\n case 2:\n return a = p.sent(), [ 4 /*yield*/ , Wi(n.localStore, a) ];\n\n case 3:\n return c = p.sent(), [ 4 /*yield*/ , Ls(n, ru(a), c.targetId, \n /*current=*/ !1) ];\n\n case 4:\n p.sent(), Uo(n.remoteStore, c), p.label = 5;\n\n case 5:\n return o++, [ 3 /*break*/ , 1 ];\n\n case 6:\n h = function(t) {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return n.Vo.has(t) ? [ 4 /*yield*/ , Hi(n.localStore, t, \n /* keepPersistedTargetData */ !1).then((function() {\n Bo(n.remoteStore, t), Gs(n, t);\n })).catch(pi) ] : [ 3 /*break*/ , 2 ];\n\n // Release queries that are still active.\n case 1:\n // Release queries that are still active.\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }, f = 0, l = i, p.label = 7;\n\n case 7:\n return f < l.length ? (d = l[f], [ 5 /*yield**/ , h(d) ]) : [ 3 /*break*/ , 10 ];\n\n case 8:\n p.sent(), p.label = 9;\n\n case 9:\n return f++, [ 3 /*break*/ , 7 ];\n\n case 10:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction uu(t) {\n var e = F(t);\n return e.remoteStore.remoteSyncer.applyRemoteEvent = Fs.bind(null, e), e.remoteStore.remoteSyncer.getRemoteKeysForTarget = Xs.bind(null, e), \n e.remoteStore.remoteSyncer.rejectListen = Vs.bind(null, e), e.vo._r = gs.bind(null, e.eventManager), \n e.vo.Mo = ws.bind(null, e.eventManager), e;\n}\n\nfunction au(t) {\n var e = F(t);\n return e.remoteStore.remoteSyncer.applySuccessfulWrite = qs.bind(null, e), e.remoteStore.remoteSyncer.rejectFailedWrite = Us.bind(null, e), \n e\n /**\n * Loads a Firestore bundle into the SDK. The returned promise resolves when\n * the bundle finished loading.\n *\n * @param syncEngine - SyncEngine to use.\n * @param bundleReader - Bundle to load into the SDK.\n * @param task - LoadBundleTask used to update the loading progress to public API.\n */;\n}\n\nfunction cu(t, e, i) {\n var o = F(t);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n (function(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o, s, u, a, c;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return r.trys.push([ 0, 14, , 15 ]), [ 4 /*yield*/ , e.getMetadata() ];\n\n case 1:\n return n = r.sent(), [ 4 /*yield*/ , function(t, e) {\n var n = F(t), r = En(e.createTime);\n return n.persistence.runTransaction(\"hasNewerBundle\", \"readonly\", (function(t) {\n return n.Ke.getBundleMetadata(t, e.id);\n })).then((function(t) {\n return !!t && t.createTime.compareTo(r) >= 0;\n }));\n }(t.localStore, n) ];\n\n case 2:\n return r.sent() ? [ 4 /*yield*/ , e.close() ] : [ 3 /*break*/ , 4 ];\n\n case 3:\n return [ 2 /*return*/ , (r.sent(), void i._completeWith(function(t) {\n return {\n taskState: \"Success\",\n documentsLoaded: t.totalDocuments,\n bytesLoaded: t.totalBytes,\n totalDocuments: t.totalDocuments,\n totalBytes: t.totalBytes\n };\n }(n))) ];\n\n case 4:\n return i._updateProgress(Ss(n)), o = new Es(n, t.localStore, e.R), [ 4 /*yield*/ , e.Lo() ];\n\n case 5:\n s = r.sent(), r.label = 6;\n\n case 6:\n return s ? [ 4 /*yield*/ , o.oo(s) ] : [ 3 /*break*/ , 10 ];\n\n case 7:\n return (u = r.sent()) && i._updateProgress(u), [ 4 /*yield*/ , e.Lo() ];\n\n case 8:\n s = r.sent(), r.label = 9;\n\n case 9:\n return [ 3 /*break*/ , 6 ];\n\n case 10:\n return [ 4 /*yield*/ , o.complete() ];\n\n case 11:\n // TODO(b/160876443): This currently raises snapshots with\n // `fromCache=false` if users already listen to some queries and bundles\n // has newer version.\n return a = r.sent(), [ 4 /*yield*/ , Ys(t, a.wn, \n /* remoteEvent */ void 0) ];\n\n case 12:\n // Save metadata, so loading the same bundle will skip.\n // TODO(b/160876443): This currently raises snapshots with\n // `fromCache=false` if users already listen to some queries and bundles\n // has newer version.\n return r.sent(), [ 4 /*yield*/ , function(t, e) {\n var n = F(t);\n return n.persistence.runTransaction(\"Save bundle\", \"readwrite\", (function(t) {\n return n.Ke.saveBundleMetadata(t, e);\n }));\n }(t.localStore, n) ];\n\n case 13:\n // TODO(b/160876443): This currently raises snapshots with\n // `fromCache=false` if users already listen to some queries and bundles\n // has newer version.\n // Save metadata, so loading the same bundle will skip.\n return r.sent(), i._completeWith(a.progress), [ 3 /*break*/ , 15 ];\n\n case 14:\n return R(\"SyncEngine\", \"Loading bundle failed with \" + (c = r.sent())), i._failWith(c), \n [ 3 /*break*/ , 15 ];\n\n case 15:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Provides all components needed for Firestore with in-memory persistence.\n * Uses EagerGC garbage collection.\n */)(o, e, i).then((function() {\n o.sharedClientState.notifyBundleLoaded();\n }));\n}\n\nvar hu = /** @class */ function() {\n function t() {\n this.synchronizeTabs = !1;\n }\n return t.prototype.initialize = function(t) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return this.R = Co(t.databaseInfo.databaseId), this.sharedClientState = this.Bo(t), \n this.persistence = this.qo(t), [ 4 /*yield*/ , this.persistence.start() ];\n\n case 1:\n return e.sent(), this.gcScheduler = this.Uo(t), this.localStore = this.Ko(t), [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.Uo = function(t) {\n return null;\n }, t.prototype.Ko = function(t) {\n return Ui(this.persistence, new Vi, t.initialUser, this.R);\n }, t.prototype.qo = function(t) {\n return new ao(ho.bs, this.R);\n }, t.prototype.Bo = function(t) {\n return new To;\n }, t.prototype.terminate = function() {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(t) {\n switch (t.label) {\n case 0:\n return this.gcScheduler && this.gcScheduler.stop(), [ 4 /*yield*/ , this.sharedClientState.shutdown() ];\n\n case 1:\n return t.sent(), [ 4 /*yield*/ , this.persistence.shutdown() ];\n\n case 2:\n return t.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, t;\n}(), fu = /** @class */ function(e) {\n function i(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).Qo = t, i.cacheSizeBytes = n, i.forceOwnership = r, \n i.synchronizeTabs = !1, i;\n }\n return t(i, e), i.prototype.initialize = function(t) {\n return n(this, void 0, void 0, (function() {\n var n = this;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , e.prototype.initialize.call(this, t) ];\n\n case 1:\n return r.sent(), [ 4 /*yield*/ , Ji(this.localStore) ];\n\n case 2:\n return r.sent(), [ 4 /*yield*/ , this.Qo.initialize(this, t) ];\n\n case 3:\n // Enqueue writes from a previous session\n return r.sent(), [ 4 /*yield*/ , au(this.Qo.syncEngine) ];\n\n case 4:\n // Enqueue writes from a previous session\n return r.sent(), [ 4 /*yield*/ , Zo(this.Qo.remoteStore) ];\n\n case 5:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return r.sent(), [ 4 /*yield*/ , this.persistence.He((function() {\n return n.gcScheduler && !n.gcScheduler.started && n.gcScheduler.start(n.localStore), \n Promise.resolve();\n })) ];\n\n case 6:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return r.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, i.prototype.Ko = function(t) {\n return Ui(this.persistence, new Vi, t.initialUser, this.R);\n }, i.prototype.Uo = function(t) {\n var e = this.persistence.referenceDelegate.garbageCollector;\n return new mi(e, t.asyncQueue);\n }, i.prototype.qo = function(t) {\n var e = Oi(t.databaseInfo.databaseId, t.databaseInfo.persistenceKey), n = void 0 !== this.cacheSizeBytes ? ei.withCacheSize(this.cacheSizeBytes) : ei.DEFAULT;\n return new xi(this.synchronizeTabs, e, t.clientId, n, t.asyncQueue, Ao(), ko(), this.R, this.sharedClientState, !!this.forceOwnership);\n }, i.prototype.Bo = function(t) {\n return new To;\n }, i;\n}(hu), lu = /** @class */ function(e) {\n function i(t, n) {\n var r = this;\n return (r = e.call(this, t, n, /* forceOwnership= */ !1) || this).Qo = t, r.cacheSizeBytes = n, \n r.synchronizeTabs = !0, r;\n }\n return t(i, e), i.prototype.initialize = function(t) {\n return n(this, void 0, void 0, (function() {\n var i, o = this;\n return r(this, (function(s) {\n switch (s.label) {\n case 0:\n return [ 4 /*yield*/ , e.prototype.initialize.call(this, t) ];\n\n case 1:\n return s.sent(), i = this.Qo.syncEngine, this.sharedClientState instanceof Io ? (this.sharedClientState.syncEngine = {\n ui: tu.bind(null, i),\n ai: ou.bind(null, i),\n hi: su.bind(null, i),\n fn: iu.bind(null, i),\n ci: Zs.bind(null, i)\n }, [ 4 /*yield*/ , this.sharedClientState.start() ]) : [ 3 /*break*/ , 3 ];\n\n case 2:\n s.sent(), s.label = 3;\n\n case 3:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return [ 4 /*yield*/ , this.persistence.He((function(t) {\n return n(o, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return [ 4 /*yield*/ , eu(this.Qo.syncEngine, t) ];\n\n case 1:\n return e.sent(), this.gcScheduler && (t && !this.gcScheduler.started ? this.gcScheduler.start(this.localStore) : t || this.gcScheduler.stop()), \n [ 2 /*return*/ ];\n }\n }));\n }));\n })) ];\n\n case 4:\n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n return s.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }, i.prototype.Bo = function(t) {\n var e = Ao();\n if (!Io.yt(e)) throw new D(N.UNIMPLEMENTED, \"IndexedDB persistence is only available on platforms that support LocalStorage.\");\n var n = Oi(t.databaseInfo.databaseId, t.databaseInfo.persistenceKey);\n return new Io(e, t.asyncQueue, n, t.clientId, t.initialUser);\n }, i;\n}(fu), du = /** @class */ function() {\n function t() {}\n return t.prototype.initialize = function(t, e) {\n return n(this, void 0, void 0, (function() {\n var n = this;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return this.localStore ? [ 3 /*break*/ , 2 ] : (this.localStore = t.localStore, \n this.sharedClientState = t.sharedClientState, this.datastore = this.createDatastore(e), \n this.remoteStore = this.createRemoteStore(e), this.eventManager = this.createEventManager(e), \n this.syncEngine = this.createSyncEngine(e, \n /* startAsPrimary=*/ !t.synchronizeTabs), this.sharedClientState.onlineStateHandler = function(t) {\n return Ms(n.syncEngine, t, 1 /* SharedClientState */);\n }, this.remoteStore.remoteSyncer.handleCredentialChange = $s.bind(null, this.syncEngine), \n [ 4 /*yield*/ , ss(this.remoteStore, this.syncEngine.isPrimaryClient) ]);\n\n case 1:\n r.sent(), r.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.createEventManager = function(t) {\n return new ys;\n }, t.prototype.createDatastore = function(t) {\n var e, n = Co(t.databaseInfo.databaseId), r = (e = t.databaseInfo, new Do(e));\n /** Return the Platform-specific connectivity monitor. */ return function(t, e, n) {\n return new Po(t, e, n);\n }(t.credentials, r, n);\n }, t.prototype.createRemoteStore = function(t) {\n var e, n, r, i, o, s = this;\n return e = this.localStore, n = this.datastore, r = t.asyncQueue, i = function(t) {\n return Ms(s.syncEngine, t, 0 /* RemoteStore */);\n }, o = Eo.yt() ? new Eo : new _o, new Mo(e, n, r, i, o);\n }, t.prototype.createSyncEngine = function(t, e) {\n return function(t, e, n, \n // PORTING NOTE: Manages state synchronization in multi-tab environments.\n r, i, o, s) {\n var u = new xs(t, e, n, r, i, o);\n return s && (u.$o = !0), u;\n }(this.localStore, this.remoteStore, this.eventManager, this.sharedClientState, t.initialUser, t.maxConcurrentLimboResolutions, e);\n }, t.prototype.terminate = function() {\n return function(t) {\n return n(this, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = F(t), C(\"RemoteStore\", \"RemoteStore shutting down.\"), e.Or.add(5 /* Shutdown */), \n [ 4 /*yield*/ , qo(e) ];\n\n case 1:\n return n.sent(), e.Lr.shutdown(), \n // Set the OnlineState to Unknown (rather than Offline) to avoid potentially\n // triggering spurious listener events with cached data, etc.\n e.Br.set(\"Unknown\" /* Unknown */), [ 2 /*return*/ ];\n }\n }));\n }));\n }(this.remoteStore);\n }, t;\n}();\n\n/**\n * Provides all components needed for Firestore with IndexedDB persistence.\n */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * How many bytes to read each time when `ReadableStreamReader.read()` is\n * called. Only applicable for byte streams that we control (e.g. those backed\n * by an UInt8Array).\n */\n/**\n * Builds a `ByteStreamReader` from a UInt8Array.\n * @param source - The data source to use.\n * @param bytesPerRead - How many bytes each `read()` from the returned reader\n * will read.\n */\nfunction pu(t, e) {\n void 0 === e && (e = 10240);\n var i = 0;\n return {\n read: function() {\n return n(this, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n return i < t.byteLength ? (n = {\n value: t.slice(i, i + e),\n done: !1\n }, [ 2 /*return*/ , (i += e, n) ]) : [ 2 /*return*/ , {\n done: !0\n } ];\n }));\n }));\n },\n cancel: function() {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(t) {\n return [ 2 /*return*/ ];\n }));\n }));\n },\n releaseLock: function() {},\n closed: Promise.reject(\"unimplemented\")\n };\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * On web, a `ReadableStream` is wrapped around by a `ByteStreamReader`.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A wrapper implementation of Observer that will dispatch events\n * asynchronously. To allow immediate silencing, a mute call is added which\n * causes events scheduled to no longer be raised.\n */ var yu = /** @class */ function() {\n function t(t) {\n this.observer = t, \n /**\n * When set to true, will not raise future events. Necessary to deal with\n * async detachment of listener.\n */\n this.muted = !1;\n }\n return t.prototype.next = function(t) {\n this.observer.next && this.jo(this.observer.next, t);\n }, t.prototype.error = function(t) {\n this.observer.error ? this.jo(this.observer.error, t) : console.error(\"Uncaught Error in snapshot listener:\", t);\n }, t.prototype.Wo = function() {\n this.muted = !0;\n }, t.prototype.jo = function(t, e) {\n var n = this;\n this.muted || setTimeout((function() {\n n.muted || t(e);\n }), 0);\n }, t;\n}(), vu = /** @class */ function() {\n function t(\n /** The reader to read from underlying binary bundle data source. */\n t, e) {\n var n = this;\n this.Go = t, this.R = e, \n /** Cached bundle metadata. */\n this.metadata = new br, \n /**\n * Internal buffer to hold bundle content, accumulating incomplete element\n * content.\n */\n this.buffer = new Uint8Array, this.zo = new TextDecoder(\"utf-8\"), \n // Read the metadata (which is the first element).\n this.Ho().then((function(t) {\n t && t.io() ? n.metadata.resolve(t.payload.metadata) : n.metadata.reject(new Error(\"The first element of the bundle is not a metadata, it is\\n \" + JSON.stringify(null == t ? void 0 : t.payload)));\n }), (function(t) {\n return n.metadata.reject(t);\n }));\n }\n return t.prototype.close = function() {\n return this.Go.cancel();\n }, t.prototype.getMetadata = function() {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(t) {\n return [ 2 /*return*/ , this.metadata.promise ];\n }));\n }));\n }, t.prototype.Lo = function() {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(t) {\n switch (t.label) {\n case 0:\n return [ 4 /*yield*/ , this.getMetadata() ];\n\n case 1:\n // Makes sure metadata is read before proceeding.\n return [ 2 /*return*/ , (t.sent(), this.Ho()) ];\n }\n }));\n }));\n }, \n /**\n * Reads from the head of internal buffer, and pulling more data from\n * underlying stream if a complete element cannot be found, until an\n * element(including the prefixed length and the JSON string) is found.\n *\n * Once a complete element is read, it is dropped from internal buffer.\n *\n * Returns either the bundled element, or null if we have reached the end of\n * the stream.\n */\n t.prototype.Ho = function() {\n return n(this, void 0, void 0, (function() {\n var t, e, n, i;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , this.Jo() ];\n\n case 1:\n return null === (t = r.sent()) ? [ 2 /*return*/ , null ] : (e = this.zo.decode(t), \n n = Number(e), isNaN(n) && this.Yo(\"length string (\" + e + \") is not valid number\"), \n [ 4 /*yield*/ , this.Xo(n) ]);\n\n case 2:\n return i = r.sent(), [ 2 /*return*/ , new Ts(JSON.parse(i), t.length + n) ];\n }\n }));\n }));\n }, \n /** First index of '{' from the underlying buffer. */ t.prototype.Zo = function() {\n return this.buffer.findIndex((function(t) {\n return t === \"{\".charCodeAt(0);\n }));\n }, \n /**\n * Reads from the beginning of the internal buffer, until the first '{', and\n * return the content.\n *\n * If reached end of the stream, returns a null.\n */\n t.prototype.Jo = function() {\n return n(this, void 0, void 0, (function() {\n var t, e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return this.Zo() < 0 ? [ 4 /*yield*/ , this.tc() ] : [ 3 /*break*/ , 3 ];\n\n case 1:\n if (n.sent()) return [ 3 /*break*/ , 3 ];\n n.label = 2;\n\n case 2:\n return [ 3 /*break*/ , 0 ];\n\n case 3:\n // Broke out of the loop because underlying stream is closed, and there\n // happens to be no more data to process.\n return 0 === this.buffer.length ? [ 2 /*return*/ , null ] : (\n // Broke out of the loop because underlying stream is closed, but still\n // cannot find an open bracket.\n (t = this.Zo()) < 0 && this.Yo(\"Reached the end of bundle when a length string is expected.\"), \n e = this.buffer.slice(0, t), [ 2 /*return*/ , (this.buffer = this.buffer.slice(t), \n e) ]);\n }\n }));\n }));\n }, \n /**\n * Reads from a specified position from the internal buffer, for a specified\n * number of bytes, pulling more data from the underlying stream if needed.\n *\n * Returns a string decoded from the read bytes.\n */\n t.prototype.Xo = function(t) {\n return n(this, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return this.buffer.length < t ? [ 4 /*yield*/ , this.tc() ] : [ 3 /*break*/ , 3 ];\n\n case 1:\n n.sent() && this.Yo(\"Reached the end of bundle when more is expected.\"), n.label = 2;\n\n case 2:\n return [ 3 /*break*/ , 0 ];\n\n case 3:\n // Update the internal buffer to drop the read json string.\n return e = this.zo.decode(this.buffer.slice(0, t)), [ 2 /*return*/ , (this.buffer = this.buffer.slice(t), \n e) ];\n }\n }));\n }));\n }, t.prototype.Yo = function(t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n throw this.Go.cancel(), new Error(\"Invalid bundle format: \" + t);\n }, \n /**\n * Pulls more data from underlying stream to internal buffer.\n * Returns a boolean indicating whether the stream is finished.\n */\n t.prototype.tc = function() {\n return n(this, void 0, void 0, (function() {\n var t, e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return [ 4 /*yield*/ , this.Go.read() ];\n\n case 1:\n return (t = n.sent()).done || ((e = new Uint8Array(this.buffer.length + t.value.length)).set(this.buffer), \n e.set(t.value, this.buffer.length), this.buffer = e), [ 2 /*return*/ , t.done ];\n }\n }));\n }));\n }, t;\n}(), mu = /** @class */ function() {\n function t(t) {\n this.datastore = t, \n // The version of each document that was read during this transaction.\n this.readVersions = new Map, this.mutations = [], this.committed = !1, \n /**\n * A deferred usage error that occurred previously in this transaction that\n * will cause the transaction to fail once it actually commits.\n */\n this.lastWriteError = null, \n /**\n * Set of documents that have been written in the transaction.\n *\n * When there's more than one write to the same key in a transaction, any\n * writes after the first are handled differently.\n */\n this.writtenDocs = new Set;\n }\n return t.prototype.lookup = function(t) {\n return n(this, void 0, void 0, (function() {\n var e, i = this;\n return r(this, (function(o) {\n switch (o.label) {\n case 0:\n if (this.ensureCommitNotCalled(), this.mutations.length > 0) throw new D(N.INVALID_ARGUMENT, \"Firestore transactions require all reads to be executed before all writes.\");\n return [ 4 /*yield*/ , function(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o, s, u, a;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = F(t), i = xn(n.R) + \"/documents\", o = {\n documents: e.map((function(t) {\n return Dn(n.R, t);\n }))\n }, [ 4 /*yield*/ , n.$i(\"BatchGetDocuments\", i, o) ];\n\n case 1:\n return s = r.sent(), u = new Map, s.forEach((function(t) {\n var e = function(t, e) {\n return \"found\" in e ? function(t, e) {\n P(!!e.found), e.found.name, e.found.updateTime;\n var n = An(t, e.found.name), r = En(e.found.updateTime), i = new Et({\n mapValue: {\n fields: e.found.fields\n }\n });\n return Nt.newFoundDocument(n, r, i);\n }(t, e) : \"missing\" in e ? function(t, e) {\n P(!!e.missing), P(!!e.readTime);\n var n = An(t, e.missing), r = En(e.readTime);\n return Nt.newNoDocument(n, r);\n }(t, e) : O();\n }(n.R, t);\n u.set(e.key.toString(), e);\n })), a = [], [ 2 /*return*/ , (e.forEach((function(t) {\n var e = u.get(t.toString());\n P(!!e), a.push(e);\n })), a) ];\n }\n }));\n }));\n }(this.datastore, t) ];\n\n case 1:\n return [ 2 /*return*/ , ((e = o.sent()).forEach((function(t) {\n return i.recordVersion(t);\n })), e) ];\n }\n }));\n }));\n }, t.prototype.set = function(t, e) {\n this.write(e.toMutation(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }, t.prototype.update = function(t, e) {\n try {\n this.write(e.toMutation(t, this.preconditionForUpdate(t)));\n } catch (t) {\n this.lastWriteError = t;\n }\n this.writtenDocs.add(t.toString());\n }, t.prototype.delete = function(t) {\n this.write(new je(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }, t.prototype.commit = function() {\n return n(this, void 0, void 0, (function() {\n var t, e = this;\n return r(this, (function(i) {\n switch (i.label) {\n case 0:\n if (this.ensureCommitNotCalled(), this.lastWriteError) throw this.lastWriteError;\n return t = this.readVersions, \n // For each mutation, note that the doc was written.\n this.mutations.forEach((function(e) {\n t.delete(e.key.toString());\n })), \n // For each document that was read but not written to, we want to perform\n // a `verify` operation.\n t.forEach((function(t, n) {\n var r = ct.fromPath(n);\n e.mutations.push(new Ke(r, e.precondition(r)));\n })), [ 4 /*yield*/ , function(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = F(t), i = xn(n.R) + \"/documents\", o = {\n writes: e.map((function(t) {\n return Pn(n.R, t);\n }))\n }, [ 4 /*yield*/ , n.Ni(\"Commit\", i, o) ];\n\n case 1:\n return r.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(this.datastore, this.mutations) ];\n\n case 1:\n // For each mutation, note that the doc was written.\n return i.sent(), this.committed = !0, [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.recordVersion = function(t) {\n var e;\n if (t.isFoundDocument()) e = t.version; else {\n if (!t.isNoDocument()) throw O();\n // For deleted docs, we must use baseVersion 0 when we overwrite them.\n e = K.min();\n }\n var n = this.readVersions.get(t.key.toString());\n if (n) {\n if (!e.isEqual(n)) \n // This transaction will fail no matter what.\n throw new D(N.ABORTED, \"Document version changed between two reads.\");\n } else this.readVersions.set(t.key.toString(), e);\n }, \n /**\n * Returns the version of this document when it was read in this transaction,\n * as a precondition, or no precondition if it was not read.\n */\n t.prototype.precondition = function(t) {\n var e = this.readVersions.get(t.toString());\n return !this.writtenDocs.has(t.toString()) && e ? De.updateTime(e) : De.none();\n }, \n /**\n * Returns the precondition for a document if the operation is an update.\n */\n t.prototype.preconditionForUpdate = function(t) {\n var e = this.readVersions.get(t.toString());\n // The first time a document is written, we want to take into account the\n // read time and existence\n if (!this.writtenDocs.has(t.toString()) && e) {\n if (e.isEqual(K.min())) \n // The document doesn't exist, so fail the transaction.\n // This has to be validated locally because you can't send a\n // precondition that a document does not exist without changing the\n // semantics of the backend write to be an insert. This is the reverse\n // of what we want, since we want to assert that the document doesn't\n // exist but then send the update and have it fail. Since we can't\n // express that to the backend, we have to validate locally.\n // Note: this can change once we can send separate verify writes in the\n // transaction.\n throw new D(N.INVALID_ARGUMENT, \"Can't update a document that doesn't exist.\");\n // Document exists, base precondition on document update time.\n return De.updateTime(e);\n }\n // Document was not read, so we just use the preconditions for a blind\n // update.\n return De.exists(!0);\n }, t.prototype.write = function(t) {\n this.ensureCommitNotCalled(), this.mutations.push(t);\n }, t.prototype.ensureCommitNotCalled = function() {}, t;\n}(), gu = /** @class */ function() {\n function t(t, e, n, r) {\n this.asyncQueue = t, this.datastore = e, this.updateFunction = n, this.deferred = r, \n this.ec = 5, this.Zi = new xo(this.asyncQueue, \"transaction_retry\" /* TransactionRetry */)\n /** Runs the transaction and sets the result on deferred. */;\n }\n return t.prototype.run = function() {\n this.ec -= 1, this.nc();\n }, t.prototype.nc = function() {\n var t = this;\n this.Zi.ji((function() {\n return n(t, void 0, void 0, (function() {\n var t, e, n = this;\n return r(this, (function(r) {\n return t = new mu(this.datastore), (e = this.sc(t)) && e.then((function(e) {\n n.asyncQueue.enqueueAndForget((function() {\n return t.commit().then((function() {\n n.deferred.resolve(e);\n })).catch((function(t) {\n n.ic(t);\n }));\n }));\n })).catch((function(t) {\n n.ic(t);\n })), [ 2 /*return*/ ];\n }));\n }));\n }));\n }, t.prototype.sc = function(t) {\n try {\n var e = this.updateFunction(t);\n return !st(e) && e.catch && e.then ? e : (this.deferred.reject(Error(\"Transaction callback must return a Promise\")), \n null);\n } catch (t) {\n // Do not retry errors thrown by user provided updateFunction.\n return this.deferred.reject(t), null;\n }\n }, t.prototype.ic = function(t) {\n var e = this;\n this.ec > 0 && this.rc(t) ? (this.ec -= 1, this.asyncQueue.enqueueAndForget((function() {\n return e.nc(), Promise.resolve();\n }))) : this.deferred.reject(t);\n }, t.prototype.rc = function(t) {\n if (\"FirebaseError\" === t.name) {\n // In transactions, the backend will fail outdated reads with FAILED_PRECONDITION and\n // non-matching document versions with ABORTED. These errors should be retried.\n var e = t.code;\n return \"aborted\" === e || \"failed-precondition\" === e || !Qe(e);\n }\n return !1;\n }, t;\n}(), wu = /** @class */ function() {\n function t(t, \n /**\n * Asynchronous queue responsible for all of our internal processing. When\n * we get incoming work from the user (via public API) or the network\n * (incoming GRPC messages), we should always schedule onto this queue.\n * This ensures all of our work is properly serialized (e.g. we don't\n * start processing a new operation while the previous one is waiting for\n * an async I/O to complete).\n */\n e, i) {\n var o = this;\n this.credentials = t, this.asyncQueue = e, this.databaseInfo = i, this.user = fo.UNAUTHENTICATED, \n this.clientId = V.u(), this.credentialListener = function() {\n return Promise.resolve();\n }, this.credentials.setChangeListener(e, (function(t) {\n return n(o, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return C(\"FirestoreClient\", \"Received user=\", t.uid), [ 4 /*yield*/ , this.credentialListener(t) ];\n\n case 1:\n return e.sent(), this.user = t, [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }\n return t.prototype.getConfiguration = function() {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(t) {\n return [ 2 /*return*/ , {\n asyncQueue: this.asyncQueue,\n databaseInfo: this.databaseInfo,\n clientId: this.clientId,\n credentials: this.credentials,\n initialUser: this.user,\n maxConcurrentLimboResolutions: 100\n } ];\n }));\n }));\n }, t.prototype.setCredentialChangeListener = function(t) {\n this.credentialListener = t;\n }, \n /**\n * Checks that the client has not been terminated. Ensures that other methods on\n * this class cannot be called after the client is terminated.\n */\n t.prototype.verifyNotTerminated = function() {\n if (this.asyncQueue.isShuttingDown) throw new D(N.FAILED_PRECONDITION, \"The client has already been terminated.\");\n }, t.prototype.terminate = function() {\n var t = this;\n this.asyncQueue.enterRestrictedMode();\n var e = new br;\n return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((function() {\n return n(t, void 0, void 0, (function() {\n var t, n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return r.trys.push([ 0, 5, , 6 ]), this.onlineComponents ? [ 4 /*yield*/ , this.onlineComponents.terminate() ] : [ 3 /*break*/ , 2 ];\n\n case 1:\n r.sent(), r.label = 2;\n\n case 2:\n return this.offlineComponents ? [ 4 /*yield*/ , this.offlineComponents.terminate() ] : [ 3 /*break*/ , 4 ];\n\n case 3:\n r.sent(), r.label = 4;\n\n case 4:\n // `removeChangeListener` must be called after shutting down the\n // RemoteStore as it will prevent the RemoteStore from retrieving\n // auth tokens.\n return this.credentials.removeChangeListener(), e.resolve(), [ 3 /*break*/ , 6 ];\n\n case 5:\n return t = r.sent(), n = hs(t, \"Failed to shutdown persistence\"), e.reject(n), [ 3 /*break*/ , 6 ];\n\n case 6:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })), e.promise;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A class representing a bundle.\n *\n * Takes a bundle stream or buffer, and presents abstractions to read bundled\n * elements out of the underlying content.\n */ function bu(t, e) {\n return n(this, void 0, void 0, (function() {\n var i, o, s = this;\n return r(this, (function(u) {\n switch (u.label) {\n case 0:\n return t.asyncQueue.verifyOperationInProgress(), C(\"FirestoreClient\", \"Initializing OfflineComponentProvider\"), \n [ 4 /*yield*/ , t.getConfiguration() ];\n\n case 1:\n return i = u.sent(), [ 4 /*yield*/ , e.initialize(i) ];\n\n case 2:\n return u.sent(), o = i.initialUser, t.setCredentialChangeListener((function(t) {\n return n(s, void 0, void 0, (function() {\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return o.isEqual(t) ? [ 3 /*break*/ , 2 ] : [ 4 /*yield*/ , Bi(e.localStore, t) ];\n\n case 1:\n n.sent(), o = t, n.label = 2;\n\n case 2:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })), \n // When a user calls clearPersistence() in one client, all other clients\n // need to be terminated to allow the delete to succeed.\n e.persistence.setDatabaseDeletedListener((function() {\n return t.terminate();\n })), t.offlineComponents = e, [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Iu(t, e) {\n return n(this, void 0, void 0, (function() {\n var i, o;\n return r(this, (function(s) {\n switch (s.label) {\n case 0:\n return t.asyncQueue.verifyOperationInProgress(), [ 4 /*yield*/ , Tu(t) ];\n\n case 1:\n return i = s.sent(), C(\"FirestoreClient\", \"Initializing OnlineComponentProvider\"), \n [ 4 /*yield*/ , t.getConfiguration() ];\n\n case 2:\n return o = s.sent(), [ 4 /*yield*/ , e.initialize(i, o) ];\n\n case 3:\n return s.sent(), \n // The CredentialChangeListener of the online component provider takes\n // precedence over the offline component provider.\n t.setCredentialChangeListener((function(t) {\n return function(t, e) {\n return n(this, void 0, void 0, (function() {\n var n, i;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return (n = F(t)).asyncQueue.verifyOperationInProgress(), C(\"RemoteStore\", \"RemoteStore received new credentials\"), \n i = zo(n), \n // Tear down and re-create our network streams. This will ensure we get a\n // fresh auth token for the new user and re-fill the write pipeline with\n // new mutations from the LocalStore (since mutations are per-user).\n n.Or.add(3 /* CredentialChange */), [ 4 /*yield*/ , qo(n) ];\n\n case 1:\n return r.sent(), i && \n // Don't set the network status to Unknown if we are offline.\n n.Br.set(\"Unknown\" /* Unknown */), [ 4 /*yield*/ , n.remoteSyncer.handleCredentialChange(e) ];\n\n case 2:\n return r.sent(), n.Or.delete(3 /* CredentialChange */), [ 4 /*yield*/ , Vo(n) ];\n\n case 3:\n // Tear down and re-create our network streams. This will ensure we get a\n // fresh auth token for the new user and re-fill the write pipeline with\n // new mutations from the LocalStore (since mutations are per-user).\n return r.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(e.remoteStore, t);\n })), t.onlineComponents = e, [ 2 /*return*/ ];\n }\n }));\n }));\n}\n\nfunction Tu(t) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return t.offlineComponents ? [ 3 /*break*/ , 2 ] : (C(\"FirestoreClient\", \"Using default OfflineComponentProvider\"), \n [ 4 /*yield*/ , bu(t, new hu) ]);\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ , t.offlineComponents ];\n }\n }));\n }));\n}\n\nfunction _u(t) {\n return n(this, void 0, void 0, (function() {\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return t.onlineComponents ? [ 3 /*break*/ , 2 ] : (C(\"FirestoreClient\", \"Using default OnlineComponentProvider\"), \n [ 4 /*yield*/ , Iu(t, new du) ]);\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n return [ 2 /*return*/ , t.onlineComponents ];\n }\n }));\n }));\n}\n\nfunction Eu(t) {\n return Tu(t).then((function(t) {\n return t.persistence;\n }));\n}\n\nfunction Su(t) {\n return Tu(t).then((function(t) {\n return t.localStore;\n }));\n}\n\nfunction Nu(t) {\n return _u(t).then((function(t) {\n return t.remoteStore;\n }));\n}\n\nfunction Du(t) {\n return _u(t).then((function(t) {\n return t.syncEngine;\n }));\n}\n\nfunction Au(t) {\n return n(this, void 0, void 0, (function() {\n var e, n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , _u(t) ];\n\n case 1:\n return e = r.sent(), [ 2 /*return*/ , ((n = e.eventManager).onListen = Rs.bind(null, e.syncEngine), \n n.onUnlisten = Os.bind(null, e.syncEngine), n) ];\n }\n }));\n }));\n}\n\n/** Enables the network connection and re-enqueues all pending operations. */ function ku(t, e, i) {\n var o = this;\n void 0 === i && (i = {});\n var s = new br;\n return t.asyncQueue.enqueueAndForget((function() {\n return n(o, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = function(t, e, n, r, i) {\n var o = new yu({\n next: function(o) {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.enqueueAndForget((function() {\n return ms(t, s);\n }));\n var u = o.docs.has(n);\n !u && o.fromCache ? \n // TODO(dimond): If we're online and the document doesn't\n // exist then we resolve with a doc.exists set to false. If\n // we're offline however, we reject the Promise in this\n // case. Two options: 1) Cache the negative response from\n // the server so we can deliver that even when you're\n // offline 2) Actually reject the Promise in the online case\n // if the document doesn't exist.\n i.reject(new D(N.UNAVAILABLE, \"Failed to get document because the client is offline.\")) : u && o.fromCache && r && \"server\" === r.source ? i.reject(new D(N.UNAVAILABLE, 'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to \"server\" to retrieve the cached document.)')) : i.resolve(o);\n },\n error: function(t) {\n return i.reject(t);\n }\n }), s = new Is(Yt(n.path), o, {\n includeMetadataChanges: !0,\n so: !0\n });\n return vs(t, s);\n }, [ 4 /*yield*/ , Au(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ r.sent(), t.asyncQueue, e, i, s ]) ];\n }\n }));\n }));\n })), s.promise;\n}\n\nfunction Cu(t, e, i) {\n var o = this;\n void 0 === i && (i = {});\n var s = new br;\n return t.asyncQueue.enqueueAndForget((function() {\n return n(o, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = function(t, e, n, r, i) {\n var o = new yu({\n next: function(n) {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.enqueueAndForget((function() {\n return ms(t, s);\n })), n.fromCache && \"server\" === r.source ? i.reject(new D(N.UNAVAILABLE, 'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to \"server\" to retrieve the cached documents.)')) : i.resolve(n);\n },\n error: function(t) {\n return i.reject(t);\n }\n }), s = new Is(n, o, {\n includeMetadataChanges: !0,\n so: !0\n });\n return vs(t, s);\n }, [ 4 /*yield*/ , Au(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ r.sent(), t.asyncQueue, e, i, s ]) ];\n }\n }));\n }));\n })), s.promise;\n}\n\nvar xu = \n/**\n * Constructs a DatabaseInfo using the provided host, databaseId and\n * persistenceKey.\n *\n * @param databaseId - The database to use.\n * @param appId - The Firebase App Id.\n * @param persistenceKey - A unique identifier for this Firestore's local\n * storage (used in conjunction with the databaseId).\n * @param host - The Firestore backend host to connect to.\n * @param ssl - Whether to use SSL when connecting.\n * @param forceLongPolling - Whether to use the forceLongPolling option\n * when using WebChannel as the network transport.\n * @param autoDetectLongPolling - Whether to use the detectBufferingProxy\n * option when using WebChannel as the network transport.\n * @param useFetchStreams Whether to use the Fetch API instead of\n * XMLHTTPRequest\n */\nfunction(t, e, n, r, i, o, s, u) {\n this.databaseId = t, this.appId = e, this.persistenceKey = n, this.host = r, this.ssl = i, \n this.forceLongPolling = o, this.autoDetectLongPolling = s, this.useFetchStreams = u;\n}, Ru = /** @class */ function() {\n function t(t, e) {\n this.projectId = t, this.database = e || \"(default)\";\n }\n return Object.defineProperty(t.prototype, \"isDefaultDatabase\", {\n get: function() {\n return \"(default)\" === this.database;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.isEqual = function(e) {\n return e instanceof t && e.projectId === this.projectId && e.database === this.database;\n }, t;\n}(), Lu = new Map, Ou = function(t, e) {\n this.user = e, this.type = \"OAuth\", this.authHeaders = {}, \n // Set the headers using Object Literal notation to avoid minification\n this.authHeaders.Authorization = \"Bearer \" + t;\n}, Pu = /** @class */ function() {\n function t() {\n /**\n * Stores the listener registered with setChangeListener()\n * This isn't actually necessary since the UID never changes, but we use this\n * to verify the listen contract is adhered to in tests.\n */\n this.changeListener = null;\n }\n return t.prototype.getToken = function() {\n return Promise.resolve(null);\n }, t.prototype.invalidateToken = function() {}, t.prototype.setChangeListener = function(t, e) {\n this.changeListener = e, \n // Fire with initial user.\n t.enqueueRetryable((function() {\n return e(fo.UNAUTHENTICATED);\n }));\n }, t.prototype.removeChangeListener = function() {\n this.changeListener = null;\n }, t;\n}(), Fu = /** @class */ function() {\n function t(t) {\n this.token = t, \n /**\n * Stores the listener registered with setChangeListener()\n * This isn't actually necessary since the UID never changes, but we use this\n * to verify the listen contract is adhered to in tests.\n */\n this.changeListener = null;\n }\n return t.prototype.getToken = function() {\n return Promise.resolve(this.token);\n }, t.prototype.invalidateToken = function() {}, t.prototype.setChangeListener = function(t, e) {\n var n = this;\n this.changeListener = e, \n // Fire with initial user.\n t.enqueueRetryable((function() {\n return e(n.token.user);\n }));\n }, t.prototype.removeChangeListener = function() {\n this.changeListener = null;\n }, t;\n}(), Mu = /** @class */ function() {\n function t(t) {\n var e = this;\n /** Tracks the current User. */ this.currentUser = fo.UNAUTHENTICATED, \n /** Promise that allows blocking on the initialization of Firebase Auth. */\n this.oc = new br, \n /**\n * Counter used to detect if the token changed while a getToken request was\n * outstanding.\n */\n this.cc = 0, this.forceRefresh = !1, this.auth = null, this.asyncQueue = null, this.uc = function() {\n e.cc++, e.currentUser = e.ac(), e.oc.resolve(), e.changeListener && e.asyncQueue.enqueueRetryable((function() {\n return e.changeListener(e.currentUser);\n }));\n };\n var n = function(t) {\n C(\"FirebaseCredentialsProvider\", \"Auth detected\"), e.auth = t, e.auth.addAuthTokenListener(e.uc);\n };\n t.onInit((function(t) {\n return n(t);\n })), \n // Our users can initialize Auth right after Firestore, so we give it\n // a chance to register itself with the component framework before we\n // determine whether to start up in unauthenticated mode.\n setTimeout((function() {\n if (!e.auth) {\n var r = t.getImmediate({\n optional: !0\n });\n r ? n(r) : (\n // If auth is still not available, proceed with `null` user\n C(\"FirebaseCredentialsProvider\", \"Auth not yet detected\"), e.oc.resolve());\n }\n }), 0);\n }\n return t.prototype.getToken = function() {\n var t = this, e = this.cc, n = this.forceRefresh;\n // Take note of the current value of the tokenCounter so that this method\n // can fail (with an ABORTED error) if there is a token change while the\n // request is outstanding.\n return this.forceRefresh = !1, this.auth ? this.auth.getToken(n).then((function(n) {\n // Cancel the request since the token changed while the request was\n // outstanding so the response is potentially for a previous user (which\n // user, we can't be sure).\n return t.cc !== e ? (C(\"FirebaseCredentialsProvider\", \"getToken aborted due to token change.\"), \n t.getToken()) : n ? (P(\"string\" == typeof n.accessToken), new Ou(n.accessToken, t.currentUser)) : null;\n })) : Promise.resolve(null);\n }, t.prototype.invalidateToken = function() {\n this.forceRefresh = !0;\n }, t.prototype.setChangeListener = function(t, e) {\n var i = this;\n this.asyncQueue = t, \n // Blocks the AsyncQueue until the next user is available.\n this.asyncQueue.enqueueRetryable((function() {\n return n(i, void 0, void 0, (function() {\n return r(this, (function(t) {\n switch (t.label) {\n case 0:\n return [ 4 /*yield*/ , this.oc.promise ];\n\n case 1:\n return t.sent(), [ 4 /*yield*/ , e(this.currentUser) ];\n\n case 2:\n return t.sent(), this.changeListener = e, [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }, t.prototype.removeChangeListener = function() {\n this.auth && this.auth.removeAuthTokenListener(this.uc), this.changeListener = function() {\n return Promise.resolve();\n };\n }, \n // Auth.getUid() can return null even with a user logged in. It is because\n // getUid() is synchronous, but the auth code populating Uid is asynchronous.\n // This method should only be called in the AuthTokenListener callback\n // to guarantee to get the actual user.\n t.prototype.ac = function() {\n var t = this.auth && this.auth.getUid();\n return P(null === t || \"string\" == typeof t), new fo(t);\n }, t;\n}(), Vu = /** @class */ function() {\n function t(t, e, n) {\n this.hc = t, this.lc = e, this.fc = n, this.type = \"FirstParty\", this.user = fo.FIRST_PARTY;\n }\n return Object.defineProperty(t.prototype, \"authHeaders\", {\n get: function() {\n var t = {\n \"X-Goog-AuthUser\": this.lc\n }, e = this.hc.auth.getAuthHeaderValueForFirstParty([]);\n // Use array notation to prevent minification\n return e && (t.Authorization = e), this.fc && (t[\"X-Goog-Iam-Authorization-Token\"] = this.fc), \n t;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(), qu = /** @class */ function() {\n function t(t, e, n) {\n this.hc = t, this.lc = e, this.fc = n;\n }\n return t.prototype.getToken = function() {\n return Promise.resolve(new Vu(this.hc, this.lc, this.fc));\n }, t.prototype.setChangeListener = function(t, e) {\n // Fire with initial uid.\n t.enqueueRetryable((function() {\n return e(fo.FIRST_PARTY);\n }));\n }, t.prototype.removeChangeListener = function() {}, t.prototype.invalidateToken = function() {}, \n t;\n}();\n\n/** The default database name for a project. */\n/** Represents the database ID a Firestore client is associated with. */\n/**\n * Builds a CredentialsProvider depending on the type of\n * the credentials passed in.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nfunction Uu(t, e, n) {\n if (!n) throw new D(N.INVALID_ARGUMENT, \"Function \" + t + \"() cannot be called with an empty \" + e + \".\");\n}\n\nfunction Bu(t, e) {\n if (void 0 === e) return {\n merge: !1\n };\n if (void 0 !== e.mergeFields && void 0 !== e.merge) throw new D(N.INVALID_ARGUMENT, \"Invalid options passed to function \" + t + '(): You cannot specify both \"merge\" and \"mergeFields\".');\n return e;\n}\n\n/**\n * Validates that two boolean options are not set at the same time.\n */ function ju(t, e, n, r) {\n if (!0 === e && !0 === r) throw new D(N.INVALID_ARGUMENT, t + \" and \" + n + \" cannot be used together.\");\n}\n\n/**\n * Validates that `path` refers to a document (indicated by the fact it contains\n * an even numbers of segments).\n */ function Ku(t) {\n if (!ct.isDocumentKey(t)) throw new D(N.INVALID_ARGUMENT, \"Invalid document reference. Document references must have an even number of segments, but \" + t + \" has \" + t.length + \".\");\n}\n\n/**\n * Validates that `path` refers to a collection (indicated by the fact it\n * contains an odd numbers of segments).\n */ function Gu(t) {\n if (ct.isDocumentKey(t)) throw new D(N.INVALID_ARGUMENT, \"Invalid collection reference. Collection references must have an odd number of segments, but \" + t + \" has \" + t.length + \".\");\n}\n\n/**\n * Returns true if it's a non-null object without a custom prototype\n * (i.e. excludes Array, Date, etc.).\n */\n/** Returns a string describing the type / value of the provided input. */ function Qu(t) {\n if (void 0 === t) return \"undefined\";\n if (null === t) return \"null\";\n if (\"string\" == typeof t) return t.length > 20 && (t = t.substring(0, 20) + \"...\"), \n JSON.stringify(t);\n if (\"number\" == typeof t || \"boolean\" == typeof t) return \"\" + t;\n if (\"object\" == typeof t) {\n if (t instanceof Array) return \"an array\";\n var e = \n /** Hacky method to try to get the constructor name for an object. */\n function(t) {\n if (t.constructor) {\n var e = /function\\s+([^\\s(]+)\\s*\\(/.exec(t.constructor.toString());\n if (e && e.length > 1) return e[1];\n }\n return null;\n }(t);\n return e ? \"a custom \" + e + \" object\" : \"an object\";\n }\n return \"function\" == typeof t ? \"a function\" : O();\n}\n\nfunction zu(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n if (\"_delegate\" in t && (\n // Unwrap Compat types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t = t._delegate), !(t instanceof e)) {\n if (e.name === t.constructor.name) throw new D(N.INVALID_ARGUMENT, \"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?\");\n var n = Qu(t);\n throw new D(N.INVALID_ARGUMENT, \"Expected type '\" + e.name + \"', but it was: \" + n);\n }\n return t;\n}\n\nfunction Wu(t, e) {\n if (e <= 0) throw new D(N.INVALID_ARGUMENT, \"Function \" + t + \"() requires a positive number, but it was: \" + e + \".\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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// settings() defaults:\n/**\n * A concrete type describing all the values that can be applied via a\n * user-supplied `FirestoreSettings` object. This is a separate type so that\n * defaults can be supplied and the value can be checked for equality.\n */ var Hu = /** @class */ function() {\n function t(t) {\n var e;\n if (void 0 === t.host) {\n if (void 0 !== t.ssl) throw new D(N.INVALID_ARGUMENT, \"Can't provide ssl option if host option is not set\");\n this.host = \"firestore.googleapis.com\", this.ssl = !0;\n } else this.host = t.host, this.ssl = null === (e = t.ssl) || void 0 === e || e;\n if (this.credentials = t.credentials, this.ignoreUndefinedProperties = !!t.ignoreUndefinedProperties, \n void 0 === t.cacheSizeBytes) this.cacheSizeBytes = 41943040; else {\n if (-1 !== t.cacheSizeBytes && t.cacheSizeBytes < 1048576) throw new D(N.INVALID_ARGUMENT, \"cacheSizeBytes must be at least 1048576\");\n this.cacheSizeBytes = t.cacheSizeBytes;\n }\n this.experimentalForceLongPolling = !!t.experimentalForceLongPolling, this.experimentalAutoDetectLongPolling = !!t.experimentalAutoDetectLongPolling, \n this.useFetchStreams = !!t.useFetchStreams, ju(\"experimentalForceLongPolling\", t.experimentalForceLongPolling, \"experimentalAutoDetectLongPolling\", t.experimentalAutoDetectLongPolling);\n }\n return t.prototype.isEqual = function(t) {\n return this.host === t.host && this.ssl === t.ssl && this.credentials === t.credentials && this.cacheSizeBytes === t.cacheSizeBytes && this.experimentalForceLongPolling === t.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t.ignoreUndefinedProperties && this.useFetchStreams === t.useFetchStreams;\n }, t;\n}(), Yu = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n /**\n * Whether it's a Firestore or Firestore Lite instance.\n */\n this.type = \"firestore-lite\", this._persistenceKey = \"(lite)\", this._settings = new Hu({}), \n this._settingsFrozen = !1, t instanceof Ru ? (this._databaseId = t, this._credentials = new Pu) : (this._app = t, \n this._databaseId = function(t) {\n if (!Object.prototype.hasOwnProperty.apply(t.options, [ \"projectId\" ])) throw new D(N.INVALID_ARGUMENT, '\"projectId\" not provided in firebase.initializeApp.');\n return new Ru(t.options.projectId);\n }(t), this._credentials = new Mu(e));\n }\n return Object.defineProperty(t.prototype, \"app\", {\n /**\n * The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service\n * instance.\n */\n get: function() {\n if (!this._app) throw new D(N.FAILED_PRECONDITION, \"Firestore was not initialized using the Firebase SDK. 'app' is not available\");\n return this._app;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"_initialized\", {\n get: function() {\n return this._settingsFrozen;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"_terminated\", {\n get: function() {\n return void 0 !== this._terminateTask;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype._setSettings = function(t) {\n if (this._settingsFrozen) throw new D(N.FAILED_PRECONDITION, \"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.\");\n this._settings = new Hu(t), void 0 !== t.credentials && (this._credentials = function(t) {\n if (!t) return new Pu;\n switch (t.type) {\n case \"gapi\":\n var e = t.client;\n // Make sure this really is a Gapi client.\n return P(!(\"object\" != typeof e || null === e || !e.auth || !e.auth.getAuthHeaderValueForFirstParty)), \n new qu(e, t.sessionIndex || \"0\", t.iamToken || null);\n\n case \"provider\":\n return t.client;\n\n default:\n throw new D(N.INVALID_ARGUMENT, \"makeCredentialsProvider failed due to invalid credential type\");\n }\n }(t.credentials));\n }, t.prototype._getSettings = function() {\n return this._settings;\n }, t.prototype._freezeSettings = function() {\n return this._settingsFrozen = !0, this._settings;\n }, t.prototype._delete = function() {\n return this._terminateTask || (this._terminateTask = this._terminate()), this._terminateTask;\n }, \n /** Returns a JSON-serializable representation of this `Firestore` instance. */ t.prototype.toJSON = function() {\n return {\n app: this._app,\n databaseId: this._databaseId,\n settings: this._settings\n };\n }, \n /**\n * Terminates all components used by this client. Subclasses can override\n * this method to clean up their own dependencies, but must also call this\n * method.\n *\n * Only ever called once.\n */\n t.prototype._terminate = function() {\n /**\n * Removes all components associated with the provided instance. Must be called\n * when the `Firestore` instance is terminated.\n */\n return t = this, (e = Lu.get(t)) && (C(\"ComponentProvider\", \"Removing Datastore\"), \n Lu.delete(t), e.terminate()), Promise.resolve();\n var t, e;\n }, t;\n}(), $u = /** @class */ function() {\n /** @hideconstructor */\n function t(t, \n /**\n * If provided, the `FirestoreDataConverter` associated with this instance.\n */\n e, n) {\n this.converter = e, this._key = n, \n /** The type of this Firestore reference. */\n this.type = \"document\", this.firestore = t;\n }\n return Object.defineProperty(t.prototype, \"_path\", {\n get: function() {\n return this._key.path;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"id\", {\n /**\n * The document's identifier within its collection.\n */\n get: function() {\n return this._key.path.lastSegment();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"path\", {\n /**\n * A string representing the path of the referenced document (relative\n * to the root of the database).\n */\n get: function() {\n return this._key.path.canonicalString();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"parent\", {\n /**\n * The collection this `DocumentReference` belongs to.\n */\n get: function() {\n return new Ju(this.firestore, this.converter, this._key.path.popLast());\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.withConverter = function(e) {\n return new t(this.firestore, e, this._key);\n }, t;\n}(), Xu = /** @class */ function() {\n // This is the lite version of the Query class in the main SDK.\n /** @hideconstructor protected */\n function t(t, \n /**\n * If provided, the `FirestoreDataConverter` associated with this instance.\n */\n e, n) {\n this.converter = e, this._query = n, \n /** The type of this Firestore reference. */\n this.type = \"query\", this.firestore = t;\n }\n return t.prototype.withConverter = function(e) {\n return new t(this.firestore, e, this._query);\n }, t;\n}(), Ju = /** @class */ function(e) {\n /** @hideconstructor */\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this, t, n, Yt(r)) || this)._path = r, \n /** The type of this Firestore reference. */\n i.type = \"collection\", i;\n }\n return t(n, e), Object.defineProperty(n.prototype, \"id\", {\n /** The collection's identifier. */ get: function() {\n return this._query.path.lastSegment();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"path\", {\n /**\n * A string representing the path of the referenced collection (relative\n * to the root of the database).\n */\n get: function() {\n return this._query.path.canonicalString();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"parent\", {\n /**\n * A reference to the containing `DocumentReference` if this is a\n * subcollection. If this isn't a subcollection, the reference is null.\n */\n get: function() {\n var t = this._path.popLast();\n return t.isEmpty() ? null : new $u(this.firestore, \n /* converter= */ null, new ct(t));\n },\n enumerable: !1,\n configurable: !0\n }), n.prototype.withConverter = function(t) {\n return new n(this.firestore, t, this._path);\n }, n;\n}(Xu);\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * The Cloud Firestore service interface.\n *\n * Do not call this constructor directly. Instead, use {@link getFirestore}.\n */ function Zu(t, n) {\n for (var r, i = [], o = 2; o < arguments.length; o++) i[o - 2] = arguments[o];\n if (t = l(t), Uu(\"collection\", \"path\", n), t instanceof Yu) return Gu(r = H.fromString.apply(H, e([ n ], i))), \n new Ju(t, /* converter= */ null, r);\n if (!(t instanceof $u || t instanceof Ju)) throw new D(N.INVALID_ARGUMENT, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n return Gu(r = H.fromString.apply(H, e([ t.path ], i)).child(H.fromString(n))), new Ju(t.firestore, \n /* converter= */ null, r);\n}\n\n// TODO(firestorelite): Consider using ErrorFactory -\n// https://github.com/firebase/firebase-js-sdk/blob/0131e1f/packages/util/src/errors.ts#L106\n/**\n * Creates and returns a new `Query` instance that includes all documents in the\n * database that are contained in a collection or subcollection with the\n * given `collectionId`.\n *\n * @param firestore - A reference to the root `Firestore` instance.\n * @param collectionId - Identifies the collections to query over. Every\n * collection or subcollection with this ID as the last segment of its path\n * will be included. Cannot contain a slash.\n * @returns The created `Query`.\n */ function ta(t, n) {\n for (var r, i = [], o = 2; o < arguments.length; o++) i[o - 2] = arguments[o];\n if (t = l(t), \n // We allow omission of 'pathString' but explicitly prohibit passing in both\n // 'undefined' and 'null'.\n 1 === arguments.length && (n = V.u()), Uu(\"doc\", \"path\", n), t instanceof Yu) return Ku(r = H.fromString.apply(H, e([ n ], i))), \n new $u(t, \n /* converter= */ null, new ct(r));\n if (!(t instanceof $u || t instanceof Ju)) throw new D(N.INVALID_ARGUMENT, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n return Ku(r = t._path.child(H.fromString.apply(H, e([ n ], i)))), new $u(t.firestore, t instanceof Ju ? t.converter : null, new ct(r));\n}\n\n/**\n * Returns true if the provided references are equal.\n *\n * @param left - A reference to compare.\n * @param right - A reference to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */ function ea(t, e) {\n return t = l(t), e = l(e), (t instanceof $u || t instanceof Ju) && (e instanceof $u || e instanceof Ju) && t.firestore === e.firestore && t.path === e.path && t.converter === e.converter\n /**\n * Returns true if the provided queries point to the same collection and apply\n * the same constraints.\n *\n * @param left - A `Query` to compare.\n * @param right - A `Query` to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */;\n}\n\nfunction na(t, e) {\n return t = l(t), e = l(e), t instanceof Xu && e instanceof Xu && t.firestore === e.firestore && ie(t._query, e._query) && t.converter === e.converter\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nvar ra = /** @class */ function() {\n function t() {\n var t = this;\n // The last promise in the queue.\n this.dc = Promise.resolve(), \n // A list of retryable operations. Retryable operations are run in order and\n // retried with backoff.\n this.wc = [], \n // Is this AsyncQueue being shut down? Once it is set to true, it will not\n // be changed again.\n this._c = !1, \n // Operations scheduled to be queued in the future. Operations are\n // automatically removed after they are run or canceled.\n this.mc = [], \n // visible for testing\n this.yc = null, \n // Flag set while there's an outstanding AsyncQueue operation, used for\n // assertion sanity-checks.\n this.gc = !1, \n // Enabled during shutdown on Safari to prevent future access to IndexedDB.\n this.Ec = !1, \n // List of TimerIds to fast-forward delays for.\n this.Tc = [], \n // Backoff timer used to schedule retries for retryable operations\n this.Zi = new xo(this, \"async_queue_retry\" /* AsyncQueueRetry */), \n // Visibility handler that triggers an immediate retry of all retryable\n // operations. Meant to speed up recovery when we regain file system access\n // after page comes into foreground.\n this.Ic = function() {\n var e = ko();\n e && C(\"AsyncQueue\", \"Visibility state changed to \" + e.visibilityState), t.Zi.Gi();\n };\n var e = ko();\n e && \"function\" == typeof e.addEventListener && e.addEventListener(\"visibilitychange\", this.Ic);\n }\n return Object.defineProperty(t.prototype, \"isShuttingDown\", {\n get: function() {\n return this._c;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Adds a new operation to the queue without waiting for it to complete (i.e.\n * we ignore the Promise result).\n */\n t.prototype.enqueueAndForget = function(t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.enqueue(t);\n }, t.prototype.enqueueAndForgetEvenWhileRestricted = function(t) {\n this.Ac(), \n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.Rc(t);\n }, t.prototype.enterRestrictedMode = function(t) {\n if (!this._c) {\n this._c = !0, this.Ec = t || !1;\n var e = ko();\n e && \"function\" == typeof e.removeEventListener && e.removeEventListener(\"visibilitychange\", this.Ic);\n }\n }, t.prototype.enqueue = function(t) {\n var e = this;\n if (this.Ac(), this._c) \n // Return a Promise which never resolves.\n return new Promise((function() {}));\n // Create a deferred Promise that we can return to the callee. This\n // allows us to return a \"hanging Promise\" only to the callee and still\n // advance the queue even when the operation is not run.\n var n = new br;\n return this.Rc((function() {\n return e._c && e.Ec ? Promise.resolve() : (t().then(n.resolve, n.reject), n.promise);\n })).then((function() {\n return n.promise;\n }));\n }, t.prototype.enqueueRetryable = function(t) {\n var e = this;\n this.enqueueAndForget((function() {\n return e.wc.push(t), e.bc();\n }));\n }, \n /**\n * Runs the next operation from the retryable queue. If the operation fails,\n * reschedules with backoff.\n */\n t.prototype.bc = function() {\n return n(this, void 0, void 0, (function() {\n var t, e = this;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n if (0 === this.wc.length) return [ 3 /*break*/ , 5 ];\n n.label = 1;\n\n case 1:\n return n.trys.push([ 1, 3, , 4 ]), [ 4 /*yield*/ , this.wc[0]() ];\n\n case 2:\n return n.sent(), this.wc.shift(), this.Zi.reset(), [ 3 /*break*/ , 4 ];\n\n case 3:\n if (!Nr(t = n.sent())) throw t;\n // Failure will be handled by AsyncQueue\n return C(\"AsyncQueue\", \"Operation failed with retryable error: \" + t), \n [ 3 /*break*/ , 4 ];\n\n case 4:\n this.wc.length > 0 && \n // If there are additional operations, we re-schedule `retryNextOp()`.\n // This is necessary to run retryable operations that failed during\n // their initial attempt since we don't know whether they are already\n // enqueued. If, for example, `op1`, `op2`, `op3` are enqueued and `op1`\n // needs to be re-run, we will run `op1`, `op1`, `op2` using the\n // already enqueued calls to `retryNextOp()`. `op3()` will then run in the\n // call scheduled here.\n // Since `backoffAndRun()` cancels an existing backoff and schedules a\n // new backoff on every call, there is only ever a single additional\n // operation in the queue.\n this.Zi.ji((function() {\n return e.bc();\n })), n.label = 5;\n\n case 5:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, t.prototype.Rc = function(t) {\n var e = this, n = this.dc.then((function() {\n return e.gc = !0, t().catch((function(t) {\n // Re-throw the error so that this.tail becomes a rejected Promise and\n // all further attempts to chain (via .then) will just short-circuit\n // and return the rejected Promise.\n throw e.yc = t, e.gc = !1, x(\"INTERNAL UNHANDLED ERROR: \", \n /**\n * Chrome includes Error.message in Error.stack. Other browsers do not.\n * This returns expected output of message + stack when available.\n * @param error - Error or FirestoreError\n */\n function(t) {\n var e = t.message || \"\";\n return t.stack && (e = t.stack.includes(t.message) ? t.stack : t.message + \"\\n\" + t.stack), \n e;\n }(t)), t;\n })).then((function(t) {\n return e.gc = !1, t;\n }));\n }));\n return this.dc = n, n;\n }, t.prototype.enqueueAfterDelay = function(t, e, n) {\n var r = this;\n this.Ac(), \n // Fast-forward delays for timerIds that have been overriden.\n this.Tc.indexOf(t) > -1 && (e = 0);\n var i = cs.createAndSchedule(this, t, e, n, (function(t) {\n return r.vc(t);\n }));\n return this.mc.push(i), i;\n }, t.prototype.Ac = function() {\n this.yc && O();\n }, t.prototype.verifyOperationInProgress = function() {}, \n /**\n * Waits until all currently queued tasks are finished executing. Delayed\n * operations are not run.\n */\n t.prototype.Pc = function() {\n return n(this, void 0, void 0, (function() {\n var t;\n return r(this, (function(e) {\n switch (e.label) {\n case 0:\n return [ 4 /*yield*/ , t = this.dc ];\n\n case 1:\n e.sent(), e.label = 2;\n\n case 2:\n if (t !== this.dc) return [ 3 /*break*/ , 0 ];\n e.label = 3;\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, \n /**\n * For Tests: Determine if a delayed operation with a particular TimerId\n * exists.\n */\n t.prototype.Vc = function(t) {\n for (var e = 0, n = this.mc; e < n.length; e++) {\n if (n[e].timerId === t) return !0;\n }\n return !1;\n }, \n /**\n * For Tests: Runs some or all delayed operations early.\n *\n * @param lastTimerId - Delayed operations up to and including this TimerId\n * will be drained. Pass TimerId.All to run all delayed operations.\n * @returns a Promise that resolves once all operations have been run.\n */\n t.prototype.Sc = function(t) {\n var e = this;\n // Note that draining may generate more delayed ops, so we do that first.\n return this.Pc().then((function() {\n // Run ops in the same order they'd run if they ran naturally.\n e.mc.sort((function(t, e) {\n return t.targetTimeMs - e.targetTimeMs;\n }));\n for (var n = 0, r = e.mc; n < r.length; n++) {\n var i = r[n];\n if (i.skipDelay(), \"all\" /* All */ !== t && i.timerId === t) break;\n }\n return e.Pc();\n }));\n }, \n /**\n * For Tests: Skip all subsequent delays for a timer id.\n */\n t.prototype.Dc = function(t) {\n this.Tc.push(t);\n }, \n /** Called once a DelayedOperation is run or canceled. */ t.prototype.vc = function(t) {\n // NOTE: indexOf / slice are O(n), but delayedOperations is expected to be small.\n var e = this.mc.indexOf(t);\n this.mc.splice(e, 1);\n }, t;\n}();\n\nfunction ia(t) {\n /**\n * Returns true if obj is an object and contains at least one of the specified\n * methods.\n */\n return function(t, e) {\n if (\"object\" != typeof t || null === t) return !1;\n for (var n = t, r = 0, i = [ \"next\", \"error\", \"complete\" ]; r < i.length; r++) {\n var o = i[r];\n if (o in n && \"function\" == typeof n[o]) return !0;\n }\n return !1;\n }(t);\n}\n\nvar oa = /** @class */ function() {\n function t() {\n this._progressObserver = {}, this._taskCompletionResolver = new br, this._lastProgress = {\n taskState: \"Running\",\n totalBytes: 0,\n totalDocuments: 0,\n bytesLoaded: 0,\n documentsLoaded: 0\n }\n /**\n * Registers functions to listen to bundle loading progress events.\n * @param next - Called when there is a progress update from bundle loading. Typically `next` calls occur\n * each time a Firestore document is loaded from the bundle.\n * @param error - Called when an error occurs during bundle loading. The task aborts after reporting the\n * error, and there should be no more updates after this.\n * @param complete - Called when the loading task is complete.\n */;\n }\n return t.prototype.onProgress = function(t, e, n) {\n this._progressObserver = {\n next: t,\n error: e,\n complete: n\n };\n }, \n /**\n * Implements the `Promise.catch` interface.\n *\n * @param onRejected - Called when an error occurs during bundle loading.\n */\n t.prototype.catch = function(t) {\n return this._taskCompletionResolver.promise.catch(t);\n }, \n /**\n * Implements the `Promise.then` interface.\n *\n * @param onFulfilled - Called on the completion of the loading task with a final `LoadBundleTaskProgress` update.\n * The update will always have its `taskState` set to `\"Success\"`.\n * @param onRejected - Called when an error occurs during bundle loading.\n */\n t.prototype.then = function(t, e) {\n return this._taskCompletionResolver.promise.then(t, e);\n }, \n /**\n * Notifies all observers that bundle loading has completed, with a provided\n * `LoadBundleTaskProgress` object.\n *\n * @private\n */\n t.prototype._completeWith = function(t) {\n this._updateProgress(t), this._progressObserver.complete && this._progressObserver.complete(), \n this._taskCompletionResolver.resolve(t);\n }, \n /**\n * Notifies all observers that bundle loading has failed, with a provided\n * `Error` as the reason.\n *\n * @private\n */\n t.prototype._failWith = function(t) {\n this._lastProgress.taskState = \"Error\", this._progressObserver.next && this._progressObserver.next(this._lastProgress), \n this._progressObserver.error && this._progressObserver.error(t), this._taskCompletionResolver.reject(t);\n }, \n /**\n * Notifies a progress update of loading a bundle.\n * @param progress - The new progress.\n *\n * @private\n */\n t.prototype._updateProgress = function(t) {\n this._lastProgress = t, this._progressObserver.next && this._progressObserver.next(t);\n }, t;\n}(), sa = -1, ua = /** @class */ function(e) {\n /** @hideconstructor */\n function n(t, n) {\n var r = this;\n /**\n * Whether it's a {@link Firestore} or Firestore Lite instance.\n */\n return (r = e.call(this, t, n) || this).type = \"firestore\", r._queue = new ra, r._persistenceKey = \"name\" in t ? t.name : \"[DEFAULT]\", \n r;\n }\n return t(n, e), n.prototype._terminate = function() {\n return this._firestoreClient || \n // The client must be initialized to ensure that all subsequent API\n // usage throws an exception.\n ca(this), this._firestoreClient.terminate();\n }, n;\n}(Yu);\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** DOMException error code constants. */\n/**\n * @internal\n */\nfunction aa(t) {\n return t._firestoreClient || ca(t), t._firestoreClient.verifyNotTerminated(), t._firestoreClient;\n}\n\nfunction ca(t) {\n var e, n = t._freezeSettings(), r = function(t, e, n, r) {\n return new xu(t, e, n, r.host, r.ssl, r.experimentalForceLongPolling, r.experimentalAutoDetectLongPolling, r.useFetchStreams);\n }(t._databaseId, (null === (e = t._app) || void 0 === e ? void 0 : e.options.appId) || \"\", t._persistenceKey, n);\n t._firestoreClient = new wu(t._credentials, t._queue, r);\n}\n\n/**\n * Attempts to enable persistent storage, if possible.\n *\n * Must be called before any other functions (other than\n * {@link initializeFirestore}, {@link getFirestore} or\n * {@link clearIndexedDbPersistence}.\n *\n * If this fails, `enableIndexedDbPersistence()` will reject the promise it\n * returns. Note that even after this failure, the {@link Firestore} instance will\n * remain usable, however offline persistence will be disabled.\n *\n * There are several reasons why this can fail, which can be identified by\n * the `code` on the error.\n *\n * * failed-precondition: The app is already open in another browser tab.\n * * unimplemented: The browser is incompatible with the offline\n * persistence implementation.\n *\n * @param firestore - The {@link Firestore} instance to enable persistence for.\n * @param persistenceSettings - Optional settings object to configure\n * persistence.\n * @returns A `Promise` that represents successfully enabling persistent storage.\n */\n/**\n * Registers both the `OfflineComponentProvider` and `OnlineComponentProvider`.\n * If the operation fails with a recoverable error (see\n * `canRecoverFromIndexedDbError()` below), the returned Promise is rejected\n * but the client remains usable.\n */ function ha(t, e, i) {\n var o = this, s = new br;\n return t.asyncQueue.enqueue((function() {\n return n(o, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return r.trys.push([ 0, 3, , 4 ]), [ 4 /*yield*/ , bu(t, i) ];\n\n case 1:\n return r.sent(), [ 4 /*yield*/ , Iu(t, e) ];\n\n case 2:\n return r.sent(), s.resolve(), [ 3 /*break*/ , 4 ];\n\n case 3:\n if (!\n /**\n * Decides whether the provided error allows us to gracefully disable\n * persistence (as opposed to crashing the client).\n */\n function(t) {\n return \"FirebaseError\" === t.name ? t.code === N.FAILED_PRECONDITION || t.code === N.UNIMPLEMENTED : !(\"undefined\" != typeof DOMException && t instanceof DOMException) || (22 === t.code || 20 === t.code || \n // Firefox Private Browsing mode disables IndexedDb and returns\n // INVALID_STATE for any usage.\n 11 === t.code);\n }(n = r.sent())) throw n;\n return console.warn(\"Error enabling offline persistence. Falling back to persistence disabled: \" + n), \n s.reject(n), [ 3 /*break*/ , 4 ];\n\n case 4:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })).then((function() {\n return s.promise;\n }));\n}\n\n/**\n * Re-enables use of the network for this {@link Firestore} instance after a prior\n * call to {@link disableNetwork}.\n *\n * @returns A `Promise` that is resolved once the network has been enabled.\n */\nfunction fa(t) {\n if (t._initialized || t._terminated) throw new D(N.FAILED_PRECONDITION, \"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A `FieldPath` refers to a field in a document. The path may consist of a\n * single field name (referring to a top-level field in the document), or a\n * list of field names (referring to a nested field in the document).\n *\n * Create a `FieldPath` by providing field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n */ var la = /** @class */ function() {\n /**\n * Creates a `FieldPath` from the provided field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n *\n * @param fieldNames - A list of field names.\n */\n function t() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n for (var n = 0; n < t.length; ++n) if (0 === t[n].length) throw new D(N.INVALID_ARGUMENT, \"Invalid field name at argument $(i + 1). Field names must not be empty.\");\n this._internalPath = new $(t);\n }\n /**\n * Returns true if this `FieldPath` is equal to the provided one.\n *\n * @param other - The `FieldPath` to compare against.\n * @returns true if this `FieldPath` is equal to the provided one.\n */ return t.prototype.isEqual = function(t) {\n return this._internalPath.isEqual(t._internalPath);\n }, t;\n}(), da = /** @class */ function() {\n /** @hideconstructor */\n function t(t) {\n this._byteString = t;\n }\n /**\n * Creates a new `Bytes` object from the given Base64 string, converting it to\n * bytes.\n *\n * @param base64 - The Base64 string used to create the `Bytes` object.\n */ return t.fromBase64String = function(e) {\n try {\n return new t(J.fromBase64String(e));\n } catch (e) {\n throw new D(N.INVALID_ARGUMENT, \"Failed to construct data from Base64 string: \" + e);\n }\n }, \n /**\n * Creates a new `Bytes` object from the given Uint8Array.\n *\n * @param array - The Uint8Array used to create the `Bytes` object.\n */\n t.fromUint8Array = function(e) {\n return new t(J.fromUint8Array(e));\n }, \n /**\n * Returns the underlying bytes as a Base64-encoded string.\n *\n * @returns The Base64-encoded string created from the `Bytes` object.\n */\n t.prototype.toBase64 = function() {\n return this._byteString.toBase64();\n }, \n /**\n * Returns the underlying bytes in a new `Uint8Array`.\n *\n * @returns The Uint8Array created from the `Bytes` object.\n */\n t.prototype.toUint8Array = function() {\n return this._byteString.toUint8Array();\n }, \n /**\n * Returns a string representation of the `Bytes` object.\n *\n * @returns A string representation of the `Bytes` object.\n */\n t.prototype.toString = function() {\n return \"Bytes(base64: \" + this.toBase64() + \")\";\n }, \n /**\n * Returns true if this `Bytes` object is equal to the provided one.\n *\n * @param other - The `Bytes` object to compare against.\n * @returns true if this `Bytes` object is equal to the provided one.\n */\n t.prototype.isEqual = function(t) {\n return this._byteString.isEqual(t._byteString);\n }, t;\n}(), pa = \n/**\n * @param _methodName - The public API endpoint that returns this class.\n * @hideconstructor\n */\nfunction(t) {\n this._methodName = t;\n}, ya = /** @class */ function() {\n /**\n * Creates a new immutable `GeoPoint` object with the provided latitude and\n * longitude values.\n * @param latitude - The latitude as number between -90 and 90.\n * @param longitude - The longitude as number between -180 and 180.\n */\n function t(t, e) {\n if (!isFinite(t) || t < -90 || t > 90) throw new D(N.INVALID_ARGUMENT, \"Latitude must be a number between -90 and 90, but was: \" + t);\n if (!isFinite(e) || e < -180 || e > 180) throw new D(N.INVALID_ARGUMENT, \"Longitude must be a number between -180 and 180, but was: \" + e);\n this._lat = t, this._long = e;\n }\n return Object.defineProperty(t.prototype, \"latitude\", {\n /**\n * The latitude of this `GeoPoint` instance.\n */\n get: function() {\n return this._lat;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"longitude\", {\n /**\n * The longitude of this `GeoPoint` instance.\n */\n get: function() {\n return this._long;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Returns true if this `GeoPoint` is equal to the provided one.\n *\n * @param other - The `GeoPoint` to compare against.\n * @returns true if this `GeoPoint` is equal to the provided one.\n */\n t.prototype.isEqual = function(t) {\n return this._lat === t._lat && this._long === t._long;\n }, \n /** Returns a JSON-serializable representation of this GeoPoint. */ t.prototype.toJSON = function() {\n return {\n latitude: this._lat,\n longitude: this._long\n };\n }, \n /**\n * Actually private to JS consumers of our API, so this function is prefixed\n * with an underscore.\n */\n t.prototype._compareTo = function(t) {\n return q(this._lat, t._lat) || q(this._long, t._long);\n }, t;\n}(), va = /^__.*__$/, ma = /** @class */ function() {\n function t(t, e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n return t.prototype.toMutation = function(t, e) {\n return null !== this.fieldMask ? new Fe(t, this.data, this.fieldMask, e, this.fieldTransforms) : new Pe(t, this.data, e, this.fieldTransforms);\n }, t;\n}(), ga = /** @class */ function() {\n function t(t, \n // The fieldMask does not include document transforms.\n e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n return t.prototype.toMutation = function(t, e) {\n return new Fe(t, this.data, this.fieldMask, e, this.fieldTransforms);\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * An immutable object representing an array of bytes.\n */ function wa(t) {\n switch (t) {\n case 0 /* Set */ :\n // fall through\n case 2 /* MergeSet */ :\n // fall through\n case 1 /* Update */ :\n return !0;\n\n case 3 /* Argument */ :\n case 4 /* ArrayArgument */ :\n return !1;\n\n default:\n throw O();\n }\n}\n\n/** A \"context\" object passed around while parsing user data. */ var ba = /** @class */ function() {\n /**\n * Initializes a ParseContext with the given source and path.\n *\n * @param settings - The settings for the parser.\n * @param databaseId - The database ID of the Firestore instance.\n * @param serializer - The serializer to use to generate the Value proto.\n * @param ignoreUndefinedProperties - Whether to ignore undefined properties\n * rather than throw.\n * @param fieldTransforms - A mutable list of field transforms encountered\n * while parsing the data.\n * @param fieldMask - A mutable list of field paths encountered while parsing\n * the data.\n *\n * TODO(b/34871131): We don't support array paths right now, so path can be\n * null to indicate the context represents any location within an array (in\n * which case certain features will not work and errors will be somewhat\n * compromised).\n */\n function t(t, e, n, r, i, o) {\n this.settings = t, this.databaseId = e, this.R = n, this.ignoreUndefinedProperties = r, \n // Minor hack: If fieldTransforms is undefined, we assume this is an\n // external call and we need to validate the entire path.\n void 0 === i && this.Cc(), this.fieldTransforms = i || [], this.fieldMask = o || [];\n }\n return Object.defineProperty(t.prototype, \"path\", {\n get: function() {\n return this.settings.path;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"Nc\", {\n get: function() {\n return this.settings.Nc;\n },\n enumerable: !1,\n configurable: !0\n }), \n /** Returns a new context with the specified settings overwritten. */ t.prototype.xc = function(e) {\n return new t(Object.assign(Object.assign({}, this.settings), e), this.databaseId, this.R, this.ignoreUndefinedProperties, this.fieldTransforms, this.fieldMask);\n }, t.prototype.kc = function(t) {\n var e, n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), r = this.xc({\n path: n,\n Fc: !1\n });\n return r.$c(t), r;\n }, t.prototype.Oc = function(t) {\n var e, n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), r = this.xc({\n path: n,\n Fc: !1\n });\n return r.Cc(), r;\n }, t.prototype.Mc = function(t) {\n // TODO(b/34871131): We don't support array paths right now; so make path\n // undefined.\n return this.xc({\n path: void 0,\n Fc: !0\n });\n }, t.prototype.Lc = function(t) {\n return Ua(t, this.settings.methodName, this.settings.Bc || !1, this.path, this.settings.qc);\n }, \n /** Returns 'true' if 'fieldPath' was traversed when creating this context. */ t.prototype.contains = function(t) {\n return void 0 !== this.fieldMask.find((function(e) {\n return t.isPrefixOf(e);\n })) || void 0 !== this.fieldTransforms.find((function(e) {\n return t.isPrefixOf(e.field);\n }));\n }, t.prototype.Cc = function() {\n // TODO(b/34871131): Remove null check once we have proper paths for fields\n // within arrays.\n if (this.path) for (var t = 0; t < this.path.length; t++) this.$c(this.path.get(t));\n }, t.prototype.$c = function(t) {\n if (0 === t.length) throw this.Lc(\"Document fields must not be empty\");\n if (wa(this.Nc) && va.test(t)) throw this.Lc('Document fields cannot begin and end with \"__\"');\n }, t;\n}(), Ia = /** @class */ function() {\n function t(t, e, n) {\n this.databaseId = t, this.ignoreUndefinedProperties = e, this.R = n || Co(t)\n /** Creates a new top-level parse context. */;\n }\n return t.prototype.Uc = function(t, e, n, r) {\n return void 0 === r && (r = !1), new ba({\n Nc: t,\n methodName: e,\n qc: n,\n path: $.emptyPath(),\n Fc: !1,\n Bc: r\n }, this.databaseId, this.R, this.ignoreUndefinedProperties);\n }, t;\n}();\n\n/**\n * Helper for parsing raw user input (provided via the API) into internal model\n * classes.\n */ function Ta(t) {\n var e = t._freezeSettings(), n = Co(t._databaseId);\n return new Ia(t._databaseId, !!e.ignoreUndefinedProperties, n);\n}\n\n/** Parse document data from a set() call. */ function _a(t, e, n, r, i, o) {\n void 0 === o && (o = {});\n var s = t.Uc(o.merge || o.mergeFields ? 2 /* MergeSet */ : 0 /* Set */ , e, n, i);\n Fa(\"Data must be an object, but it was:\", s, r);\n var u, a, c = Oa(r, s);\n if (o.merge) u = new X(s.fieldMask), a = s.fieldTransforms; else if (o.mergeFields) {\n for (var h = [], f = 0, l = o.mergeFields; f < l.length; f++) {\n var d = Ma(e, l[f], n);\n if (!s.contains(d)) throw new D(N.INVALID_ARGUMENT, \"Field '\" + d + \"' is specified in your field mask but missing from your input data.\");\n Ba(h, d) || h.push(d);\n }\n u = new X(h), a = s.fieldTransforms.filter((function(t) {\n return u.covers(t.field);\n }));\n } else u = null, a = s.fieldTransforms;\n return new ma(new Et(c), u, a);\n}\n\nvar Ea = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(n, e), n.prototype._toFieldTransform = function(t) {\n if (2 /* MergeSet */ !== t.Nc) throw 1 /* Update */ === t.Nc ? t.Lc(this._methodName + \"() can only appear at the top level of your update data\") : t.Lc(this._methodName + \"() cannot be used with set() unless you pass {merge:true}\");\n // No transform to add for a delete, but we need to add it to our\n // fieldMask so it gets deleted.\n return t.fieldMask.push(t.path), null;\n }, n.prototype.isEqual = function(t) {\n return t instanceof n;\n }, n;\n}(pa);\n\n/**\n * Creates a child context for parsing SerializableFieldValues.\n *\n * This is different than calling `ParseContext.contextWith` because it keeps\n * the fieldTransforms and fieldMask separate.\n *\n * The created context has its `dataSource` set to `UserDataSource.Argument`.\n * Although these values are used with writes, any elements in these FieldValues\n * are not considered writes since they cannot contain any FieldValue sentinels,\n * etc.\n *\n * @param fieldValue - The sentinel FieldValue for which to create a child\n * context.\n * @param context - The parent context.\n * @param arrayElement - Whether or not the FieldValue has an array.\n */ function Sa(t, e, n) {\n return new ba({\n Nc: 3 /* Argument */ ,\n qc: e.settings.qc,\n methodName: t._methodName,\n Fc: n\n }, e.databaseId, e.R, e.ignoreUndefinedProperties);\n}\n\nvar Na = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(n, e), n.prototype._toFieldTransform = function(t) {\n return new Se(t.path, new me);\n }, n.prototype.isEqual = function(t) {\n return t instanceof n;\n }, n;\n}(pa), Da = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t) || this).Kc = n, r;\n }\n return t(n, e), n.prototype._toFieldTransform = function(t) {\n var e = Sa(this, t, \n /*array=*/ !0), n = this.Kc.map((function(t) {\n return La(t, e);\n })), r = new ge(n);\n return new Se(t.path, r);\n }, n.prototype.isEqual = function(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, n;\n}(pa), Aa = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t) || this).Kc = n, r;\n }\n return t(n, e), n.prototype._toFieldTransform = function(t) {\n var e = Sa(this, t, \n /*array=*/ !0), n = this.Kc.map((function(t) {\n return La(t, e);\n })), r = new be(n);\n return new Se(t.path, r);\n }, n.prototype.isEqual = function(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, n;\n}(pa), ka = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t) || this).Qc = n, r;\n }\n return t(n, e), n.prototype._toFieldTransform = function(t) {\n var e = new Te(t.R, le(t.R, this.Qc));\n return new Se(t.path, e);\n }, n.prototype.isEqual = function(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }, n;\n}(pa);\n\n/** Parse update data from an update() call. */ function Ca(t, e, n, r) {\n var i = t.Uc(1 /* Update */ , e, n);\n Fa(\"Data must be an object, but it was:\", i, r);\n var o = [], s = Et.empty();\n Q(r, (function(t, r) {\n var u = qa(e, t, n);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n r = l(r);\n var a = i.Oc(u);\n if (r instanceof Ea) \n // Add it to the field mask, but don't add anything to updateData.\n o.push(u); else {\n var c = La(r, a);\n null != c && (o.push(u), s.set(u, c));\n }\n }));\n var u = new X(o);\n return new ga(s, u, i.fieldTransforms);\n}\n\n/** Parse update data from a list of field/value arguments. */ function xa(t, e, n, r, i, o) {\n var s = t.Uc(1 /* Update */ , e, n), u = [ Ma(e, r, n) ], a = [ i ];\n if (o.length % 2 != 0) throw new D(N.INVALID_ARGUMENT, \"Function \" + e + \"() needs to be called with an even number of arguments that alternate between field names and values.\");\n for (var c = 0; c < o.length; c += 2) u.push(Ma(e, o[c])), a.push(o[c + 1]);\n // We iterate in reverse order to pick the last value for a field if the\n // user specified the field multiple times.\n for (var h = [], f = Et.empty(), d = u.length - 1; d >= 0; --d) if (!Ba(h, u[d])) {\n var p = u[d], y = a[d];\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n y = l(y);\n var v = s.Oc(p);\n if (y instanceof Ea) \n // Add it to the field mask, but don't add anything to updateData.\n h.push(p); else {\n var m = La(y, v);\n null != m && (h.push(p), f.set(p, m));\n }\n }\n var g = new X(h);\n return new ga(f, g, s.fieldTransforms);\n}\n\n/**\n * Parse a \"query value\" (e.g. value in a where filter or a value in a cursor\n * bound).\n *\n * @param allowArrays - Whether the query value is an array that may directly\n * contain additional arrays (e.g. the operand of an `in` query).\n */ function Ra(t, e, n, r) {\n return void 0 === r && (r = !1), La(n, t.Uc(r ? 4 /* ArrayArgument */ : 3 /* Argument */ , e));\n}\n\n/**\n * Parses user data to Protobuf Values.\n *\n * @param input - Data to be parsed.\n * @param context - A context object representing the current path being parsed,\n * the source of the data being parsed, etc.\n * @returns The parsed value, or null if the value was a FieldValue sentinel\n * that should not be included in the resulting parsed data.\n */ function La(t, e) {\n if (Pa(\n // Unwrap the API type from the Compat SDK. This will return the API type\n // from firestore-exp.\n t = l(t))) return Fa(\"Unsupported field value:\", e, t), Oa(t, e);\n if (t instanceof pa) \n // FieldValues usually parse into transforms (except FieldValue.delete())\n // in which case we do not want to include this field in our parsed data\n // (as doing so will overwrite the field directly prior to the transform\n // trying to transform it). So we don't add this location to\n // context.fieldMask and we return null as our parsing result.\n /**\n * \"Parses\" the provided FieldValueImpl, adding any necessary transforms to\n * context.fieldTransforms.\n */\n return function(t, e) {\n // Sentinels are only supported with writes, and not within arrays.\n if (!wa(e.Nc)) throw e.Lc(t._methodName + \"() can only be used with update() and set()\");\n if (!e.path) throw e.Lc(t._methodName + \"() is not currently supported inside arrays\");\n var n = t._toFieldTransform(e);\n n && e.fieldTransforms.push(n);\n }(t, e), null;\n if (void 0 === t && e.ignoreUndefinedProperties) \n // If the input is undefined it can never participate in the fieldMask, so\n // don't handle this below. If `ignoreUndefinedProperties` is false,\n // `parseScalarValue` will reject an undefined value.\n return null;\n if (\n // If context.path is null we are inside an array and we don't support\n // field mask paths more granular than the top-level array.\n e.path && e.fieldMask.push(e.path), t instanceof Array) {\n // TODO(b/34871131): Include the path containing the array in the error\n // message.\n // In the case of IN queries, the parsed data is an array (representing\n // the set of values to be included for the IN query) that may directly\n // contain additional arrays (each representing an individual field\n // value), so we disable this validation.\n if (e.settings.Fc && 4 /* ArrayArgument */ !== e.Nc) throw e.Lc(\"Nested arrays are not supported\");\n return function(t, e) {\n for (var n = [], r = 0, i = 0, o = t; i < o.length; i++) {\n var s = La(o[i], e.Mc(r));\n null == s && (\n // Just include nulls in the array for fields being replaced with a\n // sentinel.\n s = {\n nullValue: \"NULL_VALUE\"\n }), n.push(s), r++;\n }\n return {\n arrayValue: {\n values: n\n }\n };\n }(t, e);\n }\n return function(t, e) {\n if (null === (t = l(t))) return {\n nullValue: \"NULL_VALUE\"\n };\n if (\"number\" == typeof t) return le(e.R, t);\n if (\"boolean\" == typeof t) return {\n booleanValue: t\n };\n if (\"string\" == typeof t) return {\n stringValue: t\n };\n if (t instanceof Date) {\n var n = j.fromDate(t);\n return {\n timestampValue: In(e.R, n)\n };\n }\n if (t instanceof j) {\n // Firestore backend truncates precision down to microseconds. To ensure\n // offline mode works the same with regards to truncation, perform the\n // truncation immediately without waiting for the backend to do that.\n n = new j(t.seconds, 1e3 * Math.floor(t.nanoseconds / 1e3));\n return {\n timestampValue: In(e.R, n)\n };\n }\n if (t instanceof ya) return {\n geoPointValue: {\n latitude: t.latitude,\n longitude: t.longitude\n }\n };\n if (t instanceof da) return {\n bytesValue: Tn(e.R, t._byteString)\n };\n if (t instanceof $u) {\n n = e.databaseId;\n var r = t.firestore._databaseId;\n if (!r.isEqual(n)) throw e.Lc(\"Document reference is for database \" + r.projectId + \"/\" + r.database + \" but should be for database \" + n.projectId + \"/\" + n.database);\n return {\n referenceValue: Sn(t.firestore._databaseId || e.databaseId, t._key.path)\n };\n }\n throw e.Lc(\"Unsupported field value: \" + Qu(t));\n }(t, e);\n}\n\nfunction Oa(t, e) {\n var n = {};\n return z(t) ? \n // If we encounter an empty object, we explicitly add it to the update\n // mask to ensure that the server creates a map entry.\n e.path && e.path.length > 0 && e.fieldMask.push(e.path) : Q(t, (function(t, r) {\n var i = La(r, e.kc(t));\n null != i && (n[t] = i);\n })), {\n mapValue: {\n fields: n\n }\n };\n}\n\nfunction Pa(t) {\n return !(\"object\" != typeof t || null === t || t instanceof Array || t instanceof Date || t instanceof j || t instanceof ya || t instanceof da || t instanceof $u || t instanceof pa);\n}\n\nfunction Fa(t, e, n) {\n if (!Pa(n) || !function(t) {\n return \"object\" == typeof t && null !== t && (Object.getPrototypeOf(t) === Object.prototype || null === Object.getPrototypeOf(t));\n }(n)) {\n var r = Qu(n);\n throw \"an object\" === r ? e.Lc(t + \" a custom object\") : e.Lc(t + \" \" + r);\n }\n}\n\n/**\n * Helper that calls fromDotSeparatedString() but wraps any error thrown.\n */ function Ma(t, e, n) {\n if (\n // If required, replace the FieldPath Compat class with with the firestore-exp\n // FieldPath.\n (e = l(e)) instanceof la) return e._internalPath;\n if (\"string\" == typeof e) return qa(t, e);\n throw Ua(\"Field path arguments must be of type string or FieldPath.\", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n}\n\n/**\n * Matches any characters in a field path string that are reserved.\n */ var Va = new RegExp(\"[~\\\\*/\\\\[\\\\]]\");\n\n/**\n * Wraps fromDotSeparatedString with an error message about the method that\n * was thrown.\n * @param methodName - The publicly visible method name\n * @param path - The dot-separated string form of a field path which will be\n * split on dots.\n * @param targetDoc - The document against which the field path will be\n * evaluated.\n */ function qa(t, n, r) {\n if (n.search(Va) >= 0) throw Ua(\"Invalid field path (\" + n + \"). Paths must not contain '~', '*', '/', '[', or ']'\", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, r);\n try {\n return (new (la.bind.apply(la, e([ void 0 ], n.split(\".\")))))._internalPath;\n } catch (e) {\n throw Ua(\"Invalid field path (\" + n + \"). Paths must not be empty, begin with '.', end with '.', or contain '..'\", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, r);\n }\n}\n\nfunction Ua(t, e, n, r, i) {\n var o = r && !r.isEmpty(), s = void 0 !== i, u = \"Function \" + e + \"() called with invalid data\";\n n && (u += \" (via `toFirestore()`)\");\n var a = \"\";\n return (o || s) && (a += \" (found\", o && (a += \" in field \" + r), s && (a += \" in document \" + i), \n a += \")\"), new D(N.INVALID_ARGUMENT, (u += \". \") + t + a)\n /** Checks `haystack` if FieldPath `needle` is present. Runs in O(n). */;\n}\n\nfunction Ba(t, e) {\n return t.some((function(t) {\n return t.isEqual(e);\n }));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A `DocumentSnapshot` contains data read from a document in your Firestore\n * database. The data can be extracted with `.data()` or `.get()` to\n * get a specific field.\n *\n * For a `DocumentSnapshot` that points to a non-existing document, any data\n * access will return 'undefined'. You can use the `exists()` method to\n * explicitly verify a document's existence.\n */ var ja = /** @class */ function() {\n // Note: This class is stripped down version of the DocumentSnapshot in\n // the legacy SDK. The changes are:\n // - No support for SnapshotMetadata.\n // - No support for SnapshotOptions.\n /** @hideconstructor protected */\n function t(t, e, n, r, i) {\n this._firestore = t, this._userDataWriter = e, this._key = n, this._document = r, \n this._converter = i;\n }\n return Object.defineProperty(t.prototype, \"id\", {\n /** Property of the `DocumentSnapshot` that provides the document's ID. */ get: function() {\n return this._key.path.lastSegment();\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"ref\", {\n /**\n * The `DocumentReference` for the document included in the `DocumentSnapshot`.\n */\n get: function() {\n return new $u(this._firestore, this._converter, this._key);\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Signals whether or not the document at the snapshot's location exists.\n *\n * @returns true if the document exists.\n */\n t.prototype.exists = function() {\n return null !== this._document;\n }, \n /**\n * Retrieves all fields in the document as an `Object`. Returns `undefined` if\n * the document doesn't exist.\n *\n * @returns An `Object` containing all fields in the document or `undefined`\n * if the document doesn't exist.\n */\n t.prototype.data = function() {\n if (this._document) {\n if (this._converter) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n var t = new Ka(this._firestore, this._userDataWriter, this._key, this._document, \n /* converter= */ null);\n return this._converter.fromFirestore(t);\n }\n return this._userDataWriter.convertValue(this._document.data.value);\n }\n }, \n /**\n * Retrieves the field specified by `fieldPath`. Returns `undefined` if the\n * document or field doesn't exist.\n *\n * @param fieldPath - The path (for example 'foo' or 'foo.bar') to a specific\n * field.\n * @returns The data at the specified field location or undefined if no such\n * field exists in the document.\n */\n // We are using `any` here to avoid an explicit cast by our users.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t.prototype.get = function(t) {\n if (this._document) {\n var e = this._document.data.field(Ga(\"DocumentSnapshot.get\", t));\n if (null !== e) return this._userDataWriter.convertValue(e);\n }\n }, t;\n}(), Ka = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n /**\n * Retrieves all fields in the document as an `Object`.\n *\n * @override\n * @returns An `Object` containing all fields in the document.\n */ return t(n, e), n.prototype.data = function() {\n return e.prototype.data.call(this);\n }, n;\n}(ja);\n\n/**\n * A `QueryDocumentSnapshot` contains data read from a document in your\n * Firestore database as part of a query. The document is guaranteed to exist\n * and its data can be extracted with `.data()` or `.get()` to get a\n * specific field.\n *\n * A `QueryDocumentSnapshot` offers the same API surface as a\n * `DocumentSnapshot`. Since query results contain only existing documents, the\n * `exists` property will always be true and `data()` will never return\n * 'undefined'.\n */\n/**\n * Helper that calls `fromDotSeparatedString()` but wraps any error thrown.\n */\nfunction Ga(t, e) {\n return \"string\" == typeof e ? qa(t, e) : e instanceof la ? e._internalPath : e._delegate._internalPath;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Metadata about a snapshot, describing the state of the snapshot.\n */ var Qa = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n this.hasPendingWrites = t, this.fromCache = e\n /**\n * Returns true if this `SnapshotMetadata` is equal to the provided one.\n *\n * @param other - The `SnapshotMetadata` to compare against.\n * @returns true if this `SnapshotMetadata` is equal to the provided one.\n */;\n }\n return t.prototype.isEqual = function(t) {\n return this.hasPendingWrites === t.hasPendingWrites && this.fromCache === t.fromCache;\n }, t;\n}(), za = /** @class */ function(e) {\n /** @hideconstructor protected */\n function n(t, n, r, i, o, s) {\n var u = this;\n return (u = e.call(this, t, n, r, i, s) || this)._firestore = t, u._firestoreImpl = t, \n u.metadata = o, u;\n }\n /**\n * Property of the `DocumentSnapshot` that signals whether or not the data\n * exists. True if the document exists.\n */ return t(n, e), n.prototype.exists = function() {\n return e.prototype.exists.call(this);\n }, \n /**\n * Retrieves all fields in the document as an `Object`. Returns `undefined` if\n * the document doesn't exist.\n *\n * By default, `FieldValue.serverTimestamp()` values that have not yet been\n * set to their final value will be returned as `null`. You can override\n * this by passing an options object.\n *\n * @param options - An options object to configure how data is retrieved from\n * the snapshot (for example the desired behavior for server timestamps that\n * have not yet been set to their final value).\n * @returns An `Object` containing all fields in the document or `undefined` if\n * the document doesn't exist.\n */\n n.prototype.data = function(t) {\n if (void 0 === t && (t = {}), this._document) {\n if (this._converter) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n var e = new Wa(this._firestore, this._userDataWriter, this._key, this._document, this.metadata, \n /* converter= */ null);\n return this._converter.fromFirestore(e, t);\n }\n return this._userDataWriter.convertValue(this._document.data.value, t.serverTimestamps);\n }\n }, \n /**\n * Retrieves the field specified by `fieldPath`. Returns `undefined` if the\n * document or field doesn't exist.\n *\n * By default, a `FieldValue.serverTimestamp()` that has not yet been set to\n * its final value will be returned as `null`. You can override this by\n * passing an options object.\n *\n * @param fieldPath - The path (for example 'foo' or 'foo.bar') to a specific\n * field.\n * @param options - An options object to configure how the field is retrieved\n * from the snapshot (for example the desired behavior for server timestamps\n * that have not yet been set to their final value).\n * @returns The data at the specified field location or undefined if no such\n * field exists in the document.\n */\n // We are using `any` here to avoid an explicit cast by our users.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n n.prototype.get = function(t, e) {\n if (void 0 === e && (e = {}), this._document) {\n var n = this._document.data.field(Ga(\"DocumentSnapshot.get\", t));\n if (null !== n) return this._userDataWriter.convertValue(n, e.serverTimestamps);\n }\n }, n;\n}(ja), Wa = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n /**\n * Retrieves all fields in the document as an `Object`.\n *\n * By default, `FieldValue.serverTimestamp()` values that have not yet been\n * set to their final value will be returned as `null`. You can override\n * this by passing an options object.\n *\n * @override\n * @param options - An options object to configure how data is retrieved from\n * the snapshot (for example the desired behavior for server timestamps that\n * have not yet been set to their final value).\n * @returns An `Object` containing all fields in the document.\n */ return t(n, e), n.prototype.data = function(t) {\n return void 0 === t && (t = {}), e.prototype.data.call(this, t);\n }, n;\n}(za), Ha = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e, n, r) {\n this._firestore = t, this._userDataWriter = e, this._snapshot = r, this.metadata = new Qa(r.hasPendingWrites, r.fromCache), \n this.query = n;\n }\n return Object.defineProperty(t.prototype, \"docs\", {\n /** An array of all the documents in the `QuerySnapshot`. */ get: function() {\n var t = [];\n return this.forEach((function(e) {\n return t.push(e);\n })), t;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"size\", {\n /** The number of documents in the `QuerySnapshot`. */ get: function() {\n return this._snapshot.docs.size;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"empty\", {\n /** True if there are no documents in the `QuerySnapshot`. */ get: function() {\n return 0 === this.size;\n },\n enumerable: !1,\n configurable: !0\n }), \n /**\n * Enumerates all of the documents in the `QuerySnapshot`.\n *\n * @param callback - A callback to be called with a `QueryDocumentSnapshot` for\n * each document in the snapshot.\n * @param thisArg - The `this` binding for the callback.\n */\n t.prototype.forEach = function(t, e) {\n var n = this;\n this._snapshot.docs.forEach((function(r) {\n t.call(e, new Wa(n._firestore, n._userDataWriter, r.key, r, new Qa(n._snapshot.mutatedKeys.has(r.key), n._snapshot.fromCache), n.query.converter));\n }));\n }, \n /**\n * Returns an array of the documents changes since the last snapshot. If this\n * is the first snapshot, all documents will be in the list as 'added'\n * changes.\n *\n * @param options - `SnapshotListenOptions` that control whether metadata-only\n * changes (i.e. only `DocumentSnapshot.metadata` changed) should trigger\n * snapshot events.\n */\n t.prototype.docChanges = function(t) {\n void 0 === t && (t = {});\n var e = !!t.includeMetadataChanges;\n if (e && this._snapshot.excludesMetadataChanges) throw new D(N.INVALID_ARGUMENT, \"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().\");\n return this._cachedChanges && this._cachedChangesIncludeMetadataChanges === e || (this._cachedChanges = \n /** Calculates the array of `DocumentChange`s for a given `ViewSnapshot`. */\n function(t, e) {\n if (t._snapshot.oldDocs.isEmpty()) {\n var n = 0;\n return t._snapshot.docChanges.map((function(e) {\n return {\n type: \"added\",\n doc: new Wa(t._firestore, t._userDataWriter, e.doc.key, e.doc, new Qa(t._snapshot.mutatedKeys.has(e.doc.key), t._snapshot.fromCache), t.query.converter),\n oldIndex: -1,\n newIndex: n++\n };\n }));\n }\n // A `DocumentSet` that is updated incrementally as changes are applied to use\n // to lookup the index of a document.\n var r = t._snapshot.oldDocs;\n return t._snapshot.docChanges.filter((function(t) {\n return e || 3 /* Metadata */ !== t.type;\n })).map((function(e) {\n var n = new Wa(t._firestore, t._userDataWriter, e.doc.key, e.doc, new Qa(t._snapshot.mutatedKeys.has(e.doc.key), t._snapshot.fromCache), t.query.converter), i = -1, o = -1;\n return 0 /* Added */ !== e.type && (i = r.indexOf(e.doc.key), r = r.delete(e.doc.key)), \n 1 /* Removed */ !== e.type && (o = (r = r.add(e.doc)).indexOf(e.doc.key)), {\n type: Ya(e.type),\n doc: n,\n oldIndex: i,\n newIndex: o\n };\n }));\n }(this, e), this._cachedChangesIncludeMetadataChanges = e), this._cachedChanges;\n }, t;\n}();\n\n/**\n * A `DocumentSnapshot` contains data read from a document in your Firestore\n * database. The data can be extracted with `.data()` or `.get()` to\n * get a specific field.\n *\n * For a `DocumentSnapshot` that points to a non-existing document, any data\n * access will return 'undefined'. You can use the `exists()` method to\n * explicitly verify a document's existence.\n */ function Ya(t) {\n switch (t) {\n case 0 /* Added */ :\n return \"added\";\n\n case 2 /* Modified */ :\n case 3 /* Metadata */ :\n return \"modified\";\n\n case 1 /* Removed */ :\n return \"removed\";\n\n default:\n return O();\n }\n}\n\n// TODO(firestoreexp): Add tests for snapshotEqual with different snapshot\n// metadata\n/**\n * Returns true if the provided snapshots are equal.\n *\n * @param left - A snapshot to compare.\n * @param right - A snapshot to compare.\n * @returns true if the snapshots are equal.\n */ function $a(t, e) {\n return t instanceof za && e instanceof za ? t._firestore === e._firestore && t._key.isEqual(e._key) && (null === t._document ? null === e._document : t._document.isEqual(e._document)) && t._converter === e._converter : t instanceof Ha && e instanceof Ha && t._firestore === e._firestore && na(t.query, e.query) && t.metadata.isEqual(e.metadata) && t._snapshot.isEqual(e._snapshot);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */ function Xa(t) {\n if (Xt(t) && 0 === t.explicitOrderBy.length) throw new D(N.UNIMPLEMENTED, \"limitToLast() queries require specifying at least one orderBy() clause\");\n}\n\n/**\n * A `QueryConstraint` is used to narrow the set of documents returned by a\n * Firestore query. `QueryConstraint`s are created by invoking {@link where},\n * {@link orderBy}, {@link (startAt:1)}, {@link (startAfter:1)}, {@link\n * endBefore:1}, {@link (endAt:1)}, {@link limit} or {@link limitToLast} and\n * can then be passed to {@link query} to create a new query instance that\n * also contains this `QueryConstraint`.\n */ var Ja = function() {};\n\n/**\n * Creates a new immutable instance of {@link Query} that is extended to also include\n * additional query constraints.\n *\n * @param query - The {@link Query} instance to use as a base for the new constraints.\n * @param queryConstraints - The list of {@link QueryConstraint}s to apply.\n * @throws if any of the provided query constraints cannot be combined with the\n * existing or new constraints.\n */ function Za(t) {\n for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];\n for (var r = 0, i = e; r < i.length; r++) {\n var o = i[r];\n t = o._apply(t);\n }\n return t;\n}\n\nvar tc = /** @class */ function(e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).jc = t, i.Wc = n, i.Gc = r, i.type = \"where\", \n i;\n }\n return t(n, e), n.prototype._apply = function(t) {\n var e = Ta(t.firestore), n = function(t, e, n, r, i, o, s) {\n var u;\n if (i.isKeyField()) {\n if (\"array-contains\" /* ARRAY_CONTAINS */ === o || \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ === o) throw new D(N.INVALID_ARGUMENT, \"Invalid Query. You can't perform '\" + o + \"' queries on FieldPath.documentId().\");\n if (\"in\" /* IN */ === o || \"not-in\" /* NOT_IN */ === o) {\n uc(s, o);\n for (var a = [], c = 0, h = s; c < h.length; c++) {\n var f = h[c];\n a.push(sc(r, t, f));\n }\n u = {\n arrayValue: {\n values: a\n }\n };\n } else u = sc(r, t, s);\n } else \"in\" /* IN */ !== o && \"not-in\" /* NOT_IN */ !== o && \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ !== o || uc(s, o), \n u = Ra(n, \"where\", s, \n /* allowArrays= */ \"in\" /* IN */ === o || \"not-in\" /* NOT_IN */ === o);\n var l = Rt.create(i, o, u);\n return function(t, e) {\n if (e.g()) {\n var n = Zt(t);\n if (null !== n && !n.isEqual(e.field)) throw new D(N.INVALID_ARGUMENT, \"Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '\" + n.toString() + \"' and '\" + e.field.toString() + \"'\");\n var r = Jt(t);\n null !== r && ac(t, e.field, r);\n }\n var i = function(t, e) {\n for (var n = 0, r = t.filters; n < r.length; n++) {\n var i = r[n];\n if (e.indexOf(i.op) >= 0) return i.op;\n }\n return null;\n }(t, \n /**\n * Given an operator, returns the set of operators that cannot be used with it.\n *\n * Operators in a query must adhere to the following set of rules:\n * 1. Only one array operator is allowed.\n * 2. Only one disjunctive operator is allowed.\n * 3. `NOT_EQUAL` cannot be used with another `NOT_EQUAL` operator.\n * 4. `NOT_IN` cannot be used with array, disjunctive, or `NOT_EQUAL` operators.\n *\n * Array operators: `ARRAY_CONTAINS`, `ARRAY_CONTAINS_ANY`\n * Disjunctive operators: `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`\n */\n function(t) {\n switch (t) {\n case \"!=\" /* NOT_EQUAL */ :\n return [ \"!=\" /* NOT_EQUAL */ , \"not-in\" /* NOT_IN */ ];\n\n case \"array-contains\" /* ARRAY_CONTAINS */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"not-in\" /* NOT_IN */ ];\n\n case \"in\" /* IN */ :\n return [ \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ ];\n\n case \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ ];\n\n case \"not-in\" /* NOT_IN */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ , \"!=\" /* NOT_EQUAL */ ];\n\n default:\n return [];\n }\n }(e.op));\n if (null !== i) \n // Special case when it's a duplicate op to give a slightly clearer error message.\n throw i === e.op ? new D(N.INVALID_ARGUMENT, \"Invalid query. You cannot use more than one '\" + e.op.toString() + \"' filter.\") : new D(N.INVALID_ARGUMENT, \"Invalid query. You cannot use '\" + e.op.toString() + \"' filters with '\" + i.toString() + \"' filters.\");\n }(t, l), l;\n }(t._query, 0, e, t.firestore._databaseId, this.jc, this.Wc, this.Gc);\n return new Xu(t.firestore, t.converter, function(t, e) {\n var n = t.filters.concat([ e ]);\n return new Wt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), n, t.limit, t.limitType, t.startAt, t.endAt);\n }(t._query, n));\n }, n;\n}(Ja), ec = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this) || this).jc = t, r.zc = n, r.type = \"orderBy\", r;\n }\n return t(n, e), n.prototype._apply = function(t) {\n var e = function(t, e, n) {\n if (null !== t.startAt) throw new D(N.INVALID_ARGUMENT, \"Invalid query. You must not call startAt() or startAfter() before calling orderBy().\");\n if (null !== t.endAt) throw new D(N.INVALID_ARGUMENT, \"Invalid query. You must not call endAt() or endBefore() before calling orderBy().\");\n var r = new Kt(e, n);\n return function(t, e) {\n if (null === Jt(t)) {\n // This is the first order by. It must match any inequality.\n var n = Zt(t);\n null !== n && ac(t, n, e.field);\n }\n }(t, r), r;\n }(t._query, this.jc, this.zc);\n return new Xu(t.firestore, t.converter, function(t, e) {\n // TODO(dimond): validate that orderBy does not list the same key twice.\n var n = t.explicitOrderBy.concat([ e ]);\n return new Wt(t.path, t.collectionGroup, n, t.filters.slice(), t.limit, t.limitType, t.startAt, t.endAt);\n }(t._query, e));\n }, n;\n}(Ja), nc = /** @class */ function(e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).type = t, i.Hc = n, i.Jc = r, i;\n }\n return t(n, e), n.prototype._apply = function(t) {\n return new Xu(t.firestore, t.converter, re(t._query, this.Hc, this.Jc));\n }, n;\n}(Ja), rc = /** @class */ function(e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).type = t, i.Yc = n, i.Xc = r, i;\n }\n return t(n, e), n.prototype._apply = function(t) {\n var e = oc(t, this.type, this.Yc, this.Xc);\n return new Xu(t.firestore, t.converter, function(t, e) {\n return new Wt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, e, t.endAt);\n }(t._query, e));\n }, n;\n}(Ja), ic = /** @class */ function(e) {\n function n(t, n, r) {\n var i = this;\n return (i = e.call(this) || this).type = t, i.Yc = n, i.Xc = r, i;\n }\n return t(n, e), n.prototype._apply = function(t) {\n var e = oc(t, this.type, this.Yc, this.Xc);\n return new Xu(t.firestore, t.converter, function(t, e) {\n return new Wt(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, t.startAt, e);\n }(t._query, e));\n }, n;\n}(Ja);\n\n/**\n * Creates a {@link QueryConstraint} that enforces that documents must contain the\n * specified field and that the value should satisfy the relation constraint\n * provided.\n *\n * @param fieldPath - The path to compare\n * @param opStr - The operation string (e.g \"<\", \"<=\", \"==\", \"<\",\n * \"<=\", \"!=\").\n * @param value - The value for comparison\n * @returns The created {@link Query}.\n */\n/** Helper function to create a bound from a document or fields */\nfunction oc(t, e, n, r) {\n if (n[0] = l(n[0]), n[0] instanceof ja) return function(t, e, n, r, i) {\n if (!r) throw new D(N.NOT_FOUND, \"Can't use a DocumentSnapshot that doesn't exist for \" + n + \"().\");\n // Because people expect to continue/end a query at the exact document\n // provided, we need to use the implicit sort order rather than the explicit\n // sort order, because it's guaranteed to contain the document key. That way\n // the position becomes unambiguous and the query continues/ends exactly at\n // the provided document. Without the key (by using the explicit sort\n // orders), multiple documents could match the position, yielding duplicate\n // results.\n for (var o = [], s = 0, u = ee(t); s < u.length; s++) {\n var a = u[s];\n if (a.field.isKeyField()) o.push(mt(e, r.key)); else {\n var c = r.data.field(a.field);\n if (rt(c)) throw new D(N.INVALID_ARGUMENT, 'Invalid query. You are trying to start or end a query using a document for which the field \"' + a.field + '\" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');\n if (null === c) {\n var h = a.field.canonicalString();\n throw new D(N.INVALID_ARGUMENT, \"Invalid query. You are trying to start or end a query using a document for which the field '\" + h + \"' (used as the orderBy) does not exist.\");\n }\n o.push(c);\n }\n }\n return new Bt(o, i);\n }(t._query, t.firestore._databaseId, e, n[0]._document, r);\n var i = Ta(t.firestore);\n return function(t, e, n, r, i, o) {\n // Use explicit order by's because it has to match the query the user made\n var s = t.explicitOrderBy;\n if (i.length > s.length) throw new D(N.INVALID_ARGUMENT, \"Too many arguments provided to \" + r + \"(). The number of arguments must be less than or equal to the number of orderBy() clauses\");\n for (var u = [], a = 0; a < i.length; a++) {\n var c = i[a];\n if (s[a].field.isKeyField()) {\n if (\"string\" != typeof c) throw new D(N.INVALID_ARGUMENT, \"Invalid query. Expected a string for document ID in \" + r + \"(), but got a \" + typeof c);\n if (!te(t) && -1 !== c.indexOf(\"/\")) throw new D(N.INVALID_ARGUMENT, \"Invalid query. When querying a collection and ordering by FieldPath.documentId(), the value passed to \" + r + \"() must be a plain document ID, but '\" + c + \"' contains a slash.\");\n var h = t.path.child(H.fromString(c));\n if (!ct.isDocumentKey(h)) throw new D(N.INVALID_ARGUMENT, \"Invalid query. When querying a collection group and ordering by FieldPath.documentId(), the value passed to \" + r + \"() must result in a valid document path, but '\" + h + \"' is not because it contains an odd number of segments.\");\n var f = new ct(h);\n u.push(mt(e, f));\n } else {\n var l = Ra(n, r, c);\n u.push(l);\n }\n }\n return new Bt(u, o);\n }(t._query, t.firestore._databaseId, i, e, n, r);\n}\n\nfunction sc(t, e, n) {\n if (\"string\" == typeof (n = l(n))) {\n if (\"\" === n) throw new D(N.INVALID_ARGUMENT, \"Invalid query. When querying with FieldPath.documentId(), you must provide a valid document ID, but it was an empty string.\");\n if (!te(e) && -1 !== n.indexOf(\"/\")) throw new D(N.INVALID_ARGUMENT, \"Invalid query. When querying a collection by FieldPath.documentId(), you must provide a plain document ID, but '\" + n + \"' contains a '/' character.\");\n var r = e.path.child(H.fromString(n));\n if (!ct.isDocumentKey(r)) throw new D(N.INVALID_ARGUMENT, \"Invalid query. When querying a collection group by FieldPath.documentId(), the value provided must result in a valid document path, but '\" + r + \"' is not because it has an odd number of segments (\" + r.length + \").\");\n return mt(t, new ct(r));\n }\n if (n instanceof $u) return mt(t, n._key);\n throw new D(N.INVALID_ARGUMENT, \"Invalid query. When querying with FieldPath.documentId(), you must provide a valid string or a DocumentReference, but it was: \" + Qu(n) + \".\");\n}\n\n/**\n * Validates that the value passed into a disjunctive filter satisfies all\n * array requirements.\n */ function uc(t, e) {\n if (!Array.isArray(t) || 0 === t.length) throw new D(N.INVALID_ARGUMENT, \"Invalid Query. A non-empty array is required for '\" + e.toString() + \"' filters.\");\n if (t.length > 10) throw new D(N.INVALID_ARGUMENT, \"Invalid Query. '\" + e.toString() + \"' filters support a maximum of 10 elements in the value array.\");\n}\n\nfunction ac(t, e, n) {\n if (!n.isEqual(e)) throw new D(N.INVALID_ARGUMENT, \"Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '\" + e.toString() + \"' and so you must also use '\" + e.toString() + \"' as your first argument to orderBy(), but your first orderBy() is on field '\" + n.toString() + \"' instead.\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Converts Firestore's internal types to the JavaScript types that we expose\n * to the user.\n *\n * @internal\n */ var cc = /** @class */ function() {\n function t() {}\n return t.prototype.convertValue = function(t, e) {\n switch (void 0 === e && (e = \"none\"), ht(t)) {\n case 0 /* NullValue */ :\n return null;\n\n case 1 /* BooleanValue */ :\n return t.booleanValue;\n\n case 2 /* NumberValue */ :\n return et(t.integerValue || t.doubleValue);\n\n case 3 /* TimestampValue */ :\n return this.convertTimestamp(t.timestampValue);\n\n case 4 /* ServerTimestampValue */ :\n return this.convertServerTimestamp(t, e);\n\n case 5 /* StringValue */ :\n return t.stringValue;\n\n case 6 /* BlobValue */ :\n return this.convertBytes(nt(t.bytesValue));\n\n case 7 /* RefValue */ :\n return this.convertReference(t.referenceValue);\n\n case 8 /* GeoPointValue */ :\n return this.convertGeoPoint(t.geoPointValue);\n\n case 9 /* ArrayValue */ :\n return this.convertArray(t.arrayValue, e);\n\n case 10 /* ObjectValue */ :\n return this.convertObject(t.mapValue, e);\n\n default:\n throw O();\n }\n }, t.prototype.convertObject = function(t, e) {\n var n = this, r = {};\n return Q(t.fields, (function(t, i) {\n r[t] = n.convertValue(i, e);\n })), r;\n }, t.prototype.convertGeoPoint = function(t) {\n return new ya(et(t.latitude), et(t.longitude));\n }, t.prototype.convertArray = function(t, e) {\n var n = this;\n return (t.values || []).map((function(t) {\n return n.convertValue(t, e);\n }));\n }, t.prototype.convertServerTimestamp = function(t, e) {\n switch (e) {\n case \"previous\":\n var n = it(t);\n return null == n ? null : this.convertValue(n, e);\n\n case \"estimate\":\n return this.convertTimestamp(ot(t));\n\n default:\n return null;\n }\n }, t.prototype.convertTimestamp = function(t) {\n var e = tt(t);\n return new j(e.seconds, e.nanos);\n }, t.prototype.convertDocumentKey = function(t, e) {\n var n = H.fromString(t);\n P($n(n));\n var r = new Ru(n.get(1), n.get(3)), i = new ct(n.popFirst(5));\n return r.isEqual(e) || \n // TODO(b/64130202): Somehow support foreign references.\n x(\"Document \" + i + \" contains a document reference within a different database (\" + r.projectId + \"/\" + r.database + \") which is not supported. It will be treated as a reference in the current database (\" + e.projectId + \"/\" + e.database + \") instead.\"), \n i;\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Converts custom model object of type T into `DocumentData` by applying the\n * converter if it exists.\n *\n * This function is used when converting user objects to `DocumentData`\n * because we want to provide the user with a more specific error message if\n * their `set()` or fails due to invalid data originating from a `toFirestore()`\n * call.\n */ function hc(t, e, n) {\n // Cast to `any` in order to satisfy the union type constraint on\n // toFirestore().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return t ? n && (n.merge || n.mergeFields) ? t.toFirestore(e, n) : t.toFirestore(e) : e;\n}\n\nvar fc = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).firestore = t, n;\n }\n return t(n, e), n.prototype.convertBytes = function(t) {\n return new da(t);\n }, n.prototype.convertReference = function(t) {\n var e = this.convertDocumentKey(t, this.firestore._databaseId);\n return new $u(this.firestore, /* converter= */ null, e);\n }, n;\n}(cc), lc = /** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n this._firestore = t, this._commitHandler = e, this._mutations = [], this._committed = !1, \n this._dataReader = Ta(t);\n }\n return t.prototype.set = function(t, e, n) {\n this._verifyNotCommitted();\n var r = dc(t, this._firestore), i = hc(r.converter, e, n), o = _a(this._dataReader, \"WriteBatch.set\", r._key, i, null !== r.converter, n);\n return this._mutations.push(o.toMutation(r._key, De.none())), this;\n }, t.prototype.update = function(t, e, n) {\n for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];\n this._verifyNotCommitted();\n var o, s = dc(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n return o = \"string\" == typeof (e = l(e)) || e instanceof la ? xa(this._dataReader, \"WriteBatch.update\", s._key, e, n, r) : Ca(this._dataReader, \"WriteBatch.update\", s._key, e), \n this._mutations.push(o.toMutation(s._key, De.exists(!0))), this;\n }, \n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `WriteBatch` instance. Used for chaining method calls.\n */\n t.prototype.delete = function(t) {\n this._verifyNotCommitted();\n var e = dc(t, this._firestore);\n return this._mutations = this._mutations.concat(new je(e._key, De.none())), this;\n }, \n /**\n * Commits all of the writes in this write batch as a single atomic unit.\n *\n * The result of these writes will only be reflected in document reads that\n * occur after the returned promise resolves. If the client is offline, the\n * write fails. If you would like to see local modifications or buffer writes\n * until the client is online, use the full Firestore SDK.\n *\n * @returns A `Promise` resolved once all of the writes in the batch have been\n * successfully written to the backend as an atomic unit (note that it won't\n * resolve while you're offline).\n */\n t.prototype.commit = function() {\n return this._verifyNotCommitted(), this._committed = !0, this._mutations.length > 0 ? this._commitHandler(this._mutations) : Promise.resolve();\n }, t.prototype._verifyNotCommitted = function() {\n if (this._committed) throw new D(N.FAILED_PRECONDITION, \"A write batch can no longer be used after commit() has been called.\");\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A write batch, used to perform multiple writes as a single atomic unit.\n *\n * A `WriteBatch` object can be acquired by calling {@link writeBatch}. It\n * provides methods for adding writes to the write batch. None of the writes\n * will be committed (or visible locally) until {@link WriteBatch.commit} is\n * called.\n */ function dc(t, e) {\n if ((t = l(t)).firestore !== e) throw new D(N.INVALID_ARGUMENT, \"Provided document reference is from a different Firestore instance.\");\n return t;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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// TODO(mrschmidt) Consider using `BaseTransaction` as the base class in the\n// legacy SDK.\n/**\n * A reference to a transaction.\n *\n * The `Transaction` object passed to a transaction's `updateFunction` provides\n * the methods to read and write data within the transaction context. See\n * {@link runTransaction}.\n */ var pc = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).firestore = t, n;\n }\n return t(n, e), n.prototype.convertBytes = function(t) {\n return new da(t);\n }, n.prototype.convertReference = function(t) {\n var e = this.convertDocumentKey(t, this.firestore._databaseId);\n return new $u(this.firestore, /* converter= */ null, e);\n }, n;\n}(cc);\n\n/**\n * Reads the document referred to by this `DocumentReference` from cache.\n * Returns an error if the document is not currently cached.\n *\n * @returns A `Promise` resolved with a `DocumentSnapshot` containing the\n * current document contents.\n */ function yc(t, e, n) {\n t = zu(t, $u);\n var r = zu(t.firestore, ua), i = hc(t.converter, e, n);\n return gc(r, [ _a(Ta(r), \"setDoc\", t._key, i, null !== t.converter, n).toMutation(t._key, De.none()) ]);\n}\n\nfunction vc(t, e, n) {\n for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];\n t = zu(t, $u);\n var o = zu(t.firestore, ua), s = Ta(o);\n return gc(o, [ (\"string\" == typeof (\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n e = l(e)) || e instanceof la ? xa(s, \"updateDoc\", t._key, e, n, r) : Ca(s, \"updateDoc\", t._key, e)).toMutation(t._key, De.exists(!0)) ]);\n}\n\n/**\n * Deletes the document referred to by the specified `DocumentReference`.\n *\n * @param reference - A reference to the document to delete.\n * @returns A Promise resolved once the document has been successfully\n * deleted from the backend (note that it won't resolve while you're offline).\n */ function mc(t) {\n for (var e, i, o, s = [], u = 1; u < arguments.length; u++) s[u - 1] = arguments[u];\n t = l(t);\n var a = {\n includeMetadataChanges: !1\n }, c = 0;\n \"object\" != typeof s[c] || ia(s[c]) || (a = s[c], c++);\n var h, f, d, p = {\n includeMetadataChanges: a.includeMetadataChanges\n };\n if (ia(s[c])) {\n var y = s[c];\n s[c] = null === (e = y.next) || void 0 === e ? void 0 : e.bind(y), s[c + 1] = null === (i = y.error) || void 0 === i ? void 0 : i.bind(y), \n s[c + 2] = null === (o = y.complete) || void 0 === o ? void 0 : o.bind(y);\n }\n if (t instanceof $u) f = zu(t.firestore, ua), d = Yt(t._key.path), h = {\n next: function(e) {\n s[c] && s[c](wc(f, t, e));\n },\n error: s[c + 1],\n complete: s[c + 2]\n }; else {\n var v = zu(t, Xu);\n f = zu(v.firestore, ua), d = v._query;\n var m = new pc(f);\n h = {\n next: function(t) {\n s[c] && s[c](new Ha(f, m, v, t));\n },\n error: s[c + 1],\n complete: s[c + 2]\n }, Xa(t._query);\n }\n return function(t, e, i, o) {\n var s = this, u = new yu(o), a = new Is(e, u, i);\n return t.asyncQueue.enqueueAndForget((function() {\n return n(s, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = vs, [ 4 /*yield*/ , Au(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), a ]) ];\n }\n }));\n }));\n })), function() {\n u.Wo(), t.asyncQueue.enqueueAndForget((function() {\n return n(s, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = ms, [ 4 /*yield*/ , Au(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), a ]) ];\n }\n }));\n }));\n }));\n };\n }(aa(f), d, p, h);\n}\n\n/**\n * Locally writes `mutations` on the async queue.\n * @internal\n */ function gc(t, e) {\n return function(t, e) {\n var i = this, o = new br;\n return t.asyncQueue.enqueueAndForget((function() {\n return n(i, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = Ps, [ 4 /*yield*/ , Du(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ r.sent(), e, o ]) ];\n }\n }));\n }));\n })), o.promise;\n }(aa(t), e);\n}\n\n/**\n * Converts a {@link ViewSnapshot} that contains the single document specified by `ref`\n * to a {@link DocumentSnapshot}.\n */ function wc(t, e, n) {\n var r = n.docs.get(e._key), i = new pc(t);\n return new za(t, i, e._key, r, new Qa(n.hasPendingWrites, n.fromCache), e.converter);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * A reference to a transaction.\n *\n * The `Transaction` object passed to a transaction's `updateFunction` provides\n * the methods to read and write data within the transaction context. See\n * {@link runTransaction}.\n */ var bc = /** @class */ function(e) {\n // This class implements the same logic as the Transaction API in the Lite SDK\n // but is subclassed in order to return its own DocumentSnapshot types.\n /** @hideconstructor */\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t, n) || this)._firestore = t, r;\n }\n /**\n * Reads the document referenced by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be read.\n * @returns A `DocumentSnapshot` with the read data.\n */ return t(n, e), n.prototype.get = function(t) {\n var n = this, r = dc(t, this._firestore), i = new pc(this._firestore);\n return e.prototype.get.call(this, t).then((function(t) {\n return new za(n._firestore, i, r._key, t._document, new Qa(\n /* hasPendingWrites= */ !1, \n /* fromCache= */ !1), r.converter);\n }));\n }, n;\n}(/** @class */ function() {\n /** @hideconstructor */\n function t(t, e) {\n this._firestore = t, this._transaction = e, this._dataReader = Ta(t)\n /**\n * Reads the document referenced by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be read.\n * @returns A `DocumentSnapshot` with the read data.\n */;\n }\n return t.prototype.get = function(t) {\n var e = this, n = dc(t, this._firestore), r = new fc(this._firestore);\n return this._transaction.lookup([ n._key ]).then((function(t) {\n if (!t || 1 !== t.length) return O();\n var i = t[0];\n if (i.isFoundDocument()) return new ja(e._firestore, r, i.key, i, n.converter);\n if (i.isNoDocument()) return new ja(e._firestore, r, n._key, null, n.converter);\n throw O();\n }));\n }, t.prototype.set = function(t, e, n) {\n var r = dc(t, this._firestore), i = hc(r.converter, e, n), o = _a(this._dataReader, \"Transaction.set\", r._key, i, null !== r.converter, n);\n return this._transaction.set(r._key, o), this;\n }, t.prototype.update = function(t, e, n) {\n for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];\n var o, s = dc(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n return o = \"string\" == typeof (e = l(e)) || e instanceof la ? xa(this._dataReader, \"Transaction.update\", s._key, e, n, r) : Ca(this._dataReader, \"Transaction.update\", s._key, e), \n this._transaction.update(s._key, o), this;\n }, \n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `Transaction` instance. Used for chaining method calls.\n */\n t.prototype.delete = function(t) {\n var e = dc(t, this._firestore);\n return this._transaction.delete(e._key), this;\n }, t;\n}());\n\n/**\n * Executes the given `updateFunction` and then attempts to commit the changes\n * applied within the transaction. If any document read within the transaction\n * has changed, Cloud Firestore retries the `updateFunction`. If it fails to\n * commit after 5 attempts, the transaction fails.\n *\n * The maximum number of writes allowed in a single transaction is 500.\n *\n * @param firestore - A reference to the Firestore database to run this\n * transaction against.\n * @param updateFunction - The function to execute within the transaction\n * context.\n * @returns If the transaction completed successfully or was explicitly aborted\n * (the `updateFunction` returned a failed promise), the promise returned by the\n * `updateFunction `is returned here. Otherwise, if the transaction failed, a\n * rejected promise with the corresponding failure error is returned.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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/** Helper function to assert Uint8Array is available at runtime. */ function Ic() {\n if (\"undefined\" == typeof Uint8Array) throw new D(N.UNIMPLEMENTED, \"Uint8Arrays are not available in this environment.\");\n}\n\n/** Helper function to assert Base64 functions are available at runtime. */ function Tc() {\n if (\"undefined\" == typeof atob) throw new D(N.UNIMPLEMENTED, \"Blobs are unavailable in Firestore in this environment.\");\n}\n\n/** Immutable class holding a blob (binary data) */ var _c = /** @class */ function() {\n function t(t) {\n this._delegate = t;\n }\n return t.fromBase64String = function(e) {\n return Tc(), new t(da.fromBase64String(e));\n }, t.fromUint8Array = function(e) {\n return Ic(), new t(da.fromUint8Array(e));\n }, t.prototype.toBase64 = function() {\n return Tc(), this._delegate.toBase64();\n }, t.prototype.toUint8Array = function() {\n return Ic(), this._delegate.toUint8Array();\n }, t.prototype.isEqual = function(t) {\n return this._delegate.isEqual(t._delegate);\n }, t.prototype.toString = function() {\n return \"Blob(base64: \" + this.toBase64() + \")\";\n }, t;\n}(), Ec = /** @class */ function() {\n function t() {}\n return t.prototype.enableIndexedDbPersistence = function(t, e) {\n return function(t, e) {\n fa(t = zu(t, ua));\n var n = aa(t), r = t._freezeSettings(), i = new du;\n return ha(n, i, new fu(i, r.cacheSizeBytes, null == e ? void 0 : e.forceOwnership));\n }(t._delegate, {\n forceOwnership: e\n });\n }, t.prototype.enableMultiTabIndexedDbPersistence = function(t) {\n return function(t) {\n fa(t = zu(t, ua));\n var e = aa(t), n = t._freezeSettings(), r = new du;\n return ha(e, r, new lu(r, n.cacheSizeBytes));\n }(t._delegate);\n }, t.prototype.clearIndexedDbPersistence = function(t) {\n return function(t) {\n var e = this;\n if (t._initialized && !t._terminated) throw new D(N.FAILED_PRECONDITION, \"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.\");\n var i = new br;\n return t._queue.enqueueAndForgetEvenWhileRestricted((function() {\n return n(e, void 0, void 0, (function() {\n var e;\n return r(this, (function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([ 0, 2, , 3 ]), [ 4 /*yield*/ , function(t) {\n return n(this, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return _r.yt() ? (e = t + \"main\", [ 4 /*yield*/ , _r.delete(e) ]) : [ 2 /*return*/ , Promise.resolve() ];\n\n case 1:\n return n.sent(), [ 2 /*return*/ ];\n }\n }));\n }));\n }(Oi(t._databaseId, t._persistenceKey)) ];\n\n case 1:\n return o.sent(), i.resolve(), [ 3 /*break*/ , 3 ];\n\n case 2:\n return e = o.sent(), i.reject(e), [ 3 /*break*/ , 3 ];\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n })), i.promise\n /**\n * Waits until all currently pending writes for the active user have been\n * acknowledged by the backend.\n *\n * The returned promise resolves immediately if there are no outstanding writes.\n * Otherwise, the promise waits for all previously issued writes (including\n * those written in a previous app session), but it does not wait for writes\n * that were added after the function is called. If you want to wait for\n * additional writes, call `waitForPendingWrites()` again.\n *\n * Any outstanding `waitForPendingWrites()` promises are rejected during user\n * changes.\n *\n * @returns A `Promise` which resolves when all currently pending writes have been\n * acknowledged by the backend.\n */;\n }(t._delegate);\n }, t;\n}(), Sc = /** @class */ function() {\n function t(t, e, n) {\n var r = this;\n this._delegate = e, this.Zc = n, this.INTERNAL = {\n delete: function() {\n return r.terminate();\n }\n }, t instanceof Ru || (this.tu = t);\n }\n return Object.defineProperty(t.prototype, \"_databaseId\", {\n get: function() {\n return this._delegate._databaseId;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.settings = function(t) {\n var e = this._delegate._getSettings();\n t.merge || e.host === t.host || R(\"You are overriding the original host. If you did not intend to override your settings, use {merge: true}.\"), \n t.merge && \n // Remove the property from the settings once the merge is completed\n delete (t = Object.assign(Object.assign({}, e), t)).merge, this._delegate._setSettings(t);\n }, t.prototype.useEmulator = function(t, e, n) {\n void 0 === n && (n = {}), function(t, e, n, r) {\n var i;\n void 0 === r && (r = {});\n var o = (t = zu(t, Yu))._getSettings();\n if (\"firestore.googleapis.com\" !== o.host && o.host !== e && R(\"Host has been set in both settings() and useEmulator(), emulator host will be used\"), \n t._setSettings(Object.assign(Object.assign({}, o), {\n host: e + \":\" + n,\n ssl: !1\n })), r.mockUserToken) {\n var s, u;\n if (\"string\" == typeof r.mockUserToken) s = r.mockUserToken, u = fo.MOCK_USER; else {\n // Let createMockUserToken validate first (catches common mistakes like\n // invalid field \"uid\" and missing field \"sub\" / \"user_id\".)\n s = d(r.mockUserToken, null === (i = t._app) || void 0 === i ? void 0 : i.options.projectId);\n var a = r.mockUserToken.sub || r.mockUserToken.user_id;\n if (!a) throw new D(N.INVALID_ARGUMENT, \"mockUserToken must contain 'sub' or 'user_id' field!\");\n u = new fo(a);\n }\n t._credentials = new Fu(new Ou(s, u));\n }\n }(this._delegate, t, e, n);\n }, t.prototype.enableNetwork = function() {\n return function(t) {\n var e = this;\n return t.asyncQueue.enqueue((function() {\n return n(e, void 0, void 0, (function() {\n var e, n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , Eu(t) ];\n\n case 1:\n return e = r.sent(), [ 4 /*yield*/ , Nu(t) ];\n\n case 2:\n return n = r.sent(), [ 2 /*return*/ , (e.setNetworkEnabled(!0), function(t) {\n var e = F(t);\n return e.Or.delete(0 /* UserDisabled */), Vo(e);\n }(n)) ];\n }\n }));\n }));\n }));\n }\n /** Disables the network connection. Pending operations will not complete. */ (aa(zu(this._delegate, ua)));\n }, t.prototype.disableNetwork = function() {\n return function(t) {\n var e = this;\n return t.asyncQueue.enqueue((function() {\n return n(e, void 0, void 0, (function() {\n var e, i;\n return r(this, (function(o) {\n switch (o.label) {\n case 0:\n return [ 4 /*yield*/ , Eu(t) ];\n\n case 1:\n return e = o.sent(), [ 4 /*yield*/ , Nu(t) ];\n\n case 2:\n return i = o.sent(), [ 2 /*return*/ , (e.setNetworkEnabled(!1), function(t) {\n return n(this, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return (e = F(t)).Or.add(0 /* UserDisabled */), [ 4 /*yield*/ , qo(e) ];\n\n case 1:\n return n.sent(), \n // Set the OnlineState to Offline so get()s return from cache, etc.\n e.Br.set(\"Offline\" /* Offline */), [ 2 /*return*/ ];\n }\n }));\n }));\n }(i)) ];\n }\n }));\n }));\n }));\n }\n /**\n * Returns a Promise that resolves when all writes that were pending at the time\n * this method was called received server acknowledgement. An acknowledgement\n * can be either acceptance or rejection.\n */ (aa(zu(this._delegate, ua)));\n }, t.prototype.enablePersistence = function(t) {\n var e = !1, n = !1;\n return t && ju(\"synchronizeTabs\", e = !!t.synchronizeTabs, \"experimentalForceOwningTab\", n = !!t.experimentalForceOwningTab), \n e ? this.Zc.enableMultiTabIndexedDbPersistence(this) : this.Zc.enableIndexedDbPersistence(this, n);\n }, t.prototype.clearPersistence = function() {\n return this.Zc.clearIndexedDbPersistence(this);\n }, t.prototype.terminate = function() {\n return this.tu && (this.tu._removeServiceInstance(\"firestore\"), this.tu._removeServiceInstance(\"firestore-exp\")), \n this._delegate._delete();\n }, t.prototype.waitForPendingWrites = function() {\n return function(t) {\n var e = this, i = new br;\n return t.asyncQueue.enqueueAndForget((function() {\n return n(e, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = Bs, [ 4 /*yield*/ , Du(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), i ]) ];\n }\n }));\n }));\n })), i.promise;\n }(aa(zu(this._delegate, ua)));\n }, t.prototype.onSnapshotsInSync = function(t) {\n return function(t, e) {\n return function(t, e) {\n var i = this, o = new yu(e);\n return t.asyncQueue.enqueueAndForget((function() {\n return n(i, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = function(t, e) {\n F(t).Gr.add(e), \n // Immediately fire an initial event, indicating all existing listeners\n // are in-sync.\n e.next();\n }, [ 4 /*yield*/ , Au(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), o ]) ];\n }\n }));\n }));\n })), function() {\n o.Wo(), t.asyncQueue.enqueueAndForget((function() {\n return n(i, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = function(t, e) {\n F(t).Gr.delete(e);\n }, [ 4 /*yield*/ , Au(t) ];\n\n case 1:\n return [ 2 /*return*/ , e.apply(void 0, [ n.sent(), o ]) ];\n }\n }));\n }));\n }));\n }\n /**\n * Takes an updateFunction in which a set of reads and writes can be performed\n * atomically. In the updateFunction, the client can read and write values\n * using the supplied transaction object. After the updateFunction, all\n * changes will be committed. If a retryable error occurs (ex: some other\n * client has changed any of the data referenced), then the updateFunction\n * will be called again after a backoff. If the updateFunction still fails\n * after all retries, then the transaction will be rejected.\n *\n * The transaction object passed to the updateFunction contains methods for\n * accessing documents and collections. Unlike other datastore access, data\n * accessed with the transaction will not reflect local changes that have not\n * been committed. For this reason, it is required that all reads are\n * performed before any writes. Transactions must be performed while online.\n */;\n }(aa(t = zu(t, ua)), ia(e) ? e : {\n next: e\n });\n }(this._delegate, t);\n }, Object.defineProperty(t.prototype, \"app\", {\n get: function() {\n if (!this.tu) throw new D(N.FAILED_PRECONDITION, \"Firestore was not initialized using the Firebase SDK. 'app' is not available\");\n return this.tu;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.collection = function(t) {\n try {\n return new Uc(this, Zu(this._delegate, t));\n } catch (t) {\n throw Rc(t, \"collection()\", \"Firestore.collection()\");\n }\n }, t.prototype.doc = function(t) {\n try {\n return new xc(this, ta(this._delegate, t));\n } catch (t) {\n throw Rc(t, \"doc()\", \"Firestore.doc()\");\n }\n }, t.prototype.collectionGroup = function(t) {\n try {\n return new Mc(this, function(t, e) {\n if (t = zu(t, Yu), Uu(\"collectionGroup\", \"collection id\", e), e.indexOf(\"/\") >= 0) throw new D(N.INVALID_ARGUMENT, \"Invalid collection ID '\" + e + \"' passed to function collectionGroup(). Collection IDs must not contain '/'.\");\n return new Xu(t, \n /* converter= */ null, \n /**\n * Creates a new Query for a collection group query that matches all documents\n * within the provided collection group.\n */\n function(t) {\n return new Wt(H.emptyPath(), t);\n }(e));\n }(this._delegate, t));\n } catch (t) {\n throw Rc(t, \"collectionGroup()\", \"Firestore.collectionGroup()\");\n }\n }, t.prototype.runTransaction = function(t) {\n var e = this;\n return function(t, e) {\n return function(t, e) {\n var i = this, o = new br;\n return t.asyncQueue.enqueueAndForget((function() {\n return n(i, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return [ 4 /*yield*/ , function(t) {\n return _u(t).then((function(t) {\n return t.datastore;\n }));\n }(t) ];\n\n case 1:\n return n = r.sent(), new gu(t.asyncQueue, n, e, o).run(), [ 2 /*return*/ ];\n }\n }));\n }));\n })), o.promise;\n }(aa(t), (function(n) {\n return e(new bc(t, n));\n }));\n }(this._delegate, (function(n) {\n return t(new Ac(e, n));\n }));\n }, t.prototype.batch = function() {\n var t = this;\n return aa(this._delegate), new kc(new lc(this._delegate, (function(e) {\n return gc(t._delegate, e);\n })));\n }, t.prototype.loadBundle = function(t) {\n throw new D(N.FAILED_PRECONDITION, '\"loadBundle()\" does not exist, have you imported \"firebase/firestore/bundle\"?');\n }, t.prototype.namedQuery = function(t) {\n throw new D(N.FAILED_PRECONDITION, '\"namedQuery()\" does not exist, have you imported \"firebase/firestore/bundle\"?');\n }, t;\n}(), Nc = /** @class */ function(e) {\n function n(t) {\n var n = this;\n return (n = e.call(this) || this).firestore = t, n;\n }\n return t(n, e), n.prototype.convertBytes = function(t) {\n return new _c(new da(t));\n }, n.prototype.convertReference = function(t) {\n var e = this.convertDocumentKey(t, this.firestore._databaseId);\n return xc.eu(e, this.firestore, /* converter= */ null);\n }, n;\n}(cc);\n\n/**\n * The persistence provider included with the full Firestore SDK.\n */ function Dc(t) {\n var e;\n e = t, A.setLogLevel(e);\n}\n\n/**\n * A reference to a transaction.\n */ var Ac = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e, this._userDataWriter = new Nc(t);\n }\n return t.prototype.get = function(t) {\n var e = this, n = Bc(t);\n return this._delegate.get(n).then((function(t) {\n return new Pc(e._firestore, new za(e._firestore._delegate, e._userDataWriter, t._key, t._document, t.metadata, n.converter));\n }));\n }, t.prototype.set = function(t, e, n) {\n var r = Bc(t);\n return n ? (Bu(\"Transaction.set\", n), this._delegate.set(r, e, n)) : this._delegate.set(r, e), \n this;\n }, t.prototype.update = function(t, n, r) {\n for (var i, o = [], s = 3; s < arguments.length; s++) o[s - 3] = arguments[s];\n var u = Bc(t);\n return 2 === arguments.length ? this._delegate.update(u, n) : (i = this._delegate).update.apply(i, e([ u, n, r ], o)), \n this;\n }, t.prototype.delete = function(t) {\n var e = Bc(t);\n return this._delegate.delete(e), this;\n }, t;\n}(), kc = /** @class */ function() {\n function t(t) {\n this._delegate = t;\n }\n return t.prototype.set = function(t, e, n) {\n var r = Bc(t);\n return n ? (Bu(\"WriteBatch.set\", n), this._delegate.set(r, e, n)) : this._delegate.set(r, e), \n this;\n }, t.prototype.update = function(t, n, r) {\n for (var i, o = [], s = 3; s < arguments.length; s++) o[s - 3] = arguments[s];\n var u = Bc(t);\n return 2 === arguments.length ? this._delegate.update(u, n) : (i = this._delegate).update.apply(i, e([ u, n, r ], o)), \n this;\n }, t.prototype.delete = function(t) {\n var e = Bc(t);\n return this._delegate.delete(e), this;\n }, t.prototype.commit = function() {\n return this._delegate.commit();\n }, t;\n}(), Cc = /** @class */ function() {\n function t(t, e, n) {\n this._firestore = t, this._userDataWriter = e, this._delegate = n;\n }\n return t.prototype.fromFirestore = function(t, e) {\n var n = new Wa(this._firestore._delegate, this._userDataWriter, t._key, t._document, t.metadata, \n /* converter= */ null);\n return this._delegate.fromFirestore(new Fc(this._firestore, n), null != e ? e : {});\n }, t.prototype.toFirestore = function(t, e) {\n return e ? this._delegate.toFirestore(t, e) : this._delegate.toFirestore(t);\n }, \n // Use the same instance of `FirestoreDataConverter` for the given instances\n // of `Firestore` and `PublicFirestoreDataConverter` so that isEqual() will\n // compare equal for two objects created with the same converter instance.\n t.nu = function(e, n) {\n var r = t.su, i = r.get(e);\n i || (i = new WeakMap, r.set(e, i));\n var o = i.get(n);\n return o || (o = new t(e, new Nc(e), n), i.set(n, o)), o;\n }, t;\n}();\n\nCc.su = new WeakMap;\n\n/**\n * A reference to a particular document in a collection in the database.\n */\nvar xc = /** @class */ function() {\n function t(t, e) {\n this.firestore = t, this._delegate = e, this._userDataWriter = new Nc(t);\n }\n return t.iu = function(e, n, r) {\n if (e.length % 2 != 0) throw new D(N.INVALID_ARGUMENT, \"Invalid document reference. Document references must have an even number of segments, but \" + e.canonicalString() + \" has \" + e.length);\n return new t(n, new $u(n._delegate, r, new ct(e)));\n }, t.eu = function(e, n, r) {\n return new t(n, new $u(n._delegate, r, e));\n }, Object.defineProperty(t.prototype, \"id\", {\n get: function() {\n return this._delegate.id;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"parent\", {\n get: function() {\n return new Uc(this.firestore, this._delegate.parent);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"path\", {\n get: function() {\n return this._delegate.path;\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.collection = function(t) {\n try {\n return new Uc(this.firestore, Zu(this._delegate, t));\n } catch (t) {\n throw Rc(t, \"collection()\", \"DocumentReference.collection()\");\n }\n }, t.prototype.isEqual = function(t) {\n return (t = l(t)) instanceof $u && ea(this._delegate, t);\n }, t.prototype.set = function(t, e) {\n e = Bu(\"DocumentReference.set\", e);\n try {\n return e ? yc(this._delegate, t, e) : yc(this._delegate, t);\n } catch (t) {\n throw Rc(t, \"setDoc()\", \"DocumentReference.set()\");\n }\n }, t.prototype.update = function(t, n) {\n for (var r = [], i = 2; i < arguments.length; i++) r[i - 2] = arguments[i];\n try {\n return 1 === arguments.length ? vc(this._delegate, t) : vc.apply(void 0, e([ this._delegate, t, n ], r));\n } catch (t) {\n throw Rc(t, \"updateDoc()\", \"DocumentReference.update()\");\n }\n }, t.prototype.delete = function() {\n return gc(zu((t = this._delegate).firestore, ua), [ new je(t._key, De.none()) ]);\n var t;\n /**\n * Add a new document to specified `CollectionReference` with the given data,\n * assigning it a document ID automatically.\n *\n * @param reference - A reference to the collection to add this document to.\n * @param data - An Object containing the data for the new document.\n * @returns A `Promise` resolved with a `DocumentReference` pointing to the\n * newly created document after it has been written to the backend (Note that it\n * won't resolve while you're offline).\n */ }, t.prototype.onSnapshot = function() {\n for (var t = this, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = Lc(e), i = Oc(e, (function(e) {\n return new Pc(t.firestore, new za(t.firestore._delegate, t._userDataWriter, e._key, e._document, e.metadata, t._delegate.converter));\n }));\n return mc(this._delegate, r, i);\n }, t.prototype.get = function(t) {\n var e = this;\n return (\"cache\" === (null == t ? void 0 : t.source) ? function(t) {\n t = zu(t, $u);\n var e = zu(t.firestore, ua), i = aa(e), o = new pc(e);\n return function(t, e) {\n var i = this, o = new br;\n return t.asyncQueue.enqueueAndForget((function() {\n return n(i, void 0, void 0, (function() {\n var i;\n return r(this, (function(s) {\n switch (s.label) {\n case 0:\n return i = function(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return r.trys.push([ 0, 2, , 3 ]), [ 4 /*yield*/ , function(t, e) {\n var n = F(t);\n return n.persistence.runTransaction(\"read document\", \"readonly\", (function(t) {\n return n.Mn.mn(t, e);\n }));\n }(t, e) ];\n\n case 1:\n return (o = r.sent()).isFoundDocument() ? i.resolve(o) : o.isNoDocument() ? i.resolve(null) : i.reject(new D(N.UNAVAILABLE, \"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)\")), \n [ 3 /*break*/ , 3 ];\n\n case 2:\n return n = r.sent(), o = hs(n, \"Failed to get document '\" + e + \" from cache\"), \n i.reject(o), [ 3 /*break*/ , 3 ];\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, [ 4 /*yield*/ , Su(t) ];\n\n case 1:\n return [ 2 /*return*/ , i.apply(void 0, [ s.sent(), e, o ]) ];\n }\n }));\n }));\n })), o.promise;\n }(i, t._key).then((function(n) {\n return new za(e, o, t._key, n, new Qa(null !== n && n.hasLocalMutations, \n /* fromCache= */ !0), t.converter);\n }));\n }(this._delegate) : \"server\" === (null == t ? void 0 : t.source) ? function(t) {\n t = zu(t, $u);\n var e = zu(t.firestore, ua);\n return ku(aa(e), t._key, {\n source: \"server\"\n }).then((function(n) {\n return wc(e, t, n);\n }));\n }(this._delegate) : function(t) {\n t = zu(t, $u);\n var e = zu(t.firestore, ua);\n return ku(aa(e), t._key).then((function(n) {\n return wc(e, t, n);\n }));\n }(this._delegate)).then((function(t) {\n return new Pc(e.firestore, new za(e.firestore._delegate, e._userDataWriter, t._key, t._document, t.metadata, e._delegate.converter));\n }));\n }, t.prototype.withConverter = function(e) {\n return new t(this.firestore, e ? this._delegate.withConverter(Cc.nu(this.firestore, e)) : this._delegate.withConverter(null));\n }, t;\n}();\n\n/**\n * Replaces the function name in an error thrown by the firestore-exp API\n * with the function names used in the classic API.\n */ function Rc(t, e, n) {\n return t.message = t.message.replace(e, n), t\n /**\n * Iterates the list of arguments from an `onSnapshot` call and returns the\n * first argument that may be an `SnapshotListenOptions` object. Returns an\n * empty object if none is found.\n */;\n}\n\nfunction Lc(t) {\n for (var e = 0, n = t; e < n.length; e++) {\n var r = n[e];\n if (\"object\" == typeof r && !ia(r)) return r;\n }\n return {};\n}\n\n/**\n * Creates an observer that can be passed to the firestore-exp SDK. The\n * observer converts all observed values into the format expected by the classic\n * SDK.\n *\n * @param args - The list of arguments from an `onSnapshot` call.\n * @param wrapper - The function that converts the firestore-exp type into the\n * type used by this shim.\n */ function Oc(t, e) {\n var n, r, i;\n return {\n next: function(t) {\n i.next && i.next(e(t));\n },\n error: null === (n = (i = ia(t[0]) ? t[0] : ia(t[1]) ? t[1] : \"function\" == typeof t[0] ? {\n next: t[0],\n error: t[1],\n complete: t[2]\n } : {\n next: t[1],\n error: t[2],\n complete: t[3]\n }).error) || void 0 === n ? void 0 : n.bind(i),\n complete: null === (r = i.complete) || void 0 === r ? void 0 : r.bind(i)\n };\n}\n\nvar Pc = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e;\n }\n return Object.defineProperty(t.prototype, \"ref\", {\n get: function() {\n return new xc(this._firestore, this._delegate.ref);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"id\", {\n get: function() {\n return this._delegate.id;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"metadata\", {\n get: function() {\n return this._delegate.metadata;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"exists\", {\n get: function() {\n return this._delegate.exists();\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.data = function(t) {\n return this._delegate.data(t);\n }, t.prototype.get = function(t, e) {\n return this._delegate.get(t, e);\n }, t.prototype.isEqual = function(t) {\n return $a(this._delegate, t._delegate);\n }, t;\n}(), Fc = /** @class */ function(e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(n, e), n.prototype.data = function(t) {\n return this._delegate.data(t);\n }, n;\n}(Pc), Mc = /** @class */ function() {\n function t(t, e) {\n this.firestore = t, this._delegate = e, this._userDataWriter = new Nc(t);\n }\n return t.prototype.where = function(e, n, r) {\n try {\n // The \"as string\" cast is a little bit of a hack. `where` accepts the\n // FieldPath Compat type as input, but is not typed as such in order to\n // not expose this via our public typings file.\n return new t(this.firestore, Za(this._delegate, function(t, e, n) {\n var r = e, i = Ga(\"where\", t);\n return new tc(i, r, n);\n }(e, n, r)));\n } catch (e) {\n throw Rc(e, /(orderBy|where)\\(\\)/, \"Query.$1()\");\n }\n }, t.prototype.orderBy = function(e, n) {\n try {\n // The \"as string\" cast is a little bit of a hack. `orderBy` accepts the\n // FieldPath Compat type as input, but is not typed as such in order to\n // not expose this via our public typings file.\n return new t(this.firestore, Za(this._delegate, function(t, e) {\n void 0 === e && (e = \"asc\");\n var n = e, r = Ga(\"orderBy\", t);\n return new ec(r, n);\n }(e, n)));\n } catch (e) {\n throw Rc(e, /(orderBy|where)\\(\\)/, \"Query.$1()\");\n }\n }, t.prototype.limit = function(e) {\n try {\n return new t(this.firestore, Za(this._delegate, function(t) {\n return Wu(\"limit\", t), new nc(\"limit\", t, \"F\" /* First */);\n }(e)));\n } catch (e) {\n throw Rc(e, \"limit()\", \"Query.limit()\");\n }\n }, t.prototype.limitToLast = function(e) {\n try {\n return new t(this.firestore, Za(this._delegate, function(t) {\n return Wu(\"limitToLast\", t), new nc(\"limitToLast\", t, \"L\" /* Last */);\n }(e)));\n } catch (e) {\n throw Rc(e, \"limitToLast()\", \"Query.limitToLast()\");\n }\n }, t.prototype.startAt = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Za(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new rc(\"startAt\", t, /*before=*/ !0);\n }.apply(void 0, e)));\n } catch (e) {\n throw Rc(e, \"startAt()\", \"Query.startAt()\");\n }\n }, t.prototype.startAfter = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Za(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new rc(\"startAfter\", t, \n /*before=*/ !1);\n }.apply(void 0, e)));\n } catch (e) {\n throw Rc(e, \"startAfter()\", \"Query.startAfter()\");\n }\n }, t.prototype.endBefore = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Za(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new ic(\"endBefore\", t, /*before=*/ !0);\n }.apply(void 0, e)));\n } catch (e) {\n throw Rc(e, \"endBefore()\", \"Query.endBefore()\");\n }\n }, t.prototype.endAt = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n try {\n return new t(this.firestore, Za(this._delegate, function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n return new ic(\"endAt\", t, /*before=*/ !1);\n }.apply(void 0, e)));\n } catch (e) {\n throw Rc(e, \"endAt()\", \"Query.endAt()\");\n }\n }, t.prototype.isEqual = function(t) {\n return na(this._delegate, t._delegate);\n }, t.prototype.get = function(t) {\n var e = this;\n return (\"cache\" === (null == t ? void 0 : t.source) ? \n /**\n * Executes the query and returns the results as a `QuerySnapshot` from cache.\n * Returns an error if the document is not currently cached.\n *\n * @returns A `Promise` that will be resolved with the results of the query.\n */\n function(t) {\n t = zu(t, Xu);\n var e = zu(t.firestore, ua), i = aa(e), o = new pc(e);\n return function(t, e) {\n var i = this, o = new br;\n return t.asyncQueue.enqueueAndForget((function() {\n return n(i, void 0, void 0, (function() {\n var i;\n return r(this, (function(s) {\n switch (s.label) {\n case 0:\n return i = function(t, e, i) {\n return n(this, void 0, void 0, (function() {\n var n, o, s, u, a;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return r.trys.push([ 0, 2, , 3 ]), [ 4 /*yield*/ , Yi(t, e, \n /* usePreviousResults= */ !0) ];\n\n case 1:\n return a = r.sent(), n = new As(e, a.Bn), o = n._o(a.documents), s = n.applyChanges(o, \n /* updateLimboDocuments= */ !1), i.resolve(s.snapshot), [ 3 /*break*/ , 3 ];\n\n case 2:\n return u = r.sent(), a = hs(u, \"Failed to execute query '\" + e + \" against cache\"), \n i.reject(a), [ 3 /*break*/ , 3 ];\n\n case 3:\n return [ 2 /*return*/ ];\n }\n }));\n }));\n }, [ 4 /*yield*/ , Su(t) ];\n\n case 1:\n return [ 2 /*return*/ , i.apply(void 0, [ s.sent(), e, o ]) ];\n }\n }));\n }));\n })), o.promise;\n }(i, t._query).then((function(n) {\n return new Ha(e, o, t, n);\n }));\n }(this._delegate) : \"server\" === (null == t ? void 0 : t.source) ? function(t) {\n t = zu(t, Xu);\n var e = zu(t.firestore, ua), n = aa(e), r = new pc(e);\n return Cu(n, t._query, {\n source: \"server\"\n }).then((function(n) {\n return new Ha(e, r, t, n);\n }));\n }(this._delegate) : function(t) {\n t = zu(t, Xu);\n var e = zu(t.firestore, ua), n = aa(e), r = new pc(e);\n return Xa(t._query), Cu(n, t._query).then((function(n) {\n return new Ha(e, r, t, n);\n }));\n }(this._delegate)).then((function(t) {\n return new qc(e.firestore, new Ha(e.firestore._delegate, e._userDataWriter, e._delegate, t._snapshot));\n }));\n }, t.prototype.onSnapshot = function() {\n for (var t = this, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = Lc(e), i = Oc(e, (function(e) {\n return new qc(t.firestore, new Ha(t.firestore._delegate, t._userDataWriter, t._delegate, e._snapshot));\n }));\n return mc(this._delegate, r, i);\n }, t.prototype.withConverter = function(e) {\n return new t(this.firestore, e ? this._delegate.withConverter(Cc.nu(this.firestore, e)) : this._delegate.withConverter(null));\n }, t;\n}(), Vc = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e;\n }\n return Object.defineProperty(t.prototype, \"type\", {\n get: function() {\n return this._delegate.type;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"doc\", {\n get: function() {\n return new Fc(this._firestore, this._delegate.doc);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"oldIndex\", {\n get: function() {\n return this._delegate.oldIndex;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"newIndex\", {\n get: function() {\n return this._delegate.newIndex;\n },\n enumerable: !1,\n configurable: !0\n }), t;\n}(), qc = /** @class */ function() {\n function t(t, e) {\n this._firestore = t, this._delegate = e;\n }\n return Object.defineProperty(t.prototype, \"query\", {\n get: function() {\n return new Mc(this._firestore, this._delegate.query);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"metadata\", {\n get: function() {\n return this._delegate.metadata;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"size\", {\n get: function() {\n return this._delegate.size;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"empty\", {\n get: function() {\n return this._delegate.empty;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"docs\", {\n get: function() {\n var t = this;\n return this._delegate.docs.map((function(e) {\n return new Fc(t._firestore, e);\n }));\n },\n enumerable: !1,\n configurable: !0\n }), t.prototype.docChanges = function(t) {\n var e = this;\n return this._delegate.docChanges(t).map((function(t) {\n return new Vc(e._firestore, t);\n }));\n }, t.prototype.forEach = function(t, e) {\n var n = this;\n this._delegate.forEach((function(r) {\n t.call(e, new Fc(n._firestore, r));\n }));\n }, t.prototype.isEqual = function(t) {\n return $a(this._delegate, t._delegate);\n }, t;\n}(), Uc = /** @class */ function(e) {\n function n(t, n) {\n var r = this;\n return (r = e.call(this, t, n) || this).firestore = t, r._delegate = n, r;\n }\n return t(n, e), Object.defineProperty(n.prototype, \"id\", {\n get: function() {\n return this._delegate.id;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"path\", {\n get: function() {\n return this._delegate.path;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(n.prototype, \"parent\", {\n get: function() {\n var t = this._delegate.parent;\n return t ? new xc(this.firestore, t) : null;\n },\n enumerable: !1,\n configurable: !0\n }), n.prototype.doc = function(t) {\n try {\n return new xc(this.firestore, void 0 === t ? ta(this._delegate) : ta(this._delegate, t));\n } catch (t) {\n throw Rc(t, \"doc()\", \"CollectionReference.doc()\");\n }\n }, n.prototype.add = function(t) {\n var e = this;\n return function(t, e) {\n var n = zu(t.firestore, ua), r = ta(t), i = hc(t.converter, e);\n return gc(n, [ _a(Ta(t.firestore), \"addDoc\", r._key, i, null !== t.converter, {}).toMutation(r._key, De.exists(!1)) ]).then((function() {\n return r;\n }));\n }(this._delegate, t).then((function(t) {\n return new xc(e.firestore, t);\n }));\n }, n.prototype.isEqual = function(t) {\n return ea(this._delegate, t._delegate);\n }, n.prototype.withConverter = function(t) {\n return new n(this.firestore, t ? this._delegate.withConverter(Cc.nu(this.firestore, t)) : this._delegate.withConverter(null));\n }, n;\n}(Mc);\n\nfunction Bc(t) {\n return zu(t, $u);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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// The objects that are a part of this API are exposed to third-parties as\n// compiled javascript so we want to flag our private members with a leading\n// underscore to discourage their use.\n/**\n * A `FieldPath` refers to a field in a document. The path may consist of a\n * single field name (referring to a top-level field in the document), or a list\n * of field names (referring to a nested field in the document).\n */ var jc = /** @class */ function() {\n /**\n * Creates a FieldPath from the provided field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n *\n * @param fieldNames - A list of field names.\n */\n function t() {\n for (var t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n];\n this._delegate = new (la.bind.apply(la, e([ void 0 ], t)));\n }\n return t.documentId = function() {\n /**\n * Internal Note: The backend doesn't technically support querying by\n * document ID. Instead it queries by the entire document name (full path\n * included), but in the cases we currently support documentId(), the net\n * effect is the same.\n */\n return new t($.keyField().canonicalString());\n }, t.prototype.isEqual = function(t) {\n return (t = l(t)) instanceof la && this._delegate._internalPath.isEqual(t._internalPath);\n }, t;\n}(), Kc = /** @class */ function() {\n function t(t) {\n this._delegate = t;\n }\n return t.serverTimestamp = function() {\n var e = new Na(\"serverTimestamp\");\n return e._methodName = \"FieldValue.serverTimestamp\", new t(e);\n }, t.delete = function() {\n var e = new Ea(\"deleteField\");\n return e._methodName = \"FieldValue.delete\", new t(e);\n }, t.arrayUnion = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = \n /**\n * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link\n * @firebase/firestore/lite#(updateDoc:1)} that tells the server to union the given elements with any array\n * value that already exists on the server. Each specified element that doesn't\n * already exist in the array will be added to the end. If the field being\n * modified is not already an array it will be overwritten with an array\n * containing exactly the specified elements.\n *\n * @param elements - The elements to union into the array.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`.\n */\n function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new Da(\"arrayUnion\", t);\n }.apply(void 0, e);\n return r._methodName = \"FieldValue.arrayUnion\", new t(r);\n }, t.arrayRemove = function() {\n for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n];\n var r = function() {\n for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new Aa(\"arrayRemove\", t);\n }.apply(void 0, e);\n return r._methodName = \"FieldValue.arrayRemove\", new t(r);\n }, t.increment = function(e) {\n var n = function(t) {\n return new ka(\"increment\", t);\n }(e);\n return n._methodName = \"FieldValue.increment\", new t(n);\n }, t.prototype.isEqual = function(t) {\n return this._delegate.isEqual(t._delegate);\n }, t;\n}();\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nfunction Gc(t) {\n /**\n * Loads a Firestore bundle into the local cache.\n *\n * @param firestore - The {@link Firestore} instance to load bundles for for.\n * @param bundleData - An object representing the bundle to be loaded. Valid objects are\n * `ArrayBuffer`, `ReadableStream` or `string`.\n *\n * @returns\n * A `LoadBundleTask` object, which notifies callers with progress updates, and completion\n * or error events. It can be used as a `Promise`.\n */\n return function(t, e) {\n var i = aa(t = zu(t, ua)), o = new oa;\n return function(t, e, i, o) {\n var s = this, u = function(t, e) {\n return function(t, e) {\n return new vu(t, e);\n }(function(t, e) {\n if (t instanceof Uint8Array) return pu(t, e);\n if (t instanceof ArrayBuffer) return pu(new Uint8Array(t), e);\n if (t instanceof ReadableStream) return t.getReader();\n throw new Error(\"Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream\");\n }(\"string\" == typeof t ? (new TextEncoder).encode(t) : t), e);\n }(i, Co(e));\n t.asyncQueue.enqueueAndForget((function() {\n return n(s, void 0, void 0, (function() {\n var e;\n return r(this, (function(n) {\n switch (n.label) {\n case 0:\n return e = cu, [ 4 /*yield*/ , Du(t) ];\n\n case 1:\n return e.apply(void 0, [ n.sent(), u, o ]), [ 2 /*return*/ ];\n }\n }));\n }));\n }));\n }(i, t._databaseId, e, o), o;\n }(this._delegate, t);\n}\n\nfunction Qc(t) {\n var e, i, o = this;\n return (e = this._delegate, i = t, function(t, e) {\n var i = this;\n return t.asyncQueue.enqueue((function() {\n return n(i, void 0, void 0, (function() {\n var n;\n return r(this, (function(r) {\n switch (r.label) {\n case 0:\n return n = function(t, e) {\n var n = F(t);\n return n.persistence.runTransaction(\"Get named query\", \"readonly\", (function(t) {\n return n.Ke.getNamedQuery(t, e);\n }));\n }, [ 4 /*yield*/ , Su(t) ];\n\n case 1:\n return [ 2 /*return*/ , n.apply(void 0, [ r.sent(), e ]) ];\n }\n }));\n }));\n }));\n }(aa(e = zu(e, ua)), i).then((function(t) {\n return t ? new Xu(e, null, t.query) : null;\n }))).then((function(t) {\n return t ? new Mc(o, t) : null;\n }));\n}\n\nexport { ya as C, sa as E, kc as G, xc as H, Sc as K, _c as L, j as M, ua as T, Ec as U, Ac as W, Pc as Z, Qc as a, Kc as c, Mc as e, Uc as i, Dc as j, jc as o, qc as s, Fc as t, Gc as u };\n//# sourceMappingURL=prebuilt-2d830653-6eee25bb.js.map\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 * @format\n */\n'use strict';\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nvar AnimatedWithChildren = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedWithChildren, _AnimatedNode);\n\n function AnimatedWithChildren() {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n _this._children = [];\n return _this;\n }\n\n var _proto = AnimatedWithChildren.prototype;\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n _AnimatedNode.prototype.__makeNative.call(this);\n };\n\n _proto.__addChild = function __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n\n this._children.push(child);\n\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n };\n\n _proto.__removeChild = function __removeChild(child) {\n var index = this._children.indexOf(child);\n\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n\n this._children.splice(index, 1);\n\n if (this._children.length === 0) {\n this.__detach();\n }\n };\n\n _proto.__getChildren = function __getChildren() {\n return this._children;\n };\n\n _proto.__callListeners = function __callListeners(value) {\n _AnimatedNode.prototype.__callListeners.call(this, value);\n\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n };\n\n return AnimatedWithChildren;\n}(AnimatedNode);\n\nexport default AnimatedWithChildren;","import CounterStyle from './CounterStyle';\nexport * from './CounterStyle';\nexport * from './public-types';\nexport default CounterStyle;\n//# sourceMappingURL=index.js.map","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/**\n * The id of the profile that this span occured in.\n */\nexport const SEMANTIC_ATTRIBUTE_PROFILE_ID = 'profile_id';\n","import React from 'react';\nimport type { ResponsiveValue } from '../components/types';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { resolveValueWithBreakpoint } from './useThemeProps/utils';\nimport { useTheme } from './../hooks/useTheme';\n\ntype IProps = {\n [key: string]: ResponsiveValue;\n};\n\ntype INewProps = {\n [key: string]: number | string;\n};\n\nexport const useBreakpointResolvedProps = (props: IProps) => {\n const currentBreakpoint = useNativeBaseConfig('useBreakpointResolvedProps')\n .currentBreakpoint;\n const theme = useTheme();\n const newProps: INewProps = React.useMemo(() => {\n let newProps: INewProps = {};\n for (let key in props) {\n const rawValue = props[key];\n const value = resolveValueWithBreakpoint(\n rawValue,\n theme.breakpoints,\n currentBreakpoint,\n key\n );\n newProps[key] = value;\n }\n return newProps;\n }, [props, currentBreakpoint, theme.breakpoints]);\n\n return newProps;\n};\n","import merge from 'lodash.merge';\n\nconst SPECIFICITY_1000 = 1000;\nconst SPECIFICITY_110 = 110;\nconst SPECIFICITY_100 = 100;\nconst SPECIFICITY_70 = 70;\nconst SPECIFICITY_60 = 60;\nconst SPECIFICITY_55 = 55;\nconst SPECIFICITY_50 = 50;\nconst SPECIFICITY_40 = 40;\nconst SPECIFICITY_30 = 30;\n// SPECIFICITY_20 is being user for defferentiating between User Props and Theme Props. So any specificity less than SPECIFICITY_20 will be ovridable by user props.\nconst SPECIFICITY_20 = 20;\nconst SPECIFICITY_10 = 10;\nconst specificityPrecedence = [\n SPECIFICITY_1000,\n SPECIFICITY_110,\n SPECIFICITY_100,\n SPECIFICITY_70,\n SPECIFICITY_60,\n SPECIFICITY_55,\n SPECIFICITY_50,\n SPECIFICITY_40,\n SPECIFICITY_30,\n SPECIFICITY_20,\n SPECIFICITY_10,\n];\nconst INITIAL_PROP_SPECIFICITY = {\n [SPECIFICITY_1000]: 0,\n [SPECIFICITY_110]: 0,\n [SPECIFICITY_100]: 0,\n [SPECIFICITY_70]: 0,\n [SPECIFICITY_60]: 0,\n [SPECIFICITY_50]: 0,\n [SPECIFICITY_55]: 0,\n [SPECIFICITY_40]: 0,\n [SPECIFICITY_30]: 0,\n [SPECIFICITY_20]: 0,\n [SPECIFICITY_10]: 0,\n};\n\nconst pseudoPropsMap = {\n _web: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n _ios: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n _android: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n\n _light: { dependentOn: 'colormode', priority: SPECIFICITY_10 },\n _dark: { dependentOn: 'colormode', priority: SPECIFICITY_10 },\n\n // TODO: have to add more interactionProps and stateProps\n _indeterminate: {\n dependentOn: 'state',\n respondTo: 'isIndeterminate',\n priority: SPECIFICITY_30,\n },\n _checked: {\n dependentOn: 'state',\n respondTo: 'isChecked',\n priority: SPECIFICITY_30,\n },\n // Add new pseudeo props in between -------\n _readOnly: {\n dependentOn: 'state',\n respondTo: 'isReadOnly',\n priority: SPECIFICITY_30,\n },\n // Add new pseudeo props in between -------\n _invalid: {\n dependentOn: 'state',\n respondTo: 'isInvalid',\n priority: SPECIFICITY_40,\n },\n _focus: {\n dependentOn: 'state',\n respondTo: 'isFocused',\n priority: SPECIFICITY_50,\n },\n _focusVisible: {\n dependentOn: 'state',\n respondTo: 'isFocusVisible',\n priority: SPECIFICITY_55,\n },\n _hover: {\n dependentOn: 'state',\n respondTo: 'isHovered',\n priority: SPECIFICITY_60,\n },\n _pressed: {\n dependentOn: 'state',\n respondTo: 'isPressed',\n priority: SPECIFICITY_70,\n },\n _disabled: {\n dependentOn: 'state',\n respondTo: 'isDisabled',\n priority: SPECIFICITY_100,\n },\n _loading: {\n dependentOn: 'state',\n respondTo: 'isLoading',\n priority: SPECIFICITY_110,\n },\n _important: {\n dependentOn: null,\n priority: SPECIFICITY_1000,\n },\n} as const;\n\ntype IPseudoPropsMap = typeof pseudoPropsMap;\ntype ExtractState = {\n // @ts-ignore\n [P in keyof T as T[P]['respondTo']]?: boolean;\n};\nexport type IStateProps = ExtractState;\n\nexport const compareSpecificity = (\n exisiting: any,\n upcoming: any,\n ignorebaseTheme?: boolean\n // property?: any\n) => {\n if (!exisiting) return true;\n if (!upcoming) return false;\n const condition = ignorebaseTheme\n ? specificityPrecedence.length - 1\n : specificityPrecedence.length;\n for (let index = 0; index < condition; index++) {\n if (\n exisiting[specificityPrecedence[index]] >\n upcoming[specificityPrecedence[index]]\n ) {\n return false;\n } else if (\n exisiting[specificityPrecedence[index]] <\n upcoming[specificityPrecedence[index]]\n ) {\n return true;\n }\n }\n return true;\n};\n\nconst shouldResolvePseudoProp = ({\n property,\n state,\n platform,\n colormode,\n}: {\n property: keyof IPseudoPropsMap;\n state: IStateProps;\n platform: any;\n colormode: any;\n}) => {\n if (pseudoPropsMap[property].dependentOn === 'platform') {\n return property === `_${platform}`;\n } else if (pseudoPropsMap[property].dependentOn === 'colormode') {\n return property === `_${colormode}`;\n } else if (pseudoPropsMap[property].dependentOn === 'state') {\n // @ts-ignore\n return state[pseudoPropsMap[property].respondTo];\n } else if (pseudoPropsMap[property].dependentOn === null) {\n return true;\n } else {\n return false;\n }\n};\n\nconst simplifyProps = (\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificity,\n previouslyFlattenProps,\n cascadePseudoProps,\n }: any,\n flattenProps: any = {},\n specificityMap: any = {},\n priority: number\n) => {\n const mergePsuedoProps = (property: string, propertySpecity: object) => {\n if (compareSpecificity(specificityMap[property], propertySpecity, false)) {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as internal prop with higher specificity'\n );\n }\n specificityMap[property] = propertySpecity;\n // merging internal props (like, _text, _stack ...)\n flattenProps[property] = merge(\n {},\n flattenProps[property],\n props[property]\n );\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as internal prop with lower specificity'\n );\n }\n flattenProps[property] = merge(\n {},\n props[property],\n flattenProps[property]\n );\n }\n };\n for (const property in props) {\n // NOTE: the order is important here. Keep in mind while specificity breakpoints.\n const propertySpecity = currentSpecificity\n ? { ...currentSpecificity }\n : {\n ...INITIAL_PROP_SPECIFICITY,\n [SPECIFICITY_20]: priority,\n };\n\n if (\n // @ts-ignore\n state[pseudoPropsMap[property]?.respondTo] ||\n ['_dark', '_light', '_web', '_ios', '_android', '_important'].includes(\n property\n )\n ) {\n // @ts-ignore\n if (shouldResolvePseudoProp({ property, state, platform, colormode })) {\n // NOTE: Handling (state driven) props like _important, _web, _ios, _android, _dark, _light, _disabled, _focus, _focusVisible, _hover, _pressed, _readOnly, _invalid, .... Only when they are true.\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'recursively resolving'\n );\n }\n // @ts-ignore\n propertySpecity[pseudoPropsMap[property].priority]++;\n simplifyProps(\n {\n props: props[property],\n colormode,\n platform,\n state,\n currentSpecificity: propertySpecity,\n previouslyFlattenProps: previouslyFlattenProps,\n cascadePseudoProps,\n },\n flattenProps,\n specificityMap,\n priority\n );\n }\n // @ts-ignore\n } else if (pseudoPropsMap[property] === undefined) {\n if (property.startsWith('_')) {\n // NOTE: Handling (internal) props like _text, _stack, ....\n mergePsuedoProps(property, propertySpecity);\n } else {\n if (\n compareSpecificity(specificityMap[property], propertySpecity, false)\n ) {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as simple prop'\n );\n }\n specificityMap[property] = propertySpecity;\n // replacing simple props (like, p, m, bg, color, ...)\n flattenProps[property] = props[property];\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'ignored');\n }\n }\n }\n } else {\n // Can delete unused props\n if (!cascadePseudoProps) {\n delete flattenProps[property];\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'deleted');\n }\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'cascaded');\n }\n mergePsuedoProps(property, propertySpecity);\n }\n }\n }\n};\n\nexport const propsFlattener = (\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificityMap,\n previouslyFlattenProps,\n cascadePseudoProps,\n }: any,\n priority: number\n) => {\n const flattenProps: any = {};\n\n for (const property in props) {\n if (\n // @ts-ignore\n state[pseudoPropsMap[property]?.respondTo] === undefined &&\n property.startsWith('_')\n ) {\n flattenProps[property] = previouslyFlattenProps[property];\n }\n }\n\n const specificityMap = currentSpecificityMap || {};\n\n simplifyProps(\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificityMap,\n previouslyFlattenProps,\n cascadePseudoProps,\n },\n flattenProps,\n specificityMap,\n priority\n );\n\n return [flattenProps, specificityMap];\n};\n","import get from 'lodash.get';\nimport merge from 'lodash.merge';\nimport isEmpty from 'lodash.isempty';\nimport { Platform } from 'react-native';\nimport { useNativeBase } from '../useNativeBase';\nimport { useColorMode } from '../../core/color-mode';\nimport { omitUndefined, extractInObject } from '../../theme/tools';\nimport { useBreakpointResolvedProps } from '../useBreakpointResolvedProps';\nimport {\n propsFlattener,\n compareSpecificity,\n IStateProps,\n} from './propsFlattener';\nimport { useResponsiveSSRProps } from '../useResponsiveSSRProps';\nimport React from 'react';\nimport { ResponsiveQueryContext } from '../../utils/useResponsiveQuery/ResponsiveQueryProvider';\nimport type { ComponentTheme } from '../../theme';\n\nconst SPREAD_PROP_SPECIFICITY_ORDER = [\n 'p',\n 'padding',\n 'px',\n 'py',\n 'pt',\n 'pb',\n 'pl',\n 'pr',\n 'paddingTop',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'm',\n 'margin',\n 'mx',\n 'my',\n 'mt',\n 'mb',\n 'ml',\n 'mr',\n 'marginTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n];\n\nconst FINAL_SPREAD_PROPS = [\n 'paddingTop',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'marginTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n];\n\nconst MARGIN_MAP: any = {\n mx: ['marginRight', 'marginLeft'],\n my: ['marginTop', 'marginBottom'],\n mt: ['marginTop'],\n mb: ['marginBottom'],\n mr: ['marginRight'],\n ml: ['marginLeft'],\n};\n\nMARGIN_MAP.margin = [...MARGIN_MAP.mx, ...MARGIN_MAP.my];\nMARGIN_MAP.m = MARGIN_MAP.margin;\nMARGIN_MAP.marginTop = MARGIN_MAP.mt;\nMARGIN_MAP.marginBottom = MARGIN_MAP.mb;\nMARGIN_MAP.marginLeft = MARGIN_MAP.ml;\nMARGIN_MAP.marginRight = MARGIN_MAP.mr;\n\nconst PADDING_MAP: any = {\n px: ['paddingRight', 'paddingLeft'],\n py: ['paddingTop', 'paddingBottom'],\n pt: ['paddingTop'],\n pb: ['paddingBottom'],\n pr: ['paddingRight'],\n pl: ['paddingLeft'],\n};\n\nPADDING_MAP.padding = [...PADDING_MAP.px, ...PADDING_MAP.py];\nPADDING_MAP.p = PADDING_MAP.padding;\nPADDING_MAP.paddingTop = PADDING_MAP.pt;\nPADDING_MAP.paddingBottom = PADDING_MAP.pb;\nPADDING_MAP.paddingLeft = PADDING_MAP.pl;\nPADDING_MAP.paddingRight = PADDING_MAP.pr;\n\nconst SPREAD_PROP_SPECIFICITY_MAP: any = {\n ...PADDING_MAP,\n ...MARGIN_MAP,\n};\n\nfunction propsSpreader(incomingProps: any, incomingSpecifity: any) {\n const flattenedDefaultProps: any = { ...incomingProps };\n const specificity: any = {};\n\n SPREAD_PROP_SPECIFICITY_ORDER.forEach((prop) => {\n if (prop in flattenedDefaultProps) {\n const val = incomingProps[prop] || flattenedDefaultProps[prop];\n if (!FINAL_SPREAD_PROPS.includes(prop)) {\n delete flattenedDefaultProps[prop];\n specificity[prop] = incomingSpecifity[prop];\n }\n\n SPREAD_PROP_SPECIFICITY_MAP[prop].forEach((newProp: string) => {\n if (compareSpecificity(specificity[newProp], specificity[prop])) {\n specificity[newProp] = incomingSpecifity[prop];\n flattenedDefaultProps[newProp] = val;\n }\n });\n }\n });\n\n return merge({}, flattenedDefaultProps);\n}\n\n/**\n * @summary Combines provided porps with component's theme props and resloves them.\n * @arg {string} component - Name of the component.\n * @arg {object} incomingProps - Props passed by the user.\n * @arg {object} state - dependent states.\n * @arg {object} config - configuration for resolution. Accepts key like ignoreProps, resolveResponsively.\n * @returns {object} Resolved and flattened props.\n */\nexport function usePropsResolution(\n component: string,\n incomingProps: any,\n state?: IStateProps,\n config?: {\n componentTheme?: any;\n resolveResponsively?: string[];\n ignoreProps?: string[];\n cascadePseudoProps?: boolean;\n extendTheme?: string[];\n }\n) {\n const { theme } = useNativeBase();\n const componentTheme =\n config?.componentTheme ?? get(theme, `components.${component}`, {});\n\n if (process.env.NODE_ENV === 'development' && incomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c${component}`,\n 'background: #d97706; color: #111; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log(\n `%cusePropsResolution`,\n 'background: #4b5563; color: #d97706; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log(\n '%c incomingProps: ',\n 'color: #4ade80; font-weight: 700;',\n incomingProps\n );\n /* eslint-disable-next-line */\n console.log('%c state: ', 'color: #4ade80; font-weight: 700;', state);\n /* eslint-disable-next-line */\n console.log(\n '%c componentTheme: ',\n 'color: #4ade80; font-weight: 700;',\n componentTheme\n );\n }\n\n const resolvedProps = usePropsResolutionWithComponentTheme(\n componentTheme,\n incomingProps,\n state,\n config\n );\n\n // Not Resolve theme props and pseudo props\n if (incomingProps?.INTERNAL_notResolveThemeAndPseudoProps) {\n delete incomingProps.INTERNAL_notResolveThemeAndPseudoProps;\n return incomingProps;\n }\n\n if (process.env.NODE_ENV === 'development' && incomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n '%c resolvedProps: ',\n 'color: #22d3ee; font-weight: 700;',\n resolvedProps\n );\n }\n return resolvedProps;\n}\n\nexport const usePropsResolutionWithComponentTheme = (\n componentTheme: ComponentTheme,\n incomingProps: any,\n state?: IStateProps,\n config?: {\n componentTheme?: any;\n resolveResponsively?: string[];\n ignoreProps?: string[];\n cascadePseudoProps?: boolean;\n extendTheme?: string[];\n }\n) => {\n const modifiedPropsForSSR = useResponsiveSSRProps(incomingProps);\n\n const [ignoredProps, cleanIncomingProps] = extractInObject(\n modifiedPropsForSSR,\n ['children', 'onPress', 'icon', 'onOpen', 'onClose'].concat(\n config?.ignoreProps || []\n )\n );\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n const resolveResponsively = [\n 'colorScheme',\n 'size',\n 'variant',\n ...(config?.resolveResponsively || []),\n ];\n\n const { theme } = useNativeBase();\n const colorModeProps = useColorMode();\n\n const extendedTheme: Array = [];\n if (config?.extendTheme) {\n config?.extendTheme.map((componentName: string) => {\n extendedTheme.push(get(theme, `components.${componentName}`, {}));\n });\n }\n if (!isEmpty(componentTheme)) extendedTheme.push(componentTheme);\n\n const resolveComponentTheme = (\n themeType: Array,\n providedTheme: any\n ): any => {\n try {\n if (themeType[1]) {\n return typeof providedTheme[themeType[0]][themeType[1]] !== 'function'\n ? providedTheme[themeType[0]][themeType[1]]\n : providedTheme[themeType[0]][themeType[1]]({\n theme,\n ...incomingWithDefaultProps,\n ...colorModeProps,\n });\n } else {\n return typeof providedTheme[themeType[0]] !== 'function'\n ? providedTheme[themeType[0]]\n : providedTheme[themeType[0]]({\n theme,\n ...incomingWithDefaultProps,\n ...colorModeProps,\n });\n }\n } catch {\n return {};\n }\n };\n const callPropsFlattener = (\n targetProps = {},\n latestSpecifictyMap = {},\n specificity = 1\n ): any => {\n return propsFlattener(\n {\n props:\n process.env.NODE_ENV === 'development' && cleanIncomingProps.debug\n ? { ...targetProps, debug: true }\n : targetProps,\n platform: Platform.OS,\n colormode: colorModeProps.colorMode,\n state: state || {},\n currentSpecificityMap: latestSpecifictyMap,\n previouslyFlattenProps: flattenProps || {},\n cascadePseudoProps: config?.cascadePseudoProps,\n },\n specificity\n );\n };\n\n // STEP 1: combine default props and incoming props\n\n const incomingWithDefaultProps = merge(\n {},\n componentTheme.defaultProps || {},\n cleanIncomingProps\n );\n\n // STEP 1.5: resolving component theme\n let combinedBaseStyle = {};\n let combinedVariantStyle = {};\n let combinedSizeStyle = {};\n extendedTheme.map((extededComponentTheme: any) => {\n if (extededComponentTheme.baseStyle) {\n combinedBaseStyle = {\n ...combinedBaseStyle,\n ...resolveComponentTheme(['baseStyle'], extededComponentTheme),\n };\n }\n if (incomingWithDefaultProps.variant) {\n if (extededComponentTheme.variants) {\n combinedVariantStyle = {\n ...combinedVariantStyle,\n ...resolveComponentTheme(\n ['variants', incomingWithDefaultProps.variant],\n extededComponentTheme\n ),\n };\n }\n }\n if (\n incomingWithDefaultProps.size &&\n extededComponentTheme?.sizes &&\n extededComponentTheme?.sizes[incomingWithDefaultProps.size]\n ) {\n if (\n typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] ===\n 'string' ||\n typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] ===\n 'number'\n ) {\n incomingWithDefaultProps.size =\n extededComponentTheme.sizes[incomingWithDefaultProps.size];\n } else {\n combinedSizeStyle = {\n ...combinedSizeStyle,\n ...resolveComponentTheme(\n ['sizes', incomingWithDefaultProps.size],\n extededComponentTheme\n ),\n };\n incomingWithDefaultProps.size = undefined;\n }\n }\n });\n\n // STEP 2: flatten them\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening incoming and Default`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n //TODO: hack\n let flattenProps: any, specificityMap;\n [flattenProps, specificityMap] = callPropsFlattener(\n incomingWithDefaultProps,\n {},\n 2\n );\n const responsiveProps = {};\n if (disableCSSMediaQueries) {\n // STEP 2.5: resolving responsive props\n resolveResponsively.map((propsName) => {\n if (flattenProps[propsName]) {\n // @ts-ignore\n responsiveProps[propsName] = flattenProps[propsName];\n }\n });\n }\n if (resolveResponsively.includes('direction')) {\n const propName = 'direction';\n if (flattenProps[propName]) {\n // @ts-ignore\n responsiveProps[propName] = flattenProps[propName];\n }\n }\n const responsivelyResolvedProps = useBreakpointResolvedProps(responsiveProps);\n\n flattenProps = {\n ...flattenProps,\n ...responsivelyResolvedProps,\n };\n // STEP 3: Pass it to baseStyle, then variant and then size and resolve them.\n\n // NOTE: Resoloving baseStyle\n let flattenBaseStyle, baseSpecificityMap;\n if (combinedBaseStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening baseStyle`,\n 'background: #4b5563; color: #eee; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenBaseStyle, baseSpecificityMap] = callPropsFlattener(\n combinedBaseStyle,\n specificityMap\n );\n }\n\n // NOTE: Resolving variants\n let flattenVariantStyle, variantSpecificityMap;\n // Extracting props from variant\n if (combinedVariantStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening variantStyle`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenVariantStyle, variantSpecificityMap] = callPropsFlattener(\n combinedVariantStyle,\n baseSpecificityMap || specificityMap\n );\n\n // We remove variant from original props if we found it in the componentTheme\n //@ts-ignore\n flattenProps.variant = undefined;\n }\n\n // NOTE: Resolving size\n\n let flattenSizeStyle, sizeSpecificityMap;\n // Extracting props from size\n if (combinedSizeStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening sizeStyle`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenSizeStyle, sizeSpecificityMap] = callPropsFlattener(\n combinedSizeStyle,\n variantSpecificityMap || baseSpecificityMap || specificityMap\n );\n }\n\n // STEP 4: merge\n const defaultStyles = merge(\n {},\n flattenBaseStyle,\n flattenVariantStyle,\n flattenSizeStyle\n );\n\n /*Resolve all the internal used Pseudo Props*/\n const resolvePseudoProps = (\n flatPseudoProp: any /** Props coming from Pseudo inside flattenProps */,\n baseStylePseudoProp: any /** Props coming from Pseudo inside defaultStyles(baseStyle) */\n ) => {\n for (const prop in flatPseudoProp) {\n baseStylePseudoProp[prop] =\n flatPseudoProp[\n prop\n ]; /* Replace all the similar prop from from internal props */\n }\n return baseStylePseudoProp;\n };\n\n for (const prop in defaultStyles) {\n if (prop.startsWith('_') && flattenProps.hasOwnProperty(prop)) {\n /*Resolve all the internal used Pseudo Props*/\n defaultStyles[prop] = resolvePseudoProps(\n flattenProps[prop],\n defaultStyles[prop]\n );\n }\n delete flattenProps[prop];\n }\n\n const defaultSpecificity = merge(\n {},\n specificityMap,\n baseSpecificityMap,\n variantSpecificityMap,\n sizeSpecificityMap\n );\n\n flattenProps = propsSpreader(\n { ...defaultStyles, ...flattenProps },\n defaultSpecificity\n );\n\n const resolvedProps = omitUndefined({\n ...flattenProps,\n ...ignoredProps,\n });\n\n // STEP 5: Return\n return resolvedProps;\n};\n","import { useEffect, useState } from 'react';\nimport { useTheme } from '../hooks/useTheme';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { isResponsiveAnyProp } from '../theme/tools';\n\nexport function useResponsiveSSRProps(incomingProps: any) {\n const [modified, setModified] = useState(false);\n const theme = useTheme();\n\n const responsivePropsExists = isResponsiveAnyProp(incomingProps, theme);\n const isSSR = useNativeBaseConfig('useBreakpointResolvedProps').isSSR;\n\n let modifiedProps = incomingProps;\n if (responsivePropsExists && isSSR && !modified) {\n modifiedProps = { ...modifiedProps, key: Math.random() };\n }\n useEffect((): any => {\n if (responsivePropsExists && isSSR) {\n setModified(true);\n }\n }, [responsivePropsExists, isSSR]);\n\n return modifiedProps;\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 * \n * @format\n */\n\n/* eslint no-bitwise: 0 */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport normalizeColor from 'normalize-css-color';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar linear = function linear(t) {\n return 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 */\n\n\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n\n var outputRange = config.outputRange;\n checkInfiniteRange('outputRange', outputRange);\n var inputRange = config.inputRange;\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n invariant(inputRange.length === outputRange.length, 'inputRange (' + inputRange.length + ') and outputRange (' + outputRange.length + ') must have the same length');\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n var extrapolateRight = 'extend';\n\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return function (input) {\n invariant(typeof input === 'number', 'Cannot interpolation an input which is not a number');\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {// 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') {// 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\n return outputMax;\n } // Input Range\n\n\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 } // Easing\n\n\n result = easing(result); // Output Range\n\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) {\n var normalizedColor = normalizeColor(input);\n\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\n }\n\n normalizedColor = normalizedColor || 0;\n var r = (normalizedColor & 0xff000000) >>> 24;\n var g = (normalizedColor & 0x00ff0000) >>> 16;\n var b = (normalizedColor & 0x0000ff00) >>> 8;\n var a = (normalizedColor & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n}\n\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\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 */\n\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange); // ['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\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need to\n * guard against this possibility.\n */\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n return [];\n });\n outputRange.forEach(function (value) {\n /* $FlowFixMe(>=0.18.0): `value.match()` can return `null`. Need to guard\n * against this possibility.\n */\n value.match(stringShapeRegex).forEach(function (number, i) {\n outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex)\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need\n * to guard against this possibility. */\n .map(function (value, i) {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\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\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return function (input) {\n var i = 0; // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n\n return outputRange[0].replace(stringShapeRegex, function () {\n var val = +interpolations[i++](input);\n\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n\n return String(val);\n });\n };\n}\n\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\n\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(pattern === arr[i].replace(stringShapeRegex, ''), 'invalid pattern ' + arr[0] + ' and ' + arr[i]);\n }\n}\n\nfunction findRange(input, inputRange) {\n var i;\n\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n\n return i - 1;\n}\n\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1],\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly\n * convert to a string, like undefined, null, and object, etc. If you really\n * mean this implicit string conversion, you can do something like\n * String(myThing)\n */\n 'inputRange must be monotonically non-decreasing ' + arr);\n }\n}\n\nfunction checkInfiniteRange(name, arr) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly convert\n * to a string, like undefined, null, and object, etc. If you really mean\n * this implicit string conversion, you can do something like\n * String(myThing)\n */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\n\nvar AnimatedInterpolation = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedInterpolation, _AnimatedWithChildren);\n\n // Export for testing.\n function AnimatedInterpolation(parent, config) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._parent = parent;\n _this._config = config;\n _this._interpolation = createInterpolation(config);\n return _this;\n }\n\n var _proto = AnimatedInterpolation.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._parent.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n var parentValue = this._parent.__getValue();\n\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._parent.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._parent.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__transformDataType = function __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\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\n /* $FlowFixMe(>=0.38.0) - Flow error detected during the deployment of\n * v0.38.0. To see the error, remove this comment and run flow */\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n };\n\n return AnimatedInterpolation;\n}(AnimatedWithChildren);\n\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import React from 'react';\nimport {\n FocusScope as AriaFocusScope,\n useFocusManager,\n} from '@react-aria/focus';\nimport type { FocusScopeProps } from './FocusScope';\nconst FocusScope = ({ children, contain, ...props }: FocusScopeProps) => {\n /* Todo: stoping mounted and unMounted everytime contain is change */\n // if (contain === false) return <>;\n\n return (\n \n {children}\n \n );\n};\n\nexport { FocusScope, useFocusManager };\n","import { Easing } from 'react-native';\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/**\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 */\nexport const FadeInFromBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 350,\n easing: Easing.out(Easing.poly(5))\n }\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 */\nexport const FadeOutToBottomAndroidSpec = {\n animation: 'timing',\n config: {\n duration: 150,\n easing: Easing.in(Easing.linear)\n }\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 */\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/**\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 */\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\n/**\n * Configuration for bottom sheet slide in animation from Material Design.\n * See https://github.com/material-components/material-components-android/blob/fd3639092e1ffef9dc11bcedf79f32801d85e898/lib/java/com/google/android/material/bottomsheet/res/anim/mtrl_bottom_sheet_slide_in.xml\n */\nexport const BottomSheetSlideInSpec = {\n animation: 'timing',\n config: {\n duration: 250,\n // See https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/animation/AccelerateDecelerateInterpolator.java\n easing: t => Math.cos((t + 1) * Math.PI) / 2.0 + 0.5\n }\n};\n\n/**\n * Configuration for bottom sheet slide out animation from Material Design.\n * See https://github.com/material-components/material-components-android/blob/fd3639092e1ffef9dc11bcedf79f32801d85e898/lib/java/com/google/android/material/bottomsheet/res/anim/mtrl_bottom_sheet_slide_in.xml\n */\nexport const BottomSheetSlideOutSpec = {\n animation: 'timing',\n config: {\n duration: 200,\n // See https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/animation/AccelerateInterpolator.java\n easing: t => t === 1.0 ? 1 : Math.pow(t, 2)\n }\n};\n//# sourceMappingURL=TransitionSpecs.js.map","export function goBack() {\n return {\n type: 'GO_BACK'\n };\n}\n// eslint-disable-next-line no-redeclare\nexport function navigate() {\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n return {\n type: 'NAVIGATE',\n payload: {\n name: arguments.length <= 0 ? undefined : arguments[0],\n params: arguments.length <= 1 ? undefined : arguments[1]\n }\n };\n } else {\n const payload = (arguments.length <= 0 ? undefined : arguments[0]) || {};\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error('You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');\n }\n return {\n type: 'NAVIGATE',\n payload\n };\n }\n}\nexport function reset(state) {\n return {\n type: 'RESET',\n payload: state\n };\n}\nexport function setParams(params) {\n return {\n type: 'SET_PARAMS',\n payload: {\n params\n }\n };\n}\n//# sourceMappingURL=CommonActions.js.map","import { nanoid } from 'nanoid/non-secure';\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction(state, action) {\n switch (action.type) {\n case 'SET_PARAMS':\n {\n const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index === -1) {\n return null;\n }\n return {\n ...state,\n routes: state.routes.map((r, i) => i === index ? {\n ...r,\n params: {\n ...r.params,\n ...action.payload.params\n }\n } : r)\n };\n }\n case 'RESET':\n {\n const nextState = action.payload;\n if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {\n return null;\n }\n if (nextState.stale === false) {\n if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {\n return null;\n }\n return {\n ...nextState,\n routes: nextState.routes.map(route => route.key ? route : {\n ...route,\n key: `${route.name}-${nanoid()}`\n })\n };\n }\n return nextState;\n }\n default:\n return null;\n }\n },\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n }\n};\nexport default BaseRouter;\n//# sourceMappingURL=BaseRouter.js.map","import { nanoid } from 'nanoid/non-secure';\nimport BaseRouter from './BaseRouter';\nexport const StackActions = {\n replace(name, params) {\n return {\n type: 'REPLACE',\n payload: {\n name,\n params\n }\n };\n },\n push(name, params) {\n return {\n type: 'PUSH',\n payload: {\n name,\n params\n }\n };\n },\n pop() {\n let count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return {\n type: 'POP',\n payload: {\n count\n }\n };\n },\n popToTop() {\n return {\n type: 'POP_TO_TOP'\n };\n }\n};\nexport default function StackRouter(options) {\n const router = {\n ...BaseRouter,\n type: 'stack',\n getInitialState(_ref) {\n let {\n routeNames,\n routeParamList\n } = _ref;\n const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [{\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n }]\n };\n },\n getRehydratedState(partialState, _ref2) {\n let {\n routeNames,\n routeParamList\n } = _ref2;\n let state = partialState;\n if (state.stale === false) {\n return state;\n }\n const routes = state.routes.filter(route => routeNames.includes(route.name)).map(route => ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params: routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params\n } : route.params\n }));\n if (routes.length === 0) {\n const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n });\n }\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes\n };\n },\n getStateForRouteNamesChange(state, _ref3) {\n let {\n routeNames,\n routeParamList,\n routeKeyChanges\n } = _ref3;\n const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));\n if (routes.length === 0) {\n const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName]\n });\n }\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1)\n };\n },\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex(r => r.key === key);\n if (index === -1 || index === state.index) {\n return state;\n }\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1)\n };\n },\n getStateForAction(state, action, options) {\n const {\n routeParamList\n } = options;\n switch (action.type) {\n case 'REPLACE':\n {\n const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index === -1) {\n return null;\n }\n const {\n name,\n key,\n params\n } = action.payload;\n if (!state.routeNames.includes(name)) {\n return null;\n }\n return {\n ...state,\n routes: state.routes.map((route, i) => i === index ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params: routeParamList[name] !== undefined ? {\n ...routeParamList[name],\n ...params\n } : params\n } : route)\n };\n }\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n const route = id ? state.routes.find(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n }))) : undefined;\n let routes;\n if (route) {\n routes = state.routes.filter(r => r.key !== route.key);\n routes.push({\n ...route,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n });\n } else {\n routes = [...state.routes, {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n }];\n }\n return {\n ...state,\n index: routes.length - 1,\n routes\n };\n }\n return null;\n case 'POP':\n {\n const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes.slice(0, count).concat(state.routes.slice(index + 1));\n return {\n ...state,\n index: routes.length - 1,\n routes\n };\n }\n return null;\n }\n case 'POP_TO_TOP':\n return router.getStateForAction(state, {\n type: 'POP',\n payload: {\n count: state.routes.length - 1\n }\n }, options);\n case 'NAVIGATE':\n if (action.payload.name !== undefined && !state.routeNames.includes(action.payload.name)) {\n return null;\n }\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined && action.payload.name !== undefined ? options.routeGetIdList[action.payload.name] : undefined;\n const id = getId === null || getId === void 0 ? void 0 : getId({\n params: action.payload.params\n });\n if (id) {\n index = state.routes.findIndex(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({\n params: route.params\n })));\n } else if (state.routes[state.index].name === action.payload.name && action.payload.key === undefined || state.routes[state.index].key === action.payload.key) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (state.routes[i].name === action.payload.name && action.payload.key === undefined || state.routes[i].key === action.payload.key) {\n index = i;\n break;\n }\n }\n }\n if (index === -1 && action.payload.key && action.payload.name === undefined) {\n return null;\n }\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [...state.routes, {\n key: action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params: routeParamList[action.payload.name] !== undefined ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params\n } : action.payload.params\n }];\n return {\n ...state,\n routes,\n index: routes.length - 1\n };\n }\n const route = state.routes[index];\n let params;\n if (action.payload.merge) {\n params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params\n } : route.params;\n } else {\n params = routeParamList[route.name] !== undefined ? {\n ...routeParamList[route.name],\n ...action.payload.params\n } : action.payload.params;\n }\n return {\n ...state,\n index,\n routes: [...state.routes.slice(0, index), params !== route.params || action.payload.path && action.payload.path !== route.path ? {\n ...route,\n path: action.payload.path ?? route.path,\n params\n } : state.routes[index]]\n };\n }\n return null;\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(state, {\n type: 'POP',\n payload: {\n count: 1\n },\n target: action.target,\n source: action.source\n }, options);\n }\n return null;\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n actionCreators: StackActions\n };\n return router;\n}\n//# sourceMappingURL=StackRouter.js.map","import { CommonActions } from '@react-navigation/routers';\nexport const NOT_INITIALIZED_ERROR = \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\nexport default function createNavigationContainerRef() {\n const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions'];\n const listeners = {};\n const removeListener = (event, callback) => {\n if (listeners[event]) {\n listeners[event] = listeners[event].filter(cb => cb !== callback);\n }\n };\n let current = null;\n const ref = {\n get current() {\n return current;\n },\n set current(value) {\n current = value;\n if (value != null) {\n Object.entries(listeners).forEach(_ref => {\n let [event, callbacks] = _ref;\n callbacks.forEach(callback => {\n value.addListener(event, callback);\n });\n });\n }\n },\n isReady: () => {\n if (current == null) {\n return false;\n }\n return current.isReady();\n },\n ...methods.reduce((acc, name) => {\n acc[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (current == null) {\n switch (name) {\n case 'addListener':\n {\n const [event, callback] = args;\n listeners[event] = listeners[event] || [];\n listeners[event].push(callback);\n return () => removeListener(event, callback);\n }\n case 'removeListener':\n {\n const [event, callback] = args;\n removeListener(event, callback);\n break;\n }\n default:\n console.error(NOT_INITIALIZED_ERROR);\n }\n } else {\n // @ts-expect-error: this is ok\n return current[name](...args);\n }\n };\n return acc;\n }, {})\n };\n return ref;\n}\n//# sourceMappingURL=createNavigationContainerRef.js.map","import * as React from 'react';\nconst MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;\nexport const SingleNavigatorContext = /*#__PURE__*/React.createContext(undefined);\n\n/**\n * Component which ensures that there's only one navigator nested under it.\n */\nexport default function EnsureSingleNavigator(_ref) {\n let {\n children\n } = _ref;\n const navigatorKeyRef = React.useRef();\n const value = React.useMemo(() => ({\n register(key) {\n const currentKey = navigatorKeyRef.current;\n if (currentKey !== undefined && key !== currentKey) {\n throw new Error(MULTIPLE_NAVIGATOR_ERROR);\n }\n navigatorKeyRef.current = key;\n },\n unregister(key) {\n const currentKey = navigatorKeyRef.current;\n if (key !== currentKey) {\n return;\n }\n navigatorKeyRef.current = undefined;\n }\n }), []);\n return /*#__PURE__*/React.createElement(SingleNavigatorContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=EnsureSingleNavigator.js.map","export default function findFocusedRoute(state) {\n var _current2, _current3;\n let current = state;\n while (((_current = current) === null || _current === void 0 ? void 0 : _current.routes[current.index ?? 0].state) != null) {\n var _current;\n current = current.routes[current.index ?? 0].state;\n }\n const route = (_current2 = current) === null || _current2 === void 0 ? void 0 : _current2.routes[((_current3 = current) === null || _current3 === void 0 ? void 0 : _current3.index) ?? 0];\n return route;\n}\n//# sourceMappingURL=findFocusedRoute.js.map","import * as React from 'react';\n/**\n * Context which holds the required helpers needed to build nested navigators.\n */\nconst NavigationBuilderContext = /*#__PURE__*/React.createContext({\n onDispatchAction: () => undefined,\n onOptionsChange: () => undefined\n});\nexport default NavigationBuilderContext;\n//# sourceMappingURL=NavigationBuilderContext.js.map","import * as React from 'react';\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationContainerRefContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationContainerRefContext;\n//# sourceMappingURL=NavigationContainerRefContext.js.map","import * as React from 'react';\n/**\n * Context which holds the navigation prop for a screen.\n */\nconst NavigationContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationContext;\n//# sourceMappingURL=NavigationContext.js.map","import * as React from 'react';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationRouteContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationRouteContext;\n//# sourceMappingURL=NavigationRouteContext.js.map","import * as React from 'react';\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.\";\nexport default /*#__PURE__*/React.createContext({\n isDefault: true,\n get getKey() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setKey() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getState() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setState() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getIsInitial() {\n throw new Error(MISSING_CONTEXT_ERROR);\n }\n});\n//# sourceMappingURL=NavigationStateContext.js.map","import * as React from 'react';\nconst UnhandledActionContext = /*#__PURE__*/React.createContext(undefined);\nexport default UnhandledActionContext;\n//# sourceMappingURL=UnhandledActionContext.js.map","import * as React from 'react';\n/**\n * Hook which lets child navigators add action listeners.\n */\nexport default function useChildListeners() {\n const {\n current: listeners\n } = React.useRef({\n action: [],\n focus: []\n });\n const addListener = React.useCallback((type, listener) => {\n listeners[type].push(listener);\n let removed = false;\n return () => {\n const index = listeners[type].indexOf(listener);\n if (!removed && index > -1) {\n removed = true;\n listeners[type].splice(index, 1);\n }\n };\n }, [listeners]);\n return {\n listeners,\n addListener\n };\n}\n//# sourceMappingURL=useChildListeners.js.map","import * as React from 'react';\n/**\n * Hook to manage the event system used by the navigator to notify screens of various events.\n */\nexport default function useEventEmitter(listen) {\n const listenRef = React.useRef(listen);\n React.useEffect(() => {\n listenRef.current = listen;\n });\n const listeners = React.useRef(Object.create(null));\n const create = React.useCallback(target => {\n const removeListener = (type, callback) => {\n const callbacks = listeners.current[type] ? listeners.current[type][target] : undefined;\n if (!callbacks) {\n return;\n }\n const index = callbacks.indexOf(callback);\n if (index > -1) {\n callbacks.splice(index, 1);\n }\n };\n const addListener = (type, callback) => {\n listeners.current[type] = listeners.current[type] || {};\n listeners.current[type][target] = listeners.current[type][target] || [];\n listeners.current[type][target].push(callback);\n let removed = false;\n return () => {\n // Prevent removing other listeners when unsubscribing same listener multiple times\n if (!removed) {\n removed = true;\n removeListener(type, callback);\n }\n };\n };\n return {\n addListener,\n removeListener\n };\n }, []);\n const emit = React.useCallback(_ref => {\n var _items$target, _listenRef$current;\n let {\n type,\n data,\n target,\n canPreventDefault\n } = _ref;\n const items = listeners.current[type] || {};\n\n // Copy the current list of callbacks in case they are mutated during execution\n const callbacks = target !== undefined ? (_items$target = items[target]) === null || _items$target === void 0 ? void 0 : _items$target.slice() : [].concat(...Object.keys(items).map(t => items[t])).filter((cb, i, self) => self.lastIndexOf(cb) === i);\n const event = {\n get type() {\n return type;\n }\n };\n if (target !== undefined) {\n Object.defineProperty(event, 'target', {\n enumerable: true,\n get() {\n return target;\n }\n });\n }\n if (data !== undefined) {\n Object.defineProperty(event, 'data', {\n enumerable: true,\n get() {\n return data;\n }\n });\n }\n if (canPreventDefault) {\n let defaultPrevented = false;\n Object.defineProperties(event, {\n defaultPrevented: {\n enumerable: true,\n get() {\n return defaultPrevented;\n }\n },\n preventDefault: {\n enumerable: true,\n value() {\n defaultPrevented = true;\n }\n }\n });\n }\n (_listenRef$current = listenRef.current) === null || _listenRef$current === void 0 ? void 0 : _listenRef$current.call(listenRef, event);\n callbacks === null || callbacks === void 0 ? void 0 : callbacks.forEach(cb => cb(event));\n return event;\n }, []);\n return React.useMemo(() => ({\n create,\n emit\n }), [create, emit]);\n}\n//# sourceMappingURL=useEventEmitter.js.map","import * as React from 'react';\n/**\n * Hook which lets child navigators add getters to be called for obtaining rehydrated state.\n */\nexport default function useKeyedChildListeners() {\n const {\n current: keyedListeners\n } = React.useRef(Object.assign(Object.create(null), {\n getState: {},\n beforeRemove: {}\n }));\n const addKeyedListener = React.useCallback((type, key, listener) => {\n // @ts-expect-error: according to ref stated above you can use `key` to index type\n keyedListeners[type][key] = listener;\n return () => {\n // @ts-expect-error: according to ref stated above you can use `key` to index type\n keyedListeners[type][key] = undefined;\n };\n }, [keyedListeners]);\n return {\n keyedListeners,\n addKeyedListener\n };\n}\n//# sourceMappingURL=useKeyedChildListeners.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationStateContext from './NavigationStateContext';\nexport default function useOptionsGetters(_ref) {\n let {\n key,\n options,\n navigation\n } = _ref;\n const optionsRef = React.useRef(options);\n const optionsGettersFromChildRef = React.useRef({});\n const {\n onOptionsChange\n } = React.useContext(NavigationBuilderContext);\n const {\n addOptionsGetter: parentAddOptionsGetter\n } = React.useContext(NavigationStateContext);\n const optionsChangeListener = React.useCallback(() => {\n const isFocused = (navigation === null || navigation === void 0 ? void 0 : navigation.isFocused()) ?? true;\n const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n if (isFocused && !hasChildren) {\n onOptionsChange(optionsRef.current ?? {});\n }\n }, [navigation, onOptionsChange]);\n React.useEffect(() => {\n optionsRef.current = options;\n optionsChangeListener();\n return navigation === null || navigation === void 0 ? void 0 : navigation.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n const getOptionsFromListener = React.useCallback(() => {\n for (let key in optionsGettersFromChildRef.current) {\n if (optionsGettersFromChildRef.current.hasOwnProperty(key)) {\n var _optionsGettersFromCh, _optionsGettersFromCh2;\n const result = (_optionsGettersFromCh = (_optionsGettersFromCh2 = optionsGettersFromChildRef.current)[key]) === null || _optionsGettersFromCh === void 0 ? void 0 : _optionsGettersFromCh.call(_optionsGettersFromCh2);\n\n // null means unfocused route\n if (result !== null) {\n return result;\n }\n }\n }\n return null;\n }, []);\n const getCurrentOptions = React.useCallback(() => {\n const isFocused = (navigation === null || navigation === void 0 ? void 0 : navigation.isFocused()) ?? true;\n if (!isFocused) {\n return null;\n }\n const optionsFromListener = getOptionsFromListener();\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n React.useEffect(() => {\n return parentAddOptionsGetter === null || parentAddOptionsGetter === void 0 ? void 0 : parentAddOptionsGetter(key, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n const addOptionsGetter = React.useCallback((key, getter) => {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n }, [optionsChangeListener]);\n return {\n addOptionsGetter,\n getCurrentOptions\n };\n}\n//# sourceMappingURL=useOptionsGetters.js.map","import * as React from 'react';\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a schedule context.\";\nexport const ScheduleUpdateContext = /*#__PURE__*/React.createContext({\n scheduleUpdate() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n flushUpdates() {\n throw new Error(MISSING_CONTEXT_ERROR);\n }\n});\n\n/**\n * When screen config changes, we want to update the navigator in the same update phase.\n * However, navigation state is in the root component and React won't let us update it from a child.\n * This is a workaround for that, the scheduled update is stored in the ref without actually calling setState.\n * It lets all subsequent updates access the latest state so it stays correct.\n * Then we call setState during after the component updates.\n */\nexport default function useScheduleUpdate(callback) {\n const {\n scheduleUpdate,\n flushUpdates\n } = React.useContext(ScheduleUpdateContext);\n scheduleUpdate(callback);\n React.useEffect(flushUpdates);\n}\n//# sourceMappingURL=useScheduleUpdate.js.map","import * as React from 'react';\nconst UNINTIALIZED_STATE = {};\n\n/**\n * This is definitely not compatible with concurrent mode, but we don't have a solution for sync state yet.\n */\nexport default function useSyncState(initialState) {\n const stateRef = React.useRef(UNINTIALIZED_STATE);\n const isSchedulingRef = React.useRef(false);\n const isMountedRef = React.useRef(true);\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n if (stateRef.current === UNINTIALIZED_STATE) {\n stateRef.current =\n // @ts-expect-error: initialState is a function, but TypeScript doesn't think so\n typeof initialState === 'function' ? initialState() : initialState;\n }\n const [trackingState, setTrackingState] = React.useState(stateRef.current);\n const getState = React.useCallback(() => stateRef.current, []);\n const setState = React.useCallback(state => {\n if (state === stateRef.current || !isMountedRef.current) {\n return;\n }\n stateRef.current = state;\n if (!isSchedulingRef.current) {\n setTrackingState(state);\n }\n }, []);\n const scheduleUpdate = React.useCallback(callback => {\n isSchedulingRef.current = true;\n try {\n callback();\n } finally {\n isSchedulingRef.current = false;\n }\n }, []);\n const flushUpdates = React.useCallback(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n // Make sure that the tracking state is up-to-date.\n // We call it unconditionally, but React should skip the update if state is unchanged.\n setTrackingState(stateRef.current);\n }, []);\n\n // If we're rendering and the tracking state is out of date, update it immediately\n // This will make sure that our updates are applied as early as possible.\n if (trackingState !== stateRef.current) {\n setTrackingState(stateRef.current);\n }\n const state = stateRef.current;\n React.useDebugValue(state);\n return [state, getState, setState, scheduleUpdate, flushUpdates];\n}\n//# sourceMappingURL=useSyncState.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\nconst serializableWarnings = [];\nconst duplicateNameWarnings = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = state => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n key,\n routeNames,\n ...partialState\n } = state;\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map(route => {\n if (route.state === undefined) {\n return route;\n }\n return {\n ...route,\n state: getPartialState(route.state)\n };\n })\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function BaseNavigationContainer(_ref, ref) {\n let {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children\n } = _ref;\n const parent = React.useContext(NavigationStateContext);\n if (!parent.isDefault && !independent) {\n throw new Error(\"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\");\n }\n const [state, getState, setState, scheduleUpdate, flushUpdates] = useSyncState(() => getPartialState(initialState == null ? undefined : initialState));\n const isFirstMountRef = React.useRef(true);\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n const setKey = React.useCallback(key => {\n navigatorKeyRef.current = key;\n }, []);\n const {\n listeners,\n addListener\n } = useChildListeners();\n const {\n keyedListeners,\n addKeyedListener\n } = useKeyedChildListeners();\n const dispatch = React.useCallback(action => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch(action));\n }\n }, [listeners.focus]);\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n const {\n result,\n handled\n } = listeners.focus[0](navigation => navigation.canGoBack());\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n const resetRoot = React.useCallback(state => {\n var _keyedListeners$getSt, _keyedListeners$getSt2;\n const target = (state === null || state === void 0 ? void 0 : state.key) ?? ((_keyedListeners$getSt = (_keyedListeners$getSt2 = keyedListeners.getState).root) === null || _keyedListeners$getSt === void 0 ? void 0 : _keyedListeners$getSt.call(_keyedListeners$getSt2).key);\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch({\n ...CommonActions.reset(state),\n target\n }));\n }\n }, [keyedListeners.getState, listeners.focus]);\n const getRootState = React.useCallback(() => {\n var _keyedListeners$getSt3, _keyedListeners$getSt4;\n return (_keyedListeners$getSt3 = (_keyedListeners$getSt4 = keyedListeners.getState).root) === null || _keyedListeners$getSt3 === void 0 ? void 0 : _keyedListeners$getSt3.call(_keyedListeners$getSt4);\n }, [keyedListeners.getState]);\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n if (state == null) {\n return undefined;\n }\n const route = findFocusedRoute(state);\n return route;\n }, [getRootState]);\n const emitter = useEventEmitter();\n const {\n addOptionsGetter,\n getCurrentOptions\n } = useOptionsGetters({});\n const navigation = React.useMemo(() => ({\n ...Object.keys(CommonActions).reduce((acc, name) => {\n acc[name] = function () {\n return (\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...arguments))\n );\n };\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null,\n setOptions: () => {\n throw new Error('Cannot call setOptions outside a screen');\n }\n }), [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, listeners.focus, resetRoot]);\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n const onDispatchAction = React.useCallback((action, noop) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: {\n action,\n noop,\n stack: stackRef.current\n }\n });\n }, [emitter]);\n const lastEmittedOptionsRef = React.useRef();\n const onOptionsChange = React.useCallback(options => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n lastEmittedOptionsRef.current = options;\n emitter.emit({\n type: 'options',\n data: {\n options\n }\n });\n }, [emitter]);\n const stackRef = React.useRef();\n const builderContext = React.useMemo(() => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef\n }), [addListener, addKeyedListener, onDispatchAction, onOptionsChange]);\n const scheduleContext = React.useMemo(() => ({\n scheduleUpdate,\n flushUpdates\n }), [scheduleUpdate, flushUpdates]);\n const isInitialRef = React.useRef(true);\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n const context = React.useMemo(() => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter\n }), [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n React.useEffect(() => {\n const hydratedState = getRootState();\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n if (!serializableResult.serializable) {\n const {\n location,\n reason\n } = serializableResult;\n let path = '';\n let pointer = hydratedState;\n let params = false;\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n pointer = pointer[curr];\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (!params && typeof curr === 'number' && prev === 'routes') {\n var _pointer;\n path += (_pointer = pointer) === null || _pointer === void 0 ? void 0 : _pointer.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n const duplicateRouteNamesResult = checkDuplicateRouteNames(hydratedState);\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(locations => `\\n${locations.join(', ')}`)}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n emitter.emit({\n type: 'state',\n data: {\n state\n }\n });\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n const defaultOnUnhandledAction = React.useCallback(action => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n const payload = action.payload;\n let message = `The action '${action.type}'${payload ? ` with payload ${JSON.stringify(action.payload)}` : ''} was not handled by any navigator.`;\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload !== null && payload !== void 0 && payload.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n console.error(message);\n }, []);\n let element = /*#__PURE__*/React.createElement(NavigationContainerRefContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(ScheduleUpdateContext.Provider, {\n value: scheduleContext\n }, /*#__PURE__*/React.createElement(NavigationBuilderContext.Provider, {\n value: builderContext\n }, /*#__PURE__*/React.createElement(NavigationStateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(UnhandledActionContext.Provider, {\n value: onUnhandledAction ?? defaultOnUnhandledAction\n }, /*#__PURE__*/React.createElement(EnsureSingleNavigator, null, children))))));\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: undefined\n }, /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: undefined\n }, element));\n }\n return element;\n});\nexport default BaseNavigationContainer;\n//# sourceMappingURL=BaseNavigationContainer.js.map","/**\n * Empty component used for grouping screen configs.\n */\nexport default function Group(_) {\n /* istanbul ignore next */\n return null;\n}\n//# sourceMappingURL=Group.js.map","/**\n * Empty component used for specifying route configuration.\n */\nexport default function Screen(_) {\n /* istanbul ignore next */\n return null;\n}\n//# sourceMappingURL=Screen.js.map","import Group from './Group';\nimport Screen from './Screen';\n/**\n * Higher order component to create a `Navigator` and `Screen` pair.\n * Custom navigators should wrap the navigator component in `createNavigator` before exporting.\n *\n * @param Navigator The navigtor component to wrap.\n * @returns Factory method to create a `Navigator` and `Screen` pair.\n */\nexport default function createNavigatorFactory(Navigator) {\n return function () {\n if (arguments[0] !== undefined) {\n throw new Error(\"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.\");\n }\n return {\n Navigator,\n Group,\n Screen\n };\n };\n}\n//# sourceMappingURL=createNavigatorFactory.js.map","import * as React from 'react';\n\n/**\n * Context which holds the values for the current navigation tree.\n * Intended for use in SSR. This is not safe to use on the client.\n */\nconst CurrentRenderContext = /*#__PURE__*/React.createContext(undefined);\nexport default CurrentRenderContext;\n//# sourceMappingURL=CurrentRenderContext.js.map","export default function getActionFromState(state, options) {\n var _normalizedConfig$scr;\n // Create a normalized configs object which will be easier to use\n const normalizedConfig = options ? createNormalizedConfigItem(options) : {};\n const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;\n if (routes.length === 0) {\n return undefined;\n }\n if (!(routes.length === 1 && routes[0].key === undefined || routes.length === 2 && routes[0].key === undefined && routes[0].name === (normalizedConfig === null || normalizedConfig === void 0 ? void 0 : normalizedConfig.initialRouteName) && routes[1].key === undefined)) {\n return {\n type: 'RESET',\n payload: state\n };\n }\n const route = state.routes[state.index ?? state.routes.length - 1];\n let current = route === null || route === void 0 ? void 0 : route.state;\n let config = normalizedConfig === null || normalizedConfig === void 0 ? void 0 : (_normalizedConfig$scr = normalizedConfig.screens) === null || _normalizedConfig$scr === void 0 ? void 0 : _normalizedConfig$scr[route === null || route === void 0 ? void 0 : route.name];\n let params = {\n ...route.params\n };\n let payload = route ? {\n name: route.name,\n path: route.path,\n params\n } : undefined;\n while (current) {\n var _config, _config2, _config2$screens;\n if (current.routes.length === 0) {\n return undefined;\n }\n const routes = current.index != null ? current.routes.slice(0, current.index + 1) : current.routes;\n const route = routes[routes.length - 1];\n\n // Explicitly set to override existing value when merging params\n Object.assign(params, {\n initial: undefined,\n screen: undefined,\n params: undefined,\n state: undefined\n });\n if (routes.length === 1 && routes[0].key === undefined) {\n params.initial = true;\n params.screen = route.name;\n } else if (routes.length === 2 && routes[0].key === undefined && routes[0].name === ((_config = config) === null || _config === void 0 ? void 0 : _config.initialRouteName) && routes[1].key === undefined) {\n params.initial = false;\n params.screen = route.name;\n } else {\n params.state = current;\n break;\n }\n if (route.state) {\n params.params = {\n ...route.params\n };\n params = params.params;\n } else {\n params.path = route.path;\n params.params = route.params;\n }\n current = route.state;\n config = (_config2 = config) === null || _config2 === void 0 ? void 0 : (_config2$screens = _config2.screens) === null || _config2$screens === void 0 ? void 0 : _config2$screens[route.name];\n }\n if (!payload) {\n return;\n }\n\n // Try to construct payload for a `NAVIGATE` action from the state\n // This lets us preserve the navigation state and not lose it\n return {\n type: 'NAVIGATE',\n payload\n };\n}\nconst createNormalizedConfigItem = config => typeof config === 'object' && config != null ? {\n initialRouteName: config.initialRouteName,\n screens: config.screens != null ? createNormalizedConfigs(config.screens) : undefined\n} : {};\nconst createNormalizedConfigs = options => Object.entries(options).reduce((acc, _ref) => {\n let [k, v] = _ref;\n acc[k] = createNormalizedConfigItem(v);\n return acc;\n}, {});\n//# sourceMappingURL=getActionFromState.js.map","import * as React from 'react';\n/**\n * Utilites such as `getFocusedRouteNameFromRoute` need to access state.\n * So we need a way to suppress the warning for those use cases.\n * This is fine since they are internal utilities and this is not public API.\n */\nexport const CHILD_STATE = Symbol('CHILD_STATE');\n\n/**\n * Hook to cache route props for each screen in the navigator.\n * This lets add warnings and modifications to the route object but keep references between renders.\n */\nexport default function useRouteCache(routes) {\n // Cache object which holds route objects for each screen\n const cache = React.useMemo(() => ({\n current: new Map()\n }), []);\n if (process.env.NODE_ENV === 'production') {\n // We don't want the overhead of creating extra maps every render in prod\n return routes;\n }\n cache.current = routes.reduce((acc, route) => {\n const previous = cache.current.get(route);\n if (previous) {\n // If a cached route object already exists, reuse it\n acc.set(route, previous);\n } else {\n const {\n state,\n ...proxy\n } = route;\n Object.defineProperty(proxy, CHILD_STATE, {\n enumerable: false,\n value: state\n });\n acc.set(route, proxy);\n }\n return acc;\n }, new Map());\n return Array.from(cache.current.values());\n}\n//# sourceMappingURL=useRouteCache.js.map","// Object.fromEntries is not available in older iOS versions\nexport default function fromEntries(entries) {\n return entries.reduce((acc, _ref) => {\n let [k, v] = _ref;\n if (acc.hasOwnProperty(k)) {\n throw new Error(`A value for key '${k}' already exists in the object.`);\n }\n acc[k] = v;\n return acc;\n }, {});\n}\n//# sourceMappingURL=fromEntries.js.map","const formatToList = items => items.map(key => `- ${key}`).join('\\n');\nexport default function validatePathConfig(config) {\n let root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const validKeys = ['initialRouteName', 'screens'];\n if (!root) {\n validKeys.push('path', 'exact', 'stringify', 'parse');\n }\n const invalidKeys = Object.keys(config).filter(key => !validKeys.includes(key));\n if (invalidKeys.length) {\n throw new Error(`Found invalid properties in the configuration:\\n${formatToList(invalidKeys)}\\n\\nDid you forget to specify them under a 'screens' property?\\n\\nYou can only specify the following properties:\\n${formatToList(validKeys)}\\n\\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`);\n }\n if (config.screens) {\n Object.entries(config.screens).forEach(_ref => {\n let [_, value] = _ref;\n if (typeof value !== 'string') {\n validatePathConfig(value, false);\n }\n });\n }\n}\n//# sourceMappingURL=validatePathConfig.js.map","import * as queryString from 'query-string';\nimport fromEntries from './fromEntries';\nimport validatePathConfig from './validatePathConfig';\nconst getActiveRoute = state => {\n const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];\n if (route.state) {\n return getActiveRoute(route.state);\n }\n return route;\n};\n\n/**\n * Utility to serialize a navigation state object to a path string.\n *\n * @example\n * ```js\n * getPathFromState(\n * {\n * routes: [\n * {\n * name: 'Chat',\n * params: { author: 'Jane', id: 42 },\n * },\n * ],\n * },\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * stringify: { author: author => author.toLowerCase() }\n * }\n * }\n * }\n * )\n * ```\n *\n * @param state Navigation state to serialize.\n * @param options Extra options to fine-tune how to serialize the path.\n * @returns Path representing the state, e.g. /foo/bar?count=42.\n */\nexport default function getPathFromState(state, options) {\n if (state == null) {\n throw Error(\"Got 'undefined' for the navigation state. You must pass a valid state object.\");\n }\n if (options) {\n validatePathConfig(options);\n }\n\n // Create a normalized configs object which will be easier to use\n const configs = options !== null && options !== void 0 && options.screens ? createNormalizedConfigs(options === null || options === void 0 ? void 0 : options.screens) : {};\n let path = '/';\n let current = state;\n const allParams = {};\n while (current) {\n let index = typeof current.index === 'number' ? current.index : 0;\n let route = current.routes[index];\n let pattern;\n let focusedParams;\n let focusedRoute = getActiveRoute(state);\n let currentOptions = configs;\n\n // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined\n let nestedRouteNames = [];\n let hasNext = true;\n while (route.name in currentOptions && hasNext) {\n pattern = currentOptions[route.name].pattern;\n nestedRouteNames.push(route.name);\n if (route.params) {\n var _currentOptions$route;\n const stringify = (_currentOptions$route = currentOptions[route.name]) === null || _currentOptions$route === void 0 ? void 0 : _currentOptions$route.stringify;\n const currentParams = fromEntries(Object.entries(route.params).map(_ref => {\n let [key, value] = _ref;\n return [key, stringify !== null && stringify !== void 0 && stringify[key] ? stringify[key](value) : String(value)];\n }));\n if (pattern) {\n Object.assign(allParams, currentParams);\n }\n if (focusedRoute === route) {\n var _pattern;\n // If this is the focused route, keep the params for later use\n // We save it here since it's been stringified already\n focusedParams = {\n ...currentParams\n };\n (_pattern = pattern) === null || _pattern === void 0 ? void 0 : _pattern.split('/').filter(p => p.startsWith(':'))\n // eslint-disable-next-line no-loop-func\n .forEach(p => {\n const name = getParamName(p);\n\n // Remove the params present in the pattern since we'll only use the rest for query string\n if (focusedParams) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[name];\n }\n });\n }\n }\n\n // If there is no `screens` property or no nested state, we return pattern\n if (!currentOptions[route.name].screens || route.state === undefined) {\n hasNext = false;\n } else {\n index = typeof route.state.index === 'number' ? route.state.index : route.state.routes.length - 1;\n const nextRoute = route.state.routes[index];\n const nestedConfig = currentOptions[route.name].screens;\n\n // if there is config for next route name, we go deeper\n if (nestedConfig && nextRoute.name in nestedConfig) {\n route = nextRoute;\n currentOptions = nestedConfig;\n } else {\n // If not, there is no sense in going deeper in config\n hasNext = false;\n }\n }\n }\n if (pattern === undefined) {\n pattern = nestedRouteNames.join('/');\n }\n if (currentOptions[route.name] !== undefined) {\n path += pattern.split('/').map(p => {\n const name = getParamName(p);\n\n // We don't know what to show for wildcard patterns\n // Showing the route name seems ok, though whatever we show here will be incorrect\n // Since the page doesn't actually exist\n if (p === '*') {\n return route.name;\n }\n\n // If the path has a pattern for a param, put the param in the path\n if (p.startsWith(':')) {\n const value = allParams[name];\n if (value === undefined && p.endsWith('?')) {\n // Optional params without value assigned in route.params should be ignored\n return '';\n }\n return encodeURIComponent(value);\n }\n return encodeURIComponent(p);\n }).join('/');\n } else {\n path += encodeURIComponent(route.name);\n }\n if (!focusedParams) {\n focusedParams = focusedRoute.params;\n }\n if (route.state) {\n path += '/';\n } else if (focusedParams) {\n for (let param in focusedParams) {\n if (focusedParams[param] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[param];\n }\n }\n const query = queryString.stringify(focusedParams, {\n sort: false\n });\n if (query) {\n path += `?${query}`;\n }\n }\n current = route.state;\n }\n\n // Remove multiple as well as trailing slashes\n path = path.replace(/\\/+/g, '/');\n path = path.length > 1 ? path.replace(/\\/$/, '') : path;\n return path;\n}\nconst getParamName = pattern => pattern.replace(/^:/, '').replace(/\\?$/, '');\nconst joinPaths = function () {\n for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {\n paths[_key] = arguments[_key];\n }\n return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');\n};\nconst createConfigItem = (config, parentPattern) => {\n var _pattern2;\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n return {\n pattern\n };\n }\n\n // If an object is specified as the value (e.g. Foo: { ... }),\n // It can have `path` property and `screens` prop which has nested configs\n let pattern;\n if (config.exact && config.path === undefined) {\n throw new Error(\"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\");\n }\n pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';\n const screens = config.screens ? createNormalizedConfigs(config.screens, pattern) : undefined;\n return {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern: (_pattern2 = pattern) === null || _pattern2 === void 0 ? void 0 : _pattern2.split('/').filter(Boolean).join('/'),\n stringify: config.stringify,\n screens\n };\n};\nconst createNormalizedConfigs = (options, pattern) => fromEntries(Object.entries(options).map(_ref2 => {\n let [name, c] = _ref2;\n const result = createConfigItem(c, pattern);\n return [name, result];\n}));\n//# sourceMappingURL=getPathFromState.js.map","import escape from 'escape-string-regexp';\nimport * as queryString from 'query-string';\nimport findFocusedRoute from './findFocusedRoute';\nimport validatePathConfig from './validatePathConfig';\n/**\n * Utility to parse a path string to initial state object accepted by the container.\n * This is useful for deep linking when we need to handle the incoming URL.\n *\n * @example\n * ```js\n * getStateFromPath(\n * '/chat/jane/42',\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * parse: { id: Number }\n * }\n * }\n * }\n * )\n * ```\n * @param path Path string to parse and convert, e.g. /foo/bar?count=42.\n * @param options Extra options to fine-tune how to parse the path.\n */\nexport default function getStateFromPath(path, options) {\n if (options) {\n validatePathConfig(options);\n }\n let initialRoutes = [];\n if (options !== null && options !== void 0 && options.initialRouteName) {\n initialRoutes.push({\n initialRouteName: options.initialRouteName,\n parentScreens: []\n });\n }\n const screens = options === null || options === void 0 ? void 0 : options.screens;\n let remaining = path.replace(/\\/+/g, '/') // Replace multiple slash (//) with single ones\n .replace(/^\\//, '') // Remove extra leading slash\n .replace(/\\?.*$/, ''); // Remove query params which we will handle later\n\n // Make sure there is a trailing slash\n remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;\n if (screens === undefined) {\n // When no config is specified, use the path segments as route names\n const routes = remaining.split('/').filter(Boolean).map(segment => {\n const name = decodeURIComponent(segment);\n return {\n name\n };\n });\n if (routes.length) {\n return createNestedStateObject(path, routes, initialRoutes);\n }\n return undefined;\n }\n\n // Create a normalized configs array which will be easier to use\n const configs = [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, [], initialRoutes, []))).sort((a, b) => {\n // Sort config so that:\n // - the most exhaustive ones are always at the beginning\n // - patterns with wildcard are always at the end\n\n // If 2 patterns are same, move the one with less route names up\n // This is an error state, so it's only useful for consistent error messages\n if (a.pattern === b.pattern) {\n return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));\n }\n\n // If one of the patterns starts with the other, it's more exhaustive\n // So move it up\n if (a.pattern.startsWith(b.pattern)) {\n return -1;\n }\n if (b.pattern.startsWith(a.pattern)) {\n return 1;\n }\n const aParts = a.pattern.split('/');\n const bParts = b.pattern.split('/');\n for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n // if b is longer, b get higher priority\n if (aParts[i] == null) {\n return 1;\n }\n // if a is longer, a get higher priority\n if (bParts[i] == null) {\n return -1;\n }\n const aWildCard = aParts[i] === '*' || aParts[i].startsWith(':');\n const bWildCard = bParts[i] === '*' || bParts[i].startsWith(':');\n // if both are wildcard we compare next component\n if (aWildCard && bWildCard) {\n continue;\n }\n // if only a is wild card, b get higher priority\n if (aWildCard) {\n return 1;\n }\n // if only b is wild card, a get higher priority\n if (bWildCard) {\n return -1;\n }\n }\n return bParts.length - aParts.length;\n });\n\n // Check for duplicate patterns in the config\n configs.reduce((acc, config) => {\n if (acc[config.pattern]) {\n const a = acc[config.pattern].routeNames;\n const b = config.routeNames;\n\n // It's not a problem if the path string omitted from a inner most screen\n // For example, it's ok if a path resolves to `A > B > C` or `A > B`\n const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);\n if (!intersects) {\n throw new Error(`Found conflicting screens with the same pattern. The pattern '${config.pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`);\n }\n }\n return Object.assign(acc, {\n [config.pattern]: config\n });\n }, {});\n if (remaining === '/') {\n // We need to add special handling of empty path so navigation to empty path also works\n // When handling empty path, we should only look at the root level config\n const match = configs.find(config => config.path === '' && config.routeNames.every(\n // Make sure that none of the parent configs have a non-empty path defined\n name => {\n var _configs$find;\n return !((_configs$find = configs.find(c => c.screen === name)) !== null && _configs$find !== void 0 && _configs$find.path);\n }));\n if (match) {\n return createNestedStateObject(path, match.routeNames.map(name => ({\n name\n })), initialRoutes, configs);\n }\n return undefined;\n }\n let result;\n let current;\n\n // We match the whole path against the regex instead of segments\n // This makes sure matches such as wildcard will catch any unmatched routes, even if nested\n const {\n routes,\n remainingPath\n } = matchAgainstConfigs(remaining, configs.map(c => ({\n ...c,\n // Add `$` to the regex to make sure it matches till end of the path and not just beginning\n regex: c.regex ? new RegExp(c.regex.source + '$') : undefined\n })));\n if (routes !== undefined) {\n // This will always be empty if full path matched\n current = createNestedStateObject(path, routes, initialRoutes, configs);\n remaining = remainingPath;\n result = current;\n }\n if (current == null || result == null) {\n return undefined;\n }\n return result;\n}\nconst joinPaths = function () {\n for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {\n paths[_key] = arguments[_key];\n }\n return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');\n};\nconst matchAgainstConfigs = (remaining, configs) => {\n let routes;\n let remainingPath = remaining;\n\n // Go through all configs, and see if the next path segment matches our regex\n for (const config of configs) {\n if (!config.regex) {\n continue;\n }\n const match = remainingPath.match(config.regex);\n\n // If our regex matches, we need to extract params from the path\n if (match) {\n var _config$pattern;\n const matchedParams = (_config$pattern = config.pattern) === null || _config$pattern === void 0 ? void 0 : _config$pattern.split('/').filter(p => p.startsWith(':')).reduce((acc, p, i) => Object.assign(acc, {\n // The param segments appear every second item starting from 2 in the regex match result\n [p]: match[(i + 1) * 2].replace(/\\//, '')\n }), {});\n routes = config.routeNames.map(name => {\n var _config$path;\n const config = configs.find(c => c.screen === name);\n const params = config === null || config === void 0 ? void 0 : (_config$path = config.path) === null || _config$path === void 0 ? void 0 : _config$path.split('/').filter(p => p.startsWith(':')).reduce((acc, p) => {\n const value = matchedParams[p];\n if (value) {\n var _config$parse;\n const key = p.replace(/^:/, '').replace(/\\?$/, '');\n acc[key] = (_config$parse = config.parse) !== null && _config$parse !== void 0 && _config$parse[key] ? config.parse[key](value) : value;\n }\n return acc;\n }, {});\n if (params && Object.keys(params).length) {\n return {\n name,\n params\n };\n }\n return {\n name\n };\n });\n remainingPath = remainingPath.replace(match[1], '');\n break;\n }\n }\n return {\n routes,\n remainingPath\n };\n};\nconst createNormalizedConfigs = function (screen, routeConfig) {\n let routeNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n let initials = arguments.length > 3 ? arguments[3] : undefined;\n let parentScreens = arguments.length > 4 ? arguments[4] : undefined;\n let parentPattern = arguments.length > 5 ? arguments[5] : undefined;\n const configs = [];\n routeNames.push(screen);\n parentScreens.push(screen);\n\n // @ts-expect-error: we can't strongly typecheck this for now\n const config = routeConfig[screen];\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n configs.push(createConfigItem(screen, routeNames, pattern, config));\n } else if (typeof config === 'object') {\n let pattern;\n\n // if an object is specified as the value (e.g. Foo: { ... }),\n // it can have `path` property and\n // it could have `screens` prop which has nested configs\n if (typeof config.path === 'string') {\n if (config.exact && config.path === undefined) {\n throw new Error(\"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\");\n }\n pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';\n configs.push(createConfigItem(screen, routeNames, pattern, config.path, config.parse));\n }\n if (config.screens) {\n // property `initialRouteName` without `screens` has no purpose\n if (config.initialRouteName) {\n initials.push({\n initialRouteName: config.initialRouteName,\n parentScreens\n });\n }\n Object.keys(config.screens).forEach(nestedConfig => {\n const result = createNormalizedConfigs(nestedConfig, config.screens, routeNames, initials, [...parentScreens], pattern ?? parentPattern);\n configs.push(...result);\n });\n }\n }\n routeNames.pop();\n return configs;\n};\nconst createConfigItem = (screen, routeNames, pattern, path, parse) => {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern = pattern.split('/').filter(Boolean).join('/');\n const regex = pattern ? new RegExp(`^(${pattern.split('/').map(it => {\n if (it.startsWith(':')) {\n return `(([^/]+\\\\/)${it.endsWith('?') ? '?' : ''})`;\n }\n return `${it === '*' ? '.*' : escape(it)}\\\\/`;\n }).join('')})`) : undefined;\n return {\n screen,\n regex,\n pattern,\n path,\n // The routeNames array is mutated, so copy it to keep the current state\n routeNames: [...routeNames],\n parse\n };\n};\nconst findParseConfigForRoute = (routeName, flatConfig) => {\n for (const config of flatConfig) {\n if (routeName === config.routeNames[config.routeNames.length - 1]) {\n return config.parse;\n }\n }\n return undefined;\n};\n\n// Try to find an initial route connected with the one passed\nconst findInitialRoute = (routeName, parentScreens, initialRoutes) => {\n for (const config of initialRoutes) {\n if (parentScreens.length === config.parentScreens.length) {\n let sameParents = true;\n for (let i = 0; i < parentScreens.length; i++) {\n if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {\n sameParents = false;\n break;\n }\n }\n if (sameParents) {\n return routeName !== config.initialRouteName ? config.initialRouteName : undefined;\n }\n }\n }\n return undefined;\n};\n\n// returns state object with values depending on whether\n// it is the end of state and if there is initialRoute for this level\nconst createStateObject = (initialRoute, route, isEmpty) => {\n if (isEmpty) {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{\n name: initialRoute\n }, route]\n };\n } else {\n return {\n routes: [route]\n };\n }\n } else {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{\n name: initialRoute\n }, {\n ...route,\n state: {\n routes: []\n }\n }]\n };\n } else {\n return {\n routes: [{\n ...route,\n state: {\n routes: []\n }\n }]\n };\n }\n }\n};\nconst createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {\n let state;\n let route = routes.shift();\n const parentScreens = [];\n let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n parentScreens.push(route.name);\n state = createStateObject(initialRoute, route, routes.length === 0);\n if (routes.length > 0) {\n let nestedState = state;\n while (route = routes.shift()) {\n initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;\n nestedState.routes[nestedStateIndex].state = createStateObject(initialRoute, route, routes.length === 0);\n if (routes.length > 0) {\n nestedState = nestedState.routes[nestedStateIndex].state;\n }\n parentScreens.push(route.name);\n }\n }\n route = findFocusedRoute(state);\n route.path = path;\n const params = parseQueryParams(path, flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined);\n if (params) {\n route.params = {\n ...route.params,\n ...params\n };\n }\n return state;\n};\nconst parseQueryParams = (path, parseConfig) => {\n const query = path.split('?')[1];\n const params = queryString.parse(query);\n if (parseConfig) {\n Object.keys(params).forEach(name => {\n if (Object.hasOwnProperty.call(parseConfig, name) && typeof params[name] === 'string') {\n params[name] = parseConfig[name](params[name]);\n }\n });\n }\n return Object.keys(params).length ? params : undefined;\n};\n//# sourceMappingURL=getStateFromPath.js.map","import * as React from 'react';\n/**\n * Context which holds the navigation helpers of the parent navigator.\n * Navigators should use this context in their view component.\n */\nconst NavigationHelpersContext = /*#__PURE__*/React.createContext(undefined);\nexport default NavigationHelpersContext;\n//# sourceMappingURL=NavigationHelpersContext.js.map","import * as React from 'react';\n\n/**\n * A type of an object that have a route key as an object key\n * and a value whether to prevent that route.\n */\n\nconst PreventRemoveContext = /*#__PURE__*/React.createContext(undefined);\nexport default PreventRemoveContext;\n//# sourceMappingURL=PreventRemoveContext.js.map","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport useLatestCallback from 'use-latest-callback';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport PreventRemoveContext from './PreventRemoveContext';\n/**\n * Util function to transform map of prevented routes to a simpler object.\n */\nconst transformPreventedRoutes = preventedRoutesMap => {\n const preventedRoutesToTransform = [...preventedRoutesMap.values()];\n const preventedRoutes = preventedRoutesToTransform.reduce((acc, _ref) => {\n var _acc$routeKey;\n let {\n routeKey,\n preventRemove\n } = _ref;\n acc[routeKey] = {\n preventRemove: ((_acc$routeKey = acc[routeKey]) === null || _acc$routeKey === void 0 ? void 0 : _acc$routeKey.preventRemove) || preventRemove\n };\n return acc;\n }, {});\n return preventedRoutes;\n};\n\n/**\n * Component used for managing which routes have to be prevented from removal in native-stack.\n */\nexport default function PreventRemoveProvider(_ref2) {\n let {\n children\n } = _ref2;\n const [parentId] = React.useState(() => nanoid());\n const [preventedRoutesMap, setPreventedRoutesMap] = React.useState(new Map());\n const navigation = React.useContext(NavigationHelpersContext);\n const route = React.useContext(NavigationRouteContext);\n const preventRemoveContextValue = React.useContext(PreventRemoveContext);\n // take `setPreventRemove` from parent context - if exist it means we're in a nested context\n const setParentPrevented = preventRemoveContextValue === null || preventRemoveContextValue === void 0 ? void 0 : preventRemoveContextValue.setPreventRemove;\n const setPreventRemove = useLatestCallback((id, routeKey, preventRemove) => {\n if (preventRemove && (navigation == null || navigation !== null && navigation !== void 0 && navigation.getState().routes.every(route => route.key !== routeKey))) {\n throw new Error(`Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`);\n }\n setPreventedRoutesMap(prevPrevented => {\n var _prevPrevented$get, _prevPrevented$get2;\n // values haven't changed - do nothing\n if (routeKey === ((_prevPrevented$get = prevPrevented.get(id)) === null || _prevPrevented$get === void 0 ? void 0 : _prevPrevented$get.routeKey) && preventRemove === ((_prevPrevented$get2 = prevPrevented.get(id)) === null || _prevPrevented$get2 === void 0 ? void 0 : _prevPrevented$get2.preventRemove)) {\n return prevPrevented;\n }\n const nextPrevented = new Map(prevPrevented);\n if (preventRemove) {\n nextPrevented.set(id, {\n routeKey,\n preventRemove\n });\n } else {\n nextPrevented.delete(id);\n }\n return nextPrevented;\n });\n });\n const isPrevented = [...preventedRoutesMap.values()].some(_ref3 => {\n let {\n preventRemove\n } = _ref3;\n return preventRemove;\n });\n React.useEffect(() => {\n if ((route === null || route === void 0 ? void 0 : route.key) !== undefined && setParentPrevented !== undefined) {\n // when route is defined (and setParentPrevented) it means we're in a nested stack\n // route.key then will be the route key of parent\n setParentPrevented(parentId, route.key, isPrevented);\n return () => {\n setParentPrevented(parentId, route.key, false);\n };\n }\n return;\n }, [parentId, isPrevented, route === null || route === void 0 ? void 0 : route.key, setParentPrevented]);\n const value = React.useMemo(() => ({\n setPreventRemove,\n preventedRoutes: transformPreventedRoutes(preventedRoutesMap)\n }), [setPreventRemove, preventedRoutesMap]);\n return /*#__PURE__*/React.createElement(PreventRemoveContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=PreventRemoveProvider.js.map","import * as React from 'react';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\n/**\n * Hook to access the navigation prop of the parent screen anywhere.\n *\n * @returns Navigation prop of the parent screen.\n */\nexport default function useNavigation() {\n const root = React.useContext(NavigationContainerRefContext);\n const navigation = React.useContext(NavigationContext);\n if (navigation === undefined && root === undefined) {\n throw new Error(\"Couldn't find a navigation object. Is your component inside NavigationContainer?\");\n }\n\n // FIXME: Figure out a better way to do this\n return navigation ?? root;\n}\n//# sourceMappingURL=useNavigation.js.map","/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nexport default function isArrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (a.length !== b.length) {\n return false;\n }\n return a.every((it, index) => it === b[index]);\n}\n//# sourceMappingURL=isArrayEqual.js.map","import * as React from 'react';\nconst NavigationContent = _ref => {\n let {\n render,\n children\n } = _ref;\n return render(children);\n};\nexport default function useComponent(render) {\n const renderRef = React.useRef(render);\n\n // Normally refs shouldn't be mutated in render\n // But we return a component which will be rendered\n // So it's just for immediate consumption\n renderRef.current = render;\n React.useEffect(() => {\n renderRef.current = null;\n });\n return React.useRef(_ref2 => {\n let {\n children\n } = _ref2;\n const render = renderRef.current;\n if (render === null) {\n throw new Error('The returned component must be rendered in the same render phase as the hook.');\n }\n return /*#__PURE__*/React.createElement(NavigationContent, {\n render: render\n }, children);\n }).current;\n}\n//# sourceMappingURL=useComponent.js.map","import * as React from 'react';\n\n/**\n * Component which prevents updates for children if no props changed\n */\nfunction StaticContainer(props) {\n return props.children;\n}\nexport default /*#__PURE__*/React.memo(StaticContainer, (prevProps, nextProps) => {\n const prevPropKeys = Object.keys(prevProps);\n const nextPropKeys = Object.keys(nextProps);\n if (prevPropKeys.length !== nextPropKeys.length) {\n return false;\n }\n for (const key of prevPropKeys) {\n if (key === 'children') {\n continue;\n }\n if (prevProps[key] !== nextProps[key]) {\n return false;\n }\n }\n return true;\n});\n//# sourceMappingURL=StaticContainer.js.map","import * as React from 'react';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport NavigationStateContext from './NavigationStateContext';\nimport StaticContainer from './StaticContainer';\nimport useOptionsGetters from './useOptionsGetters';\n/**\n * Component which takes care of rendering the screen for a route.\n * It provides all required contexts and applies optimizations when applicable.\n */\nexport default function SceneView(_ref) {\n let {\n screen,\n route,\n navigation,\n routeState,\n getState,\n setState,\n options,\n clearOptions\n } = _ref;\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n const {\n addOptionsGetter\n } = useOptionsGetters({\n key: route.key,\n options,\n navigation\n });\n const setKey = React.useCallback(key => {\n navigatorKeyRef.current = key;\n }, []);\n const getCurrentState = React.useCallback(() => {\n const state = getState();\n const currentRoute = state.routes.find(r => r.key === route.key);\n return currentRoute ? currentRoute.state : undefined;\n }, [getState, route.key]);\n const setCurrentState = React.useCallback(child => {\n const state = getState();\n setState({\n ...state,\n routes: state.routes.map(r => r.key === route.key ? {\n ...r,\n state: child\n } : r)\n });\n }, [getState, route.key, setState]);\n const isInitialRef = React.useRef(true);\n React.useEffect(() => {\n isInitialRef.current = false;\n });\n\n // Clear options set by this screen when it is unmounted\n React.useEffect(() => {\n return clearOptions;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n const context = React.useMemo(() => ({\n state: routeState,\n getState: getCurrentState,\n setState: setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter\n }), [routeState, getCurrentState, setCurrentState, getKey, setKey, getIsInitial, addOptionsGetter]);\n const ScreenComponent = screen.getComponent ? screen.getComponent() : screen.component;\n return /*#__PURE__*/React.createElement(NavigationStateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(EnsureSingleNavigator, null, /*#__PURE__*/React.createElement(StaticContainer, {\n name: screen.name,\n render: ScreenComponent || screen.children,\n navigation: navigation,\n route: route\n }, ScreenComponent !== undefined ? /*#__PURE__*/React.createElement(ScreenComponent, {\n navigation: navigation,\n route: route\n }) : screen.children !== undefined ? screen.children({\n navigation,\n route\n }) : null)));\n}\n//# sourceMappingURL=SceneView.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport SceneView from './SceneView';\nimport useNavigationCache from './useNavigationCache';\nimport useRouteCache from './useRouteCache';\n/**\n * Hook to create descriptor objects for the child routes.\n *\n * A descriptor object provides 3 things:\n * - Helper method to render a screen\n * - Options specified by the screen for the navigator\n * - Navigation object intended for the route\n */\nexport default function useDescriptors(_ref) {\n let {\n state,\n screens,\n navigation,\n screenOptions,\n defaultScreenOptions,\n onAction,\n getState,\n setState,\n addListener,\n addKeyedListener,\n onRouteFocus,\n router,\n emitter\n } = _ref;\n const [options, setOptions] = React.useState({});\n const {\n onDispatchAction,\n onOptionsChange,\n stackRef\n } = React.useContext(NavigationBuilderContext);\n const context = React.useMemo(() => ({\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef\n }), [navigation, onAction, addListener, addKeyedListener, onRouteFocus, onDispatchAction, onOptionsChange, stackRef]);\n const navigations = useNavigationCache({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter\n });\n const routes = useRouteCache(state.routes);\n return routes.reduce((acc, route, i) => {\n const config = screens[route.name];\n const screen = config.props;\n const navigation = navigations[route.key];\n const optionsList = [\n // The default `screenOptions` passed to the navigator\n screenOptions,\n // The `screenOptions` props passed to `Group` elements\n ...(config.options ? config.options.filter(Boolean) : []),\n // The `options` prop passed to `Screen` elements,\n screen.options,\n // The options set via `navigation.setOptions`\n options[route.key]];\n const customOptions = optionsList.reduce((acc, curr) => Object.assign(acc,\n // @ts-expect-error: we check for function but TS still complains\n typeof curr !== 'function' ? curr : curr({\n route,\n navigation\n })), {});\n const mergedOptions = {\n ...(typeof defaultScreenOptions === 'function' ?\n // @ts-expect-error: ts gives incorrect error here\n defaultScreenOptions({\n route,\n navigation,\n options: customOptions\n }) : defaultScreenOptions),\n ...customOptions\n };\n const clearOptions = () => setOptions(o => {\n if (route.key in o) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n [route.key]: _,\n ...rest\n } = o;\n return rest;\n }\n return o;\n });\n acc[route.key] = {\n route,\n // @ts-expect-error: it's missing action helpers, fix later\n navigation,\n render() {\n return /*#__PURE__*/React.createElement(NavigationBuilderContext.Provider, {\n key: route.key,\n value: context\n }, /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: route\n }, /*#__PURE__*/React.createElement(SceneView, {\n navigation: navigation,\n route: route,\n screen: screen,\n routeState: state.routes[i].state,\n getState: getState,\n setState: setState,\n options: mergedOptions,\n clearOptions: clearOptions\n }))));\n },\n options: mergedOptions\n };\n return acc;\n }, {});\n}\n//# sourceMappingURL=useDescriptors.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook to cache navigation objects for each screen in the navigator.\n * It's important to cache them to make sure navigation objects don't change between renders.\n * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.\n */\nexport default function useNavigationCache(_ref) {\n let {\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter\n } = _ref;\n const {\n stackRef\n } = React.useContext(NavigationBuilderContext);\n\n // Cache object which holds navigation objects for each screen\n // We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change\n // In reality, these deps will rarely change, if ever\n const cache = React.useMemo(() => ({\n current: {}\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getState, navigation, setOptions, router, emitter]);\n const actions = {\n ...router.actionCreators,\n ...CommonActions\n };\n cache.current = state.routes.reduce((acc, route) => {\n const previous = cache.current[route.key];\n if (previous) {\n // If a cached navigation object already exists, reuse it\n acc[route.key] = previous;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n emit,\n ...rest\n } = navigation;\n const dispatch = thunk => {\n const action = typeof thunk === 'function' ? thunk(getState()) : thunk;\n if (action != null) {\n navigation.dispatch({\n source: route.key,\n ...action\n });\n }\n };\n const withStack = callback => {\n let isStackSet = false;\n try {\n if (process.env.NODE_ENV !== 'production' && stackRef && !stackRef.current) {\n // Capture the stack trace for devtools\n stackRef.current = new Error().stack;\n isStackSet = true;\n }\n callback();\n } finally {\n if (isStackSet && stackRef) {\n stackRef.current = undefined;\n }\n }\n };\n const helpers = Object.keys(actions).reduce((acc, name) => {\n acc[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return withStack(() =>\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n dispatch(actions[name](...args)));\n };\n return acc;\n }, {});\n acc[route.key] = {\n ...rest,\n ...helpers,\n // FIXME: too much work to fix the types for now\n ...emitter.create(route.key),\n dispatch: thunk => withStack(() => dispatch(thunk)),\n getParent: id => {\n if (id !== undefined && id === rest.getId()) {\n // If the passed id is the same as the current navigation id,\n // we return the cached navigation object for the relevant route\n return acc[route.key];\n }\n return rest.getParent(id);\n },\n setOptions: options => setOptions(o => ({\n ...o,\n [route.key]: {\n ...o[route.key],\n ...options\n }\n })),\n isFocused: () => {\n const state = getState();\n if (state.routes[state.index].key !== route.key) {\n return false;\n }\n\n // If the current screen is focused, we also need to check if parent navigator is focused\n // This makes sure that we return the focus state in the whole tree, not just this navigator\n return navigation ? navigation.isFocused() : true;\n }\n };\n }\n return acc;\n }, {});\n return cache.current;\n}\n//# sourceMappingURL=useNavigationCache.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nconst VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');\nexport const shouldPreventRemove = (emitter, beforeRemoveListeners, currentRoutes, nextRoutes, action) => {\n const nextRouteKeys = nextRoutes.map(route => route.key);\n\n // Call these in reverse order so last screens handle the event first\n const removedRoutes = currentRoutes.filter(route => !nextRouteKeys.includes(route.key)).reverse();\n const visitedRouteKeys =\n // @ts-expect-error: add this property to mark that we've already emitted this action\n action[VISITED_ROUTE_KEYS] ?? new Set();\n const beforeRemoveAction = {\n ...action,\n [VISITED_ROUTE_KEYS]: visitedRouteKeys\n };\n for (const route of removedRoutes) {\n var _beforeRemoveListener;\n if (visitedRouteKeys.has(route.key)) {\n // Skip if we've already emitted this action for this screen\n continue;\n }\n\n // First, we need to check if any child screens want to prevent it\n const isPrevented = (_beforeRemoveListener = beforeRemoveListeners[route.key]) === null || _beforeRemoveListener === void 0 ? void 0 : _beforeRemoveListener.call(beforeRemoveListeners, beforeRemoveAction);\n if (isPrevented) {\n return true;\n }\n visitedRouteKeys.add(route.key);\n const event = emitter.emit({\n type: 'beforeRemove',\n target: route.key,\n data: {\n action: beforeRemoveAction\n },\n canPreventDefault: true\n });\n if (event.defaultPrevented) {\n return true;\n }\n }\n return false;\n};\nexport default function useOnPreventRemove(_ref) {\n let {\n getState,\n emitter,\n beforeRemoveListeners\n } = _ref;\n const {\n addKeyedListener\n } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const routeKey = route === null || route === void 0 ? void 0 : route.key;\n React.useEffect(() => {\n if (routeKey) {\n return addKeyedListener === null || addKeyedListener === void 0 ? void 0 : addKeyedListener('beforeRemove', routeKey, action => {\n const state = getState();\n return shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, [], action);\n });\n }\n }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);\n}\n//# sourceMappingURL=useOnPreventRemove.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';\n/**\n * Hook to handle actions for a navigator, including state updates and bubbling.\n *\n * Bubbling an action is achieved in 2 ways:\n * 1. To bubble action to parent, we expose the action handler in context and then access the parent context\n * 2. To bubble action to child, child adds event listeners subscribing to actions from parent\n *\n * When the action handler handles as action, it returns `true`, otherwise `false`.\n */\nexport default function useOnAction(_ref) {\n let {\n router,\n getState,\n setState,\n key,\n actionListeners,\n beforeRemoveListeners,\n routerConfigOptions,\n emitter\n } = _ref;\n const {\n onAction: onActionParent,\n onRouteFocus: onRouteFocusParent,\n addListener: addListenerParent,\n onDispatchAction\n } = React.useContext(NavigationBuilderContext);\n const routerConfigOptionsRef = React.useRef(routerConfigOptions);\n React.useEffect(() => {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n const onAction = React.useCallback(function (action) {\n let visitedNavigators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n const state = getState();\n\n // Since actions can bubble both up and down, they could come to the same navigator again\n // We keep track of navigators which have already tried to handle the action and return if it's already visited\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n visitedNavigators.add(state.key);\n if (typeof action.target !== 'string' || action.target === state.key) {\n let result = router.getStateForAction(state, action, routerConfigOptionsRef.current);\n\n // If a target is specified and set to current navigator, the action shouldn't bubble\n // So instead of `null`, we use the state object for such cases to signal that action was handled\n result = result === null && action.target === state.key ? state : result;\n if (result !== null) {\n onDispatchAction(action, state === result);\n if (state !== result) {\n const isPrevented = shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, result.routes, action);\n if (isPrevented) {\n return true;\n }\n setState(result);\n }\n if (onRouteFocusParent !== undefined) {\n // Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree\n // This means we need to focus all of the parent navigators of this navigator as well\n const shouldFocus = router.shouldActionChangeFocus(action);\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n return true;\n }\n }\n if (onActionParent !== undefined) {\n // Bubble action to the parent if the current navigator didn't handle it\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n\n // If the action wasn't handled by current navigator or a parent navigator, let children handle it\n for (let i = actionListeners.length - 1; i >= 0; i--) {\n const listener = actionListeners[i];\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n return false;\n }, [actionListeners, beforeRemoveListeners, emitter, getState, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState]);\n useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners\n });\n React.useEffect(() => addListenerParent === null || addListenerParent === void 0 ? void 0 : addListenerParent('action', onAction), [addListenerParent, onAction]);\n return onAction;\n}\n//# sourceMappingURL=useOnAction.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\nimport Group from './Group';\nimport isArrayEqual from './isArrayEqual';\nimport isRecordEqual from './isRecordEqual';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport PreventRemoveProvider from './PreventRemoveProvider';\nimport Screen from './Screen';\nimport { PrivateValueStore } from './types';\nimport useChildListeners from './useChildListeners';\nimport useComponent from './useComponent';\nimport useCurrentRender from './useCurrentRender';\nimport useDescriptors from './useDescriptors';\nimport useEventEmitter from './useEventEmitter';\nimport useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';\nimport useFocusEvents from './useFocusEvents';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useNavigationHelpers from './useNavigationHelpers';\nimport useOnAction from './useOnAction';\nimport useOnGetState from './useOnGetState';\nimport useOnRouteFocus from './useOnRouteFocus';\nimport useRegisterNavigator from './useRegisterNavigator';\nimport useScheduleUpdate from './useScheduleUpdate';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\nconst isValidKey = key => key === undefined || typeof key === 'string' && key !== '';\n\n/**\n * Extract route config object from React children elements.\n *\n * @param children React Elements to extract the config from.\n */\nconst getRouteConfigsFromChildren = (children, groupKey, groupOptions) => {\n const configs = React.Children.toArray(children).reduce((acc, child) => {\n var _child$type, _child$props;\n if ( /*#__PURE__*/React.isValidElement(child)) {\n if (child.type === Screen) {\n // We can only extract the config from `Screen` elements\n // If something else was rendered, it's probably a bug\n\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(child.props.navigationKey)}) for the screen '${child.props.name}'. It must be a non-empty string or 'undefined'.`);\n }\n acc.push({\n keys: [groupKey, child.props.navigationKey],\n options: groupOptions,\n props: child.props\n });\n return acc;\n }\n if (child.type === React.Fragment || child.type === Group) {\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(child.props.navigationKey)}) for the group. It must be a non-empty string or 'undefined'.`);\n }\n\n // When we encounter a fragment or group, we need to dive into its children to extract the configs\n // This is handy to conditionally define a group of screens\n acc.push(...getRouteConfigsFromChildren(child.props.children, child.props.navigationKey, child.type !== Group ? groupOptions : groupOptions != null ? [...groupOptions, child.props.screenOptions] : [child.props.screenOptions]));\n return acc;\n }\n }\n throw new Error(`A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${/*#__PURE__*/React.isValidElement(child) ? `'${typeof child.type === 'string' ? child.type : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.name}'${child.props != null && typeof child.props === 'object' && 'name' in child.props && (_child$props = child.props) !== null && _child$props !== void 0 && _child$props.name ? ` for the screen '${child.props.name}'` : ''}` : typeof child === 'object' ? JSON.stringify(child) : `'${String(child)}'`}). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`);\n }, []);\n if (process.env.NODE_ENV !== 'production') {\n configs.forEach(config => {\n const {\n name,\n children,\n component,\n getComponent\n } = config.props;\n if (typeof name !== 'string' || !name) {\n throw new Error(`Got an invalid name (${JSON.stringify(name)}) for the screen. It must be a non-empty string.`);\n }\n if (children != null || component !== undefined || getComponent !== undefined) {\n if (children != null && component !== undefined) {\n throw new Error(`Got both 'component' and 'children' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (children != null && getComponent !== undefined) {\n throw new Error(`Got both 'getComponent' and 'children' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (component !== undefined && getComponent !== undefined) {\n throw new Error(`Got both 'component' and 'getComponent' props for the screen '${name}'. You must pass only one of them.`);\n }\n if (children != null && typeof children !== 'function') {\n throw new Error(`Got an invalid value for 'children' prop for the screen '${name}'. It must be a function returning a React Element.`);\n }\n if (component !== undefined && !isValidElementType(component)) {\n throw new Error(`Got an invalid value for 'component' prop for the screen '${name}'. It must be a valid React Component.`);\n }\n if (getComponent !== undefined && typeof getComponent !== 'function') {\n throw new Error(`Got an invalid value for 'getComponent' prop for the screen '${name}'. It must be a function returning a React Component.`);\n }\n if (typeof component === 'function') {\n if (component.name === 'component') {\n // Inline anonymous functions passed in the `component` prop will have the name of the prop\n // It's relatively safe to assume that it's not a component since it should also have PascalCase name\n // We won't catch all scenarios here, but this should catch a good chunk of incorrect use.\n console.warn(`Looks like you're passing an inline function for 'component' prop for the screen '${name}' (e.g. component={() => }). Passing an inline function will cause the component state to be lost on re-render and cause perf issues since it's re-created every render. You can pass the function as children to 'Screen' instead to achieve the desired behaviour.`);\n } else if (/^[a-z]/.test(component.name)) {\n console.warn(`Got a component with the name '${component.name}' for the screen '${name}'. React Components must start with an uppercase letter. If you're passing a regular function and not a component, pass it as children to 'Screen' instead. Otherwise capitalize your component's name.`);\n }\n }\n } else {\n throw new Error(`Couldn't find a 'component', 'getComponent' or 'children' prop for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);\n }\n });\n }\n return configs;\n};\n\n/**\n * Hook for building navigators.\n *\n * @param createRouter Factory method which returns router object.\n * @param options Options object containing `children` and additional options for the router.\n * @returns An object containing `state`, `navigation`, `descriptors` objects.\n */\nexport default function useNavigationBuilder(createRouter, options) {\n const navigatorKey = useRegisterNavigator();\n const route = React.useContext(NavigationRouteContext);\n const {\n children,\n screenListeners,\n ...rest\n } = options;\n const {\n current: router\n } = React.useRef(createRouter({\n ...rest,\n ...(route !== null && route !== void 0 && route.params && route.params.state == null && route.params.initial !== false && typeof route.params.screen === 'string' ? {\n initialRouteName: route.params.screen\n } : null)\n }));\n const routeConfigs = getRouteConfigsFromChildren(children);\n const screens = routeConfigs.reduce((acc, config) => {\n if (config.props.name in acc) {\n throw new Error(`A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${config.props.name}')`);\n }\n acc[config.props.name] = config;\n return acc;\n }, {});\n const routeNames = routeConfigs.map(config => config.props.name);\n const routeKeyList = routeNames.reduce((acc, curr) => {\n acc[curr] = screens[curr].keys.map(key => key ?? '').join(':');\n return acc;\n }, {});\n const routeParamList = routeNames.reduce((acc, curr) => {\n const {\n initialParams\n } = screens[curr].props;\n acc[curr] = initialParams;\n return acc;\n }, {});\n const routeGetIdList = routeNames.reduce((acc, curr) => Object.assign(acc, {\n [curr]: screens[curr].props.getId\n }), {});\n if (!routeNames.length) {\n throw new Error(\"Couldn't find any screens for the navigator. Have you defined any screens as its children?\");\n }\n const isStateValid = React.useCallback(state => state.type === undefined || state.type === router.type, [router.type]);\n const isStateInitialized = React.useCallback(state => state !== undefined && state.stale === false && isStateValid(state), [isStateValid]);\n const {\n state: currentState,\n getState: getCurrentState,\n setState: setCurrentState,\n setKey,\n getKey,\n getIsInitial\n } = React.useContext(NavigationStateContext);\n const stateCleanedUp = React.useRef(false);\n const cleanUpState = React.useCallback(() => {\n setCurrentState(undefined);\n stateCleanedUp.current = true;\n }, [setCurrentState]);\n const setState = React.useCallback(state => {\n if (stateCleanedUp.current) {\n // State might have been already cleaned up due to unmount\n // We do not want to expose API allowing to override this\n // This would lead to old data preservation on main navigator unmount\n return;\n }\n setCurrentState(state);\n }, [setCurrentState]);\n const [initializedState, isFirstStateInitialization] = React.useMemo(() => {\n var _route$params4;\n const initialRouteParamList = routeNames.reduce((acc, curr) => {\n var _route$params, _route$params2, _route$params3;\n const {\n initialParams\n } = screens[curr].props;\n const initialParamsFromParams = (route === null || route === void 0 ? void 0 : (_route$params = route.params) === null || _route$params === void 0 ? void 0 : _route$params.state) == null && (route === null || route === void 0 ? void 0 : (_route$params2 = route.params) === null || _route$params2 === void 0 ? void 0 : _route$params2.initial) !== false && (route === null || route === void 0 ? void 0 : (_route$params3 = route.params) === null || _route$params3 === void 0 ? void 0 : _route$params3.screen) === curr ? route.params.params : undefined;\n acc[curr] = initialParams !== undefined || initialParamsFromParams !== undefined ? {\n ...initialParams,\n ...initialParamsFromParams\n } : undefined;\n return acc;\n }, {});\n\n // If the current state isn't initialized on first render, we initialize it\n // We also need to re-initialize it if the state passed from parent was changed (maybe due to reset)\n // Otherwise assume that the state was provided as initial state\n // So we need to rehydrate it to make it usable\n if ((currentState === undefined || !isStateValid(currentState)) && (route === null || route === void 0 ? void 0 : (_route$params4 = route.params) === null || _route$params4 === void 0 ? void 0 : _route$params4.state) == null) {\n return [router.getInitialState({\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList\n }), true];\n } else {\n var _route$params5;\n return [router.getRehydratedState((route === null || route === void 0 ? void 0 : (_route$params5 = route.params) === null || _route$params5 === void 0 ? void 0 : _route$params5.state) ?? currentState, {\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList\n }), false];\n }\n // We explicitly don't include routeNames, route.params etc. in the dep list\n // below. We want to avoid forcing a new state to be calculated in those cases\n // Instead, we handle changes to these in the nextState code below. Note\n // that some changes to routeConfigs are explicitly ignored, such as changes\n // to initialParams\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentState, router, isStateValid]);\n const previousRouteKeyListRef = React.useRef(routeKeyList);\n React.useEffect(() => {\n previousRouteKeyListRef.current = routeKeyList;\n });\n const previousRouteKeyList = previousRouteKeyListRef.current;\n let state =\n // If the state isn't initialized, or stale, use the state we initialized instead\n // The state won't update until there's a change needed in the state we have initalized locally\n // So it'll be `undefined` or stale until the first navigation event happens\n isStateInitialized(currentState) ? currentState : initializedState;\n let nextState = state;\n if (!isArrayEqual(state.routeNames, routeNames) || !isRecordEqual(routeKeyList, previousRouteKeyList)) {\n // When the list of route names change, the router should handle it to remove invalid routes\n nextState = router.getStateForRouteNamesChange(state, {\n routeNames,\n routeParamList,\n routeGetIdList,\n routeKeyChanges: Object.keys(routeKeyList).filter(name => previousRouteKeyList.hasOwnProperty(name) && routeKeyList[name] !== previousRouteKeyList[name])\n });\n }\n const previousNestedParamsRef = React.useRef(route === null || route === void 0 ? void 0 : route.params);\n React.useEffect(() => {\n previousNestedParamsRef.current = route === null || route === void 0 ? void 0 : route.params;\n }, [route === null || route === void 0 ? void 0 : route.params]);\n if (route !== null && route !== void 0 && route.params) {\n const previousParams = previousNestedParamsRef.current;\n let action;\n if (typeof route.params.state === 'object' && route.params.state != null && route.params !== previousParams) {\n // If the route was updated with new state, we should reset to it\n action = CommonActions.reset(route.params.state);\n } else if (typeof route.params.screen === 'string' && (route.params.initial === false && isFirstStateInitialization || route.params !== previousParams)) {\n // If the route was updated with new screen name and/or params, we should navigate there\n action = CommonActions.navigate({\n name: route.params.screen,\n params: route.params.params,\n path: route.params.path\n });\n }\n\n // The update should be limited to current navigator only, so we call the router manually\n const updatedState = action ? router.getStateForAction(nextState, action, {\n routeNames,\n routeParamList,\n routeGetIdList\n }) : null;\n nextState = updatedState !== null ? router.getRehydratedState(updatedState, {\n routeNames,\n routeParamList,\n routeGetIdList\n }) : nextState;\n }\n const shouldUpdate = state !== nextState;\n useScheduleUpdate(() => {\n if (shouldUpdate) {\n // If the state needs to be updated, we'll schedule an update\n setState(nextState);\n }\n });\n\n // The up-to-date state will come in next render, but we don't need to wait for it\n // We can't use the outdated state since the screens have changed, which will cause error due to mismatched config\n // So we override the state object we return to use the latest state as soon as possible\n state = nextState;\n React.useEffect(() => {\n setKey(navigatorKey);\n if (!getIsInitial()) {\n // If it's not initial render, we need to update the state\n // This will make sure that our container gets notifier of state changes due to new mounts\n // This is necessary for proper screen tracking, URL updates etc.\n setState(nextState);\n }\n return () => {\n // We need to clean up state for this navigator on unmount\n // We do it in a timeout because we need to detect if another navigator mounted in the meantime\n // For example, if another navigator has started rendering, we should skip cleanup\n // Otherwise, our cleanup step will cleanup state for the other navigator and re-initialize it\n setTimeout(() => {\n if (getCurrentState() !== undefined && getKey() === navigatorKey) {\n cleanUpState();\n }\n }, 0);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // We initialize this ref here to avoid a new getState getting initialized\n // whenever initializedState changes. We want getState to have access to the\n // latest initializedState, but don't need it to change when that happens\n const initializedStateRef = React.useRef();\n initializedStateRef.current = initializedState;\n const getState = React.useCallback(() => {\n const currentState = getCurrentState();\n return isStateInitialized(currentState) ? currentState : initializedStateRef.current;\n }, [getCurrentState, isStateInitialized]);\n const emitter = useEventEmitter(e => {\n let routeNames = [];\n let route;\n if (e.target) {\n var _route;\n route = state.routes.find(route => route.key === e.target);\n if ((_route = route) !== null && _route !== void 0 && _route.name) {\n routeNames.push(route.name);\n }\n } else {\n route = state.routes[state.index];\n routeNames.push(...Object.keys(screens).filter(name => {\n var _route2;\n return ((_route2 = route) === null || _route2 === void 0 ? void 0 : _route2.name) === name;\n }));\n }\n if (route == null) {\n return;\n }\n const navigation = descriptors[route.key].navigation;\n const listeners = [].concat(\n // Get an array of listeners for all screens + common listeners on navigator\n ...[screenListeners, ...routeNames.map(name => {\n const {\n listeners\n } = screens[name].props;\n return listeners;\n })].map(listeners => {\n const map = typeof listeners === 'function' ? listeners({\n route: route,\n navigation\n }) : listeners;\n return map ? Object.keys(map).filter(type => type === e.type).map(type => map === null || map === void 0 ? void 0 : map[type]) : undefined;\n }))\n // We don't want same listener to be called multiple times for same event\n // So we remove any duplicate functions from the array\n .filter((cb, i, self) => cb && self.lastIndexOf(cb) === i);\n listeners.forEach(listener => listener === null || listener === void 0 ? void 0 : listener(e));\n });\n useFocusEvents({\n state,\n emitter\n });\n React.useEffect(() => {\n emitter.emit({\n type: 'state',\n data: {\n state\n }\n });\n }, [emitter, state]);\n const {\n listeners: childListeners,\n addListener\n } = useChildListeners();\n const {\n keyedListeners,\n addKeyedListener\n } = useKeyedChildListeners();\n const onAction = useOnAction({\n router,\n getState,\n setState,\n key: route === null || route === void 0 ? void 0 : route.key,\n actionListeners: childListeners.action,\n beforeRemoveListeners: keyedListeners.beforeRemove,\n routerConfigOptions: {\n routeNames,\n routeParamList,\n routeGetIdList\n },\n emitter\n });\n const onRouteFocus = useOnRouteFocus({\n router,\n key: route === null || route === void 0 ? void 0 : route.key,\n getState,\n setState\n });\n const navigation = useNavigationHelpers({\n id: options.id,\n onAction,\n getState,\n emitter,\n router\n });\n useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners: childListeners.focus\n });\n useOnGetState({\n getState,\n getStateListeners: keyedListeners.getState\n });\n const descriptors = useDescriptors({\n state,\n screens,\n navigation,\n screenOptions: options.screenOptions,\n defaultScreenOptions: options.defaultScreenOptions,\n onAction,\n getState,\n setState,\n onRouteFocus,\n addListener,\n addKeyedListener,\n router,\n // @ts-expect-error: this should have both core and custom events, but too much work right now\n emitter\n });\n useCurrentRender({\n state,\n navigation,\n descriptors\n });\n const NavigationContent = useComponent(children => /*#__PURE__*/React.createElement(NavigationHelpersContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(PreventRemoveProvider, null, children)));\n return {\n state,\n navigation,\n descriptors,\n NavigationContent\n };\n}\n//# sourceMappingURL=useNavigationBuilder.js.map","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport { SingleNavigatorContext } from './EnsureSingleNavigator';\n\n/**\n * Register a navigator in the parent context (either a navigation container or a screen).\n * This is used to prevent multiple navigators under a single container or screen.\n */\nexport default function useRegisterNavigator() {\n const [key] = React.useState(() => nanoid());\n const container = React.useContext(SingleNavigatorContext);\n if (container === undefined) {\n throw new Error(\"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\");\n }\n React.useEffect(() => {\n const {\n register,\n unregister\n } = container;\n register(key);\n return () => unregister(key);\n }, [container, key]);\n return key;\n}\n//# sourceMappingURL=useRegisterNavigator.js.map","/**\n * Compare two records with primitive values as the content.\n */\nexport default function isRecordEqual(a, b) {\n if (a === b) {\n return true;\n }\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n return aKeys.every(key => a[key] === b[key]);\n}\n//# sourceMappingURL=isRecordEqual.js.map","import * as React from 'react';\nimport NavigationContext from './NavigationContext';\n/**\n * Hook to take care of emitting `focus` and `blur` events.\n */\nexport default function useFocusEvents(_ref) {\n let {\n state,\n emitter\n } = _ref;\n const navigation = React.useContext(NavigationContext);\n const lastFocusedKeyRef = React.useRef();\n const currentFocusedKey = state.routes[state.index].key;\n\n // When the parent screen changes its focus state, we also need to change child's focus\n // Coz the child screen can't be focused if the parent screen is out of focus\n React.useEffect(() => navigation === null || navigation === void 0 ? void 0 : navigation.addListener('focus', () => {\n lastFocusedKeyRef.current = currentFocusedKey;\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }), [currentFocusedKey, emitter, navigation]);\n React.useEffect(() => navigation === null || navigation === void 0 ? void 0 : navigation.addListener('blur', () => {\n lastFocusedKeyRef.current = undefined;\n emitter.emit({\n type: 'blur',\n target: currentFocusedKey\n });\n }), [currentFocusedKey, emitter, navigation]);\n React.useEffect(() => {\n const lastFocusedKey = lastFocusedKeyRef.current;\n lastFocusedKeyRef.current = currentFocusedKey;\n\n // We wouldn't have `lastFocusedKey` on initial mount\n // Fire focus event for the current route on mount if there's no parent navigator\n if (lastFocusedKey === undefined && !navigation) {\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }\n\n // We should only emit events when the focused key changed and navigator is focused\n // When navigator is not focused, screens inside shouldn't receive focused status either\n if (lastFocusedKey === currentFocusedKey || !(navigation ? navigation.isFocused() : true)) {\n return;\n }\n if (lastFocusedKey === undefined) {\n // Only fire events after initial mount\n return;\n }\n emitter.emit({\n type: 'blur',\n target: lastFocusedKey\n });\n emitter.emit({\n type: 'focus',\n target: currentFocusedKey\n });\n }, [currentFocusedKey, emitter, navigation]);\n}\n//# sourceMappingURL=useFocusEvents.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook to handle focus actions for a route.\n * Focus action needs to be treated specially, coz when a nested route is focused,\n * the parent navigators also needs to be focused.\n */\nexport default function useOnRouteFocus(_ref) {\n let {\n router,\n getState,\n key: sourceRouteKey,\n setState\n } = _ref;\n const {\n onRouteFocus: onRouteFocusParent\n } = React.useContext(NavigationBuilderContext);\n return React.useCallback(key => {\n const state = getState();\n const result = router.getStateForRouteFocus(state, key);\n if (result !== state) {\n setState(result);\n }\n if (onRouteFocusParent !== undefined && sourceRouteKey !== undefined) {\n onRouteFocusParent(sourceRouteKey);\n }\n }, [getState, onRouteFocusParent, router, setState, sourceRouteKey]);\n}\n//# sourceMappingURL=useOnRouteFocus.js.map","import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport NavigationContext from './NavigationContext';\nimport { PrivateValueStore } from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n/**\n * Navigation object with helper methods to be used by a navigator.\n * This object includes methods for common actions as well as methods the parent screen's navigation object.\n */\nexport default function useNavigationHelpers(_ref) {\n let {\n id: navigatorId,\n onAction,\n getState,\n emitter,\n router\n } = _ref;\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n return React.useMemo(() => {\n const dispatch = op => {\n const action = typeof op === 'function' ? op(getState()) : op;\n const handled = onAction(action);\n if (!handled) {\n onUnhandledAction === null || onUnhandledAction === void 0 ? void 0 : onUnhandledAction(action);\n }\n };\n const actions = {\n ...router.actionCreators,\n ...CommonActions\n };\n const helpers = Object.keys(actions).reduce((acc, name) => {\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n acc[name] = function () {\n return dispatch(actions[name](...arguments));\n };\n return acc;\n }, {});\n const navigationHelpers = {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers ? parentNavigationHelpers.isFocused : () => true,\n canGoBack: () => {\n const state = getState();\n return router.getStateForAction(state, CommonActions.goBack(), {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {}\n }) !== null || (parentNavigationHelpers === null || parentNavigationHelpers === void 0 ? void 0 : parentNavigationHelpers.canGoBack()) || false;\n },\n getId: () => navigatorId,\n getParent: id => {\n if (id !== undefined) {\n let current = navigationHelpers;\n while (current && id !== current.getId()) {\n current = current.getParent();\n }\n return current;\n }\n return parentNavigationHelpers;\n },\n getState\n };\n return navigationHelpers;\n }, [navigatorId, emitter.emit, getState, onAction, onUnhandledAction, parentNavigationHelpers, router]);\n}\n//# sourceMappingURL=useNavigationHelpers.js.map","import * as React from 'react';\nimport NavigationBuilderContext from './NavigationBuilderContext';\n/**\n * Hook for passing focus callback to children\n */\nexport default function useFocusedListenersChildrenAdapter(_ref) {\n let {\n navigation,\n focusedListeners\n } = _ref;\n const {\n addListener\n } = React.useContext(NavigationBuilderContext);\n const listener = React.useCallback(callback => {\n if (navigation.isFocused()) {\n for (const listener of focusedListeners) {\n const {\n handled,\n result\n } = listener(callback);\n if (handled) {\n return {\n handled,\n result\n };\n }\n }\n return {\n handled: true,\n result: callback(navigation)\n };\n } else {\n return {\n handled: false,\n result: null\n };\n }\n }, [focusedListeners, navigation]);\n React.useEffect(() => addListener === null || addListener === void 0 ? void 0 : addListener('focus', listener), [addListener, listener]);\n}\n//# sourceMappingURL=useFocusedListenersChildrenAdapter.js.map","import * as React from 'react';\nimport isArrayEqual from './isArrayEqual';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nexport default function useOnGetState(_ref) {\n let {\n getState,\n getStateListeners\n } = _ref;\n const {\n addKeyedListener\n } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const key = route ? route.key : 'root';\n const getRehydratedState = React.useCallback(() => {\n const state = getState();\n\n // Avoid returning new route objects if we don't need to\n const routes = state.routes.map(route => {\n var _getStateListeners$ro;\n const childState = (_getStateListeners$ro = getStateListeners[route.key]) === null || _getStateListeners$ro === void 0 ? void 0 : _getStateListeners$ro.call(getStateListeners);\n if (route.state === childState) {\n return route;\n }\n return {\n ...route,\n state: childState\n };\n });\n if (isArrayEqual(state.routes, routes)) {\n return state;\n }\n return {\n ...state,\n routes\n };\n }, [getState, getStateListeners]);\n React.useEffect(() => {\n return addKeyedListener === null || addKeyedListener === void 0 ? void 0 : addKeyedListener('getState', key, getRehydratedState);\n }, [addKeyedListener, getRehydratedState, key]);\n}\n//# sourceMappingURL=useOnGetState.js.map","import * as React from 'react';\nimport CurrentRenderContext from './CurrentRenderContext';\n/**\n * Write the current options, so that server renderer can get current values\n * Mutating values like this is not safe in async mode, but it doesn't apply to SSR\n */\nexport default function useCurrentRender(_ref) {\n let {\n state,\n navigation,\n descriptors\n } = _ref;\n const current = React.useContext(CurrentRenderContext);\n if (current && navigation.isFocused()) {\n current.options = descriptors[state.routes[state.index].key].options;\n }\n}\n//# sourceMappingURL=useCurrentRender.js.map","import * as React from 'react';\nimport createNavigationContainerRef from './createNavigationContainerRef';\nexport default function useNavigationContainerRef() {\n const navigation = React.useRef(null);\n if (navigation.current == null) {\n navigation.current = createNavigationContainerRef();\n }\n return navigation.current;\n}\n//# sourceMappingURL=useNavigationContainerRef.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 * \n */\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return React.useMemo(function () {\n return mergeRefs.apply(void 0, args);\n }, // eslint-disable-next-line\n [].concat(args));\n}","import { createContext } from '../utils/createContext';\nimport type { ITheme } from './../theme';\nimport type { IModeType } from './StrictMode';\n\nexport interface INativebaseConfig {\n theme?: ITheme;\n suppressColorAccessibilityWarning?: boolean;\n dependencies?: {\n 'linear-gradient': any;\n };\n enableRem?: boolean;\n strictMode?: IModeType;\n disableContrastText?: boolean;\n}\n\nexport const defaultConfig: INativebaseConfig = {\n strictMode: 'off',\n};\n\nexport const [NativeBaseConfigProvider, useNativeBaseConfig] = createContext<{\n config: INativebaseConfig;\n currentBreakpoint: number;\n isSSR?: boolean;\n theme?: ITheme;\n disableContrastText?: boolean;\n}>('NativeBaseConfigProvider');\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar k, goog = goog || {}, l = commonjsGlobal || self;\r\nfunction aa() { }\r\nfunction ba(a) { var b = typeof a; b = \"object\" != b ? b : a ? Array.isArray(a) ? \"array\" : b : \"null\"; return \"array\" == b || \"object\" == b && \"number\" == typeof a.length; }\r\nfunction p(a) { var b = typeof a; return \"object\" == b && null != a || \"function\" == b; }\r\nfunction da(a) { return Object.prototype.hasOwnProperty.call(a, ea) && a[ea] || (a[ea] = ++fa); }\r\nvar ea = \"closure_uid_\" + (1E9 * Math.random() >>> 0), fa = 0;\r\nfunction ha(a, b, c) { return a.call.apply(a.bind, arguments); }\r\nfunction ia(a, b, c) { if (!a)\r\n throw Error(); if (2 < arguments.length) {\r\n var d = Array.prototype.slice.call(arguments, 2);\r\n return function () { var e = Array.prototype.slice.call(arguments); Array.prototype.unshift.apply(e, d); return a.apply(b, e); };\r\n} return function () { return a.apply(b, arguments); }; }\r\nfunction q(a, b, c) { Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? q = ha : q = ia; return q.apply(null, arguments); }\r\nfunction ja(a, b) { var c = Array.prototype.slice.call(arguments, 1); return function () { var d = c.slice(); d.push.apply(d, arguments); return a.apply(this, d); }; }\r\nfunction t(a, b) { function c() { } c.prototype = b.prototype; a.Z = b.prototype; a.prototype = new c; a.prototype.constructor = a; a.Vb = function (d, e, f) { for (var h = Array(arguments.length - 2), n = 2; n < arguments.length; n++)\r\n h[n - 2] = arguments[n]; return b.prototype[e].apply(d, h); }; }\r\nfunction v() { this.s = this.s; this.o = this.o; }\r\nvar ka = 0, la = {};\r\nv.prototype.s = !1;\r\nv.prototype.na = function () { if (!this.s && (this.s = !0, this.M(), 0 != ka)) {\r\n var a = da(this);\r\n delete la[a];\r\n} };\r\nv.prototype.M = function () { if (this.o)\r\n for (; this.o.length;)\r\n this.o.shift()(); };\r\nvar ma = Array.prototype.indexOf ? function (a, b) { return Array.prototype.indexOf.call(a, b, void 0); } : function (a, b) { if (\"string\" === typeof a)\r\n return \"string\" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0); for (var c = 0; c < a.length; c++)\r\n if (c in a && a[c] === b)\r\n return c; return -1; }, na = Array.prototype.forEach ? function (a, b, c) { Array.prototype.forEach.call(a, b, c); } : function (a, b, c) { var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a; for (var f = 0; f < d; f++)\r\n f in e && b.call(c, e[f], f, a); };\r\nfunction oa(a) { a: {\r\n var b = pa;\r\n var c = a.length, d = \"string\" === typeof a ? a.split(\"\") : a;\r\n for (var e = 0; e < c; e++)\r\n if (e in d && b.call(void 0, d[e], e, a)) {\r\n b = e;\r\n break a;\r\n }\r\n b = -1;\r\n} return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b]; }\r\nfunction qa(a) { return Array.prototype.concat.apply([], arguments); }\r\nfunction ra(a) { var b = a.length; if (0 < b) {\r\n var c = Array(b);\r\n for (var d = 0; d < b; d++)\r\n c[d] = a[d];\r\n return c;\r\n} return []; }\r\nfunction sa(a) { return /^[\\s\\xa0]*$/.test(a); }\r\nvar ta = String.prototype.trim ? function (a) { return a.trim(); } : function (a) { return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1]; };\r\nfunction w(a, b) { return -1 != a.indexOf(b); }\r\nfunction ua(a, b) { return a < b ? -1 : a > b ? 1 : 0; }\r\nvar x;\r\na: {\r\n var va = l.navigator;\r\n if (va) {\r\n var wa = va.userAgent;\r\n if (wa) {\r\n x = wa;\r\n break a;\r\n }\r\n }\r\n x = \"\";\r\n}\r\nfunction xa(a, b, c) { for (var d in a)\r\n b.call(c, a[d], d, a); }\r\nfunction ya(a) { var b = {}; for (var c in a)\r\n b[c] = a[c]; return b; }\r\nvar za = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\r\nfunction Aa(a, b) { var c, d; for (var e = 1; e < arguments.length; e++) {\r\n d = arguments[e];\r\n for (c in d)\r\n a[c] = d[c];\r\n for (var f = 0; f < za.length; f++)\r\n c = za[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);\r\n} }\r\nfunction Ca(a) { Ca[\" \"](a); return a; }\r\nCa[\" \"] = aa;\r\nfunction Fa(a) { var b = Ga; return Object.prototype.hasOwnProperty.call(b, 9) ? b[9] : b[9] = a(9); }\r\nvar Ha = w(x, \"Opera\"), y = w(x, \"Trident\") || w(x, \"MSIE\"), Ia = w(x, \"Edge\"), Ja = Ia || y, Ka = w(x, \"Gecko\") && !(w(x.toLowerCase(), \"webkit\") && !w(x, \"Edge\")) && !(w(x, \"Trident\") || w(x, \"MSIE\")) && !w(x, \"Edge\"), La = w(x.toLowerCase(), \"webkit\") && !w(x, \"Edge\");\r\nfunction Ma() { var a = l.document; return a ? a.documentMode : void 0; }\r\nvar Na;\r\na: {\r\n var Oa = \"\", Pa = function () { var a = x; if (Ka)\r\n return /rv:([^\\);]+)(\\)|;)/.exec(a); if (Ia)\r\n return /Edge\\/([\\d\\.]+)/.exec(a); if (y)\r\n return /\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a); if (La)\r\n return /WebKit\\/(\\S+)/.exec(a); if (Ha)\r\n return /(?:Version)[ \\/]?(\\S+)/.exec(a); }();\r\n Pa && (Oa = Pa ? Pa[1] : \"\");\r\n if (y) {\r\n var Qa = Ma();\r\n if (null != Qa && Qa > parseFloat(Oa)) {\r\n Na = String(Qa);\r\n break a;\r\n }\r\n }\r\n Na = Oa;\r\n}\r\nvar Ga = {};\r\nfunction Ra() { return Fa(function () { var a = 0; var b = ta(String(Na)).split(\".\"), c = ta(\"9\").split(\".\"), d = Math.max(b.length, c.length); for (var h = 0; 0 == a && h < d; h++) {\r\n var e = b[h] || \"\", f = c[h] || \"\";\r\n do {\r\n e = /(\\d*)(\\D*)(.*)/.exec(e) || [\"\", \"\", \"\", \"\"];\r\n f = /(\\d*)(\\D*)(.*)/.exec(f) || [\"\", \"\", \"\", \"\"];\r\n if (0 == e[0].length && 0 == f[0].length)\r\n break;\r\n a = ua(0 == e[1].length ? 0 : parseInt(e[1], 10), 0 == f[1].length ? 0 : parseInt(f[1], 10)) || ua(0 == e[2].length, 0 == f[2].length) || ua(e[2], f[2]);\r\n e = e[3];\r\n f = f[3];\r\n } while (0 == a);\r\n} return 0 <= a; }); }\r\nvar Sa;\r\nif (l.document && y) {\r\n var Ta = Ma();\r\n Sa = Ta ? Ta : parseInt(Na, 10) || void 0;\r\n}\r\nelse\r\n Sa = void 0;\r\nvar Ua = Sa;\r\nvar Va = function () { if (!l.addEventListener || !Object.defineProperty)\r\n return !1; var a = !1, b = Object.defineProperty({}, \"passive\", { get: function () { a = !0; } }); try {\r\n l.addEventListener(\"test\", aa, b), l.removeEventListener(\"test\", aa, b);\r\n}\r\ncatch (c) { } return a; }();\r\nfunction z(a, b) { this.type = a; this.g = this.target = b; this.defaultPrevented = !1; }\r\nz.prototype.h = function () { this.defaultPrevented = !0; };\r\nfunction A(a, b) {\r\n z.call(this, a ? a.type : \"\");\r\n this.relatedTarget = this.g = this.target = null;\r\n this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;\r\n this.key = \"\";\r\n this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;\r\n this.state = null;\r\n this.pointerId = 0;\r\n this.pointerType = \"\";\r\n this.i = null;\r\n if (a) {\r\n var c = this.type = a.type, d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;\r\n this.target = a.target || a.srcElement;\r\n this.g = b;\r\n if (b = a.relatedTarget) {\r\n if (Ka) {\r\n a: {\r\n try {\r\n Ca(b.nodeName);\r\n var e = !0;\r\n break a;\r\n }\r\n catch (f) { }\r\n e =\r\n !1;\r\n }\r\n e || (b = null);\r\n }\r\n }\r\n else\r\n \"mouseover\" == c ? b = a.fromElement : \"mouseout\" == c && (b = a.toElement);\r\n this.relatedTarget = b;\r\n d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);\r\n this.button = a.button;\r\n this.key = a.key || \"\";\r\n this.ctrlKey = a.ctrlKey;\r\n this.altKey = a.altKey;\r\n this.shiftKey =\r\n a.shiftKey;\r\n this.metaKey = a.metaKey;\r\n this.pointerId = a.pointerId || 0;\r\n this.pointerType = \"string\" === typeof a.pointerType ? a.pointerType : Wa[a.pointerType] || \"\";\r\n this.state = a.state;\r\n this.i = a;\r\n a.defaultPrevented && A.Z.h.call(this);\r\n }\r\n}\r\nt(A, z);\r\nvar Wa = { 2: \"touch\", 3: \"pen\", 4: \"mouse\" };\r\nA.prototype.h = function () { A.Z.h.call(this); var a = this.i; a.preventDefault ? a.preventDefault() : a.returnValue = !1; };\r\nvar B = \"closure_listenable_\" + (1E6 * Math.random() | 0);\r\nvar Xa = 0;\r\nfunction Ya(a, b, c, d, e) { this.listener = a; this.proxy = null; this.src = b; this.type = c; this.capture = !!d; this.ia = e; this.key = ++Xa; this.ca = this.fa = !1; }\r\nfunction Za(a) { a.ca = !0; a.listener = null; a.proxy = null; a.src = null; a.ia = null; }\r\nfunction $a(a) { this.src = a; this.g = {}; this.h = 0; }\r\n$a.prototype.add = function (a, b, c, d, e) { var f = a.toString(); a = this.g[f]; a || (a = this.g[f] = [], this.h++); var h = ab(a, b, d, e); -1 < h ? (b = a[h], c || (b.fa = !1)) : (b = new Ya(b, this.src, f, !!d, e), b.fa = c, a.push(b)); return b; };\r\nfunction bb(a, b) { var c = b.type; if (c in a.g) {\r\n var d = a.g[c], e = ma(d, b), f;\r\n (f = 0 <= e) && Array.prototype.splice.call(d, e, 1);\r\n f && (Za(b), 0 == a.g[c].length && (delete a.g[c], a.h--));\r\n} }\r\nfunction ab(a, b, c, d) { for (var e = 0; e < a.length; ++e) {\r\n var f = a[e];\r\n if (!f.ca && f.listener == b && f.capture == !!c && f.ia == d)\r\n return e;\r\n} return -1; }\r\nvar cb = \"closure_lm_\" + (1E6 * Math.random() | 0), db = {};\r\nfunction fb(a, b, c, d, e) { if (d && d.once)\r\n return gb(a, b, c, d, e); if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n fb(a, b[f], c, d, e);\r\n return null;\r\n} c = hb(c); return a && a[B] ? a.N(b, c, p(d) ? !!d.capture : !!d, e) : ib(a, b, c, !1, d, e); }\r\nfunction ib(a, b, c, d, e, f) { if (!b)\r\n throw Error(\"Invalid event type\"); var h = p(e) ? !!e.capture : !!e, n = jb(a); n || (a[cb] = n = new $a(a)); c = n.add(b, c, d, h, f); if (c.proxy)\r\n return c; d = kb(); c.proxy = d; d.src = a; d.listener = c; if (a.addEventListener)\r\n Va || (e = h), void 0 === e && (e = !1), a.addEventListener(b.toString(), d, e);\r\nelse if (a.attachEvent)\r\n a.attachEvent(lb(b.toString()), d);\r\nelse if (a.addListener && a.removeListener)\r\n a.addListener(d);\r\nelse\r\n throw Error(\"addEventListener and attachEvent are unavailable.\"); return c; }\r\nfunction kb() { function a(c) { return b.call(a.src, a.listener, c); } var b = mb; return a; }\r\nfunction gb(a, b, c, d, e) { if (Array.isArray(b)) {\r\n for (var f = 0; f < b.length; f++)\r\n gb(a, b[f], c, d, e);\r\n return null;\r\n} c = hb(c); return a && a[B] ? a.O(b, c, p(d) ? !!d.capture : !!d, e) : ib(a, b, c, !0, d, e); }\r\nfunction nb(a, b, c, d, e) { if (Array.isArray(b))\r\n for (var f = 0; f < b.length; f++)\r\n nb(a, b[f], c, d, e);\r\nelse\r\n (d = p(d) ? !!d.capture : !!d, c = hb(c), a && a[B]) ? (a = a.i, b = String(b).toString(), b in a.g && (f = a.g[b], c = ab(f, c, d, e), -1 < c && (Za(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b], a.h--)))) : a && (a = jb(a)) && (b = a.g[b.toString()], a = -1, b && (a = ab(b, c, d, e)), (c = -1 < a ? b[a] : null) && ob(c)); }\r\nfunction ob(a) { if (\"number\" !== typeof a && a && !a.ca) {\r\n var b = a.src;\r\n if (b && b[B])\r\n bb(b.i, a);\r\n else {\r\n var c = a.type, d = a.proxy;\r\n b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(lb(c), d) : b.addListener && b.removeListener && b.removeListener(d);\r\n (c = jb(b)) ? (bb(c, a), 0 == c.h && (c.src = null, b[cb] = null)) : Za(a);\r\n }\r\n} }\r\nfunction lb(a) { return a in db ? db[a] : db[a] = \"on\" + a; }\r\nfunction mb(a, b) { if (a.ca)\r\n a = !0;\r\nelse {\r\n b = new A(b, this);\r\n var c = a.listener, d = a.ia || a.src;\r\n a.fa && ob(a);\r\n a = c.call(d, b);\r\n} return a; }\r\nfunction jb(a) { a = a[cb]; return a instanceof $a ? a : null; }\r\nvar pb = \"__closure_events_fn_\" + (1E9 * Math.random() >>> 0);\r\nfunction hb(a) { if (\"function\" === typeof a)\r\n return a; a[pb] || (a[pb] = function (b) { return a.handleEvent(b); }); return a[pb]; }\r\nfunction C() { v.call(this); this.i = new $a(this); this.P = this; this.I = null; }\r\nt(C, v);\r\nC.prototype[B] = !0;\r\nC.prototype.removeEventListener = function (a, b, c, d) { nb(this, a, b, c, d); };\r\nfunction D(a, b) { var c, d = a.I; if (d)\r\n for (c = []; d; d = d.I)\r\n c.push(d); a = a.P; d = b.type || b; if (\"string\" === typeof b)\r\n b = new z(b, a);\r\nelse if (b instanceof z)\r\n b.target = b.target || a;\r\nelse {\r\n var e = b;\r\n b = new z(d, a);\r\n Aa(b, e);\r\n} e = !0; if (c)\r\n for (var f = c.length - 1; 0 <= f; f--) {\r\n var h = b.g = c[f];\r\n e = qb(h, d, !0, b) && e;\r\n } h = b.g = a; e = qb(h, d, !0, b) && e; e = qb(h, d, !1, b) && e; if (c)\r\n for (f = 0; f < c.length; f++)\r\n h = b.g = c[f], e = qb(h, d, !1, b) && e; }\r\nC.prototype.M = function () { C.Z.M.call(this); if (this.i) {\r\n var a = this.i, c;\r\n for (c in a.g) {\r\n for (var d = a.g[c], e = 0; e < d.length; e++)\r\n Za(d[e]);\r\n delete a.g[c];\r\n a.h--;\r\n }\r\n} this.I = null; };\r\nC.prototype.N = function (a, b, c, d) { return this.i.add(String(a), b, !1, c, d); };\r\nC.prototype.O = function (a, b, c, d) { return this.i.add(String(a), b, !0, c, d); };\r\nfunction qb(a, b, c, d) { b = a.i.g[String(b)]; if (!b)\r\n return !0; b = b.concat(); for (var e = !0, f = 0; f < b.length; ++f) {\r\n var h = b[f];\r\n if (h && !h.ca && h.capture == c) {\r\n var n = h.listener, u = h.ia || h.src;\r\n h.fa && bb(a.i, h);\r\n e = !1 !== n.call(u, d) && e;\r\n }\r\n} return e && !d.defaultPrevented; }\r\nvar rb = l.JSON.stringify;\r\nfunction sb() { var a = tb; var b = null; a.g && (b = a.g, a.g = a.g.next, a.g || (a.h = null), b.next = null); return b; }\r\nvar ub = /** @class */ (function () {\r\n function ub() {\r\n this.h = this.g = null;\r\n }\r\n ub.prototype.add = function (a, b) { var c = vb.get(); c.set(a, b); this.h ? this.h.next = c : this.g = c; this.h = c; };\r\n return ub;\r\n}());\r\nvar vb = new /** @class */ (function () {\r\n function class_2(a, b) {\r\n this.i = a;\r\n this.j = b;\r\n this.h = 0;\r\n this.g = null;\r\n }\r\n class_2.prototype.get = function () { var a; 0 < this.h ? (this.h--, a = this.g, this.g = a.next, a.next = null) : a = this.i(); return a; };\r\n return class_2;\r\n}())(function () { return new wb; }, function (a) { return a.reset(); });\r\nvar wb = /** @class */ (function () {\r\n function wb() {\r\n this.next = this.g = this.h = null;\r\n }\r\n wb.prototype.set = function (a, b) { this.h = a; this.g = b; this.next = null; };\r\n wb.prototype.reset = function () { this.next = this.g = this.h = null; };\r\n return wb;\r\n}());\r\nfunction yb(a) { l.setTimeout(function () { throw a; }, 0); }\r\nfunction zb(a, b) { Ab || Bb(); Cb || (Ab(), Cb = !0); tb.add(a, b); }\r\nvar Ab;\r\nfunction Bb() { var a = l.Promise.resolve(void 0); Ab = function () { a.then(Db); }; }\r\nvar Cb = !1, tb = new ub;\r\nfunction Db() { for (var a; a = sb();) {\r\n try {\r\n a.h.call(a.g);\r\n }\r\n catch (c) {\r\n yb(c);\r\n }\r\n var b = vb;\r\n b.j(a);\r\n 100 > b.h && (b.h++, a.next = b.g, b.g = a);\r\n} Cb = !1; }\r\nfunction Eb(a, b) { C.call(this); this.h = a || 1; this.g = b || l; this.j = q(this.kb, this); this.l = Date.now(); }\r\nt(Eb, C);\r\nk = Eb.prototype;\r\nk.da = !1;\r\nk.S = null;\r\nk.kb = function () { if (this.da) {\r\n var a = Date.now() - this.l;\r\n 0 < a && a < .8 * this.h ? this.S = this.g.setTimeout(this.j, this.h - a) : (this.S && (this.g.clearTimeout(this.S), this.S = null), D(this, \"tick\"), this.da && (Fb(this), this.start()));\r\n} };\r\nk.start = function () { this.da = !0; this.S || (this.S = this.g.setTimeout(this.j, this.h), this.l = Date.now()); };\r\nfunction Fb(a) { a.da = !1; a.S && (a.g.clearTimeout(a.S), a.S = null); }\r\nk.M = function () { Eb.Z.M.call(this); Fb(this); delete this.g; };\r\nfunction Gb(a, b, c) { if (\"function\" === typeof a)\r\n c && (a = q(a, c));\r\nelse if (a && \"function\" == typeof a.handleEvent)\r\n a = q(a.handleEvent, a);\r\nelse\r\n throw Error(\"Invalid listener argument\"); return 2147483647 < Number(b) ? -1 : l.setTimeout(a, b || 0); }\r\nfunction Hb(a) { a.g = Gb(function () { a.g = null; a.i && (a.i = !1, Hb(a)); }, a.j); var b = a.h; a.h = null; a.m.apply(null, b); }\r\nvar Ib = /** @class */ (function (_super) {\r\n __extends(Ib, _super);\r\n function Ib(a, b) {\r\n var _this = _super.call(this) || this;\r\n _this.m = a;\r\n _this.j = b;\r\n _this.h = null;\r\n _this.i = !1;\r\n _this.g = null;\r\n return _this;\r\n }\r\n Ib.prototype.l = function (a) { this.h = arguments; this.g ? this.i = !0 : Hb(this); };\r\n Ib.prototype.M = function () { _super.prototype.M.call(this); this.g && (l.clearTimeout(this.g), this.g = null, this.i = !1, this.h = null); };\r\n return Ib;\r\n}(v));\r\nfunction E(a) { v.call(this); this.h = a; this.g = {}; }\r\nt(E, v);\r\nvar Jb = [];\r\nfunction Kb(a, b, c, d) { Array.isArray(c) || (c && (Jb[0] = c.toString()), c = Jb); for (var e = 0; e < c.length; e++) {\r\n var f = fb(b, c[e], d || a.handleEvent, !1, a.h || a);\r\n if (!f)\r\n break;\r\n a.g[f.key] = f;\r\n} }\r\nfunction Lb(a) { xa(a.g, function (b, c) { this.g.hasOwnProperty(c) && ob(b); }, a); a.g = {}; }\r\nE.prototype.M = function () { E.Z.M.call(this); Lb(this); };\r\nE.prototype.handleEvent = function () { throw Error(\"EventHandler.handleEvent not implemented\"); };\r\nfunction Mb() { this.g = !0; }\r\nMb.prototype.Aa = function () { this.g = !1; };\r\nfunction Nb(a, b, c, d, e, f) { a.info(function () { if (a.g)\r\n if (f) {\r\n var h = \"\";\r\n for (var n = f.split(\"&\"), u = 0; u < n.length; u++) {\r\n var m = n[u].split(\"=\");\r\n if (1 < m.length) {\r\n var r = m[0];\r\n m = m[1];\r\n var G = r.split(\"_\");\r\n h = 2 <= G.length && \"type\" == G[1] ? h + (r + \"=\" + m + \"&\") : h + (r + \"=redacted&\");\r\n }\r\n }\r\n }\r\n else\r\n h = null;\r\nelse\r\n h = f; return \"XMLHTTP REQ (\" + d + \") [attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + h; }); }\r\nfunction Ob(a, b, c, d, e, f, h) { a.info(function () { return \"XMLHTTP RESP (\" + d + \") [ attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + f + \" \" + h; }); }\r\nfunction F(a, b, c, d) { a.info(function () { return \"XMLHTTP TEXT (\" + b + \"): \" + Pb(a, c) + (d ? \" \" + d : \"\"); }); }\r\nfunction Qb(a, b) { a.info(function () { return \"TIMEOUT: \" + b; }); }\r\nMb.prototype.info = function () { };\r\nfunction Pb(a, b) { if (!a.g)\r\n return b; if (!b)\r\n return null; try {\r\n var c = JSON.parse(b);\r\n if (c)\r\n for (a = 0; a < c.length; a++)\r\n if (Array.isArray(c[a])) {\r\n var d = c[a];\r\n if (!(2 > d.length)) {\r\n var e = d[1];\r\n if (Array.isArray(e) && !(1 > e.length)) {\r\n var f = e[0];\r\n if (\"noop\" != f && \"stop\" != f && \"close\" != f)\r\n for (var h = 1; h < e.length; h++)\r\n e[h] = \"\";\r\n }\r\n }\r\n }\r\n return rb(c);\r\n}\r\ncatch (n) {\r\n return b;\r\n} }\r\nvar H = {}, Rb = null;\r\nfunction Sb() { return Rb = Rb || new C; }\r\nH.Ma = \"serverreachability\";\r\nfunction Tb(a) { z.call(this, H.Ma, a); }\r\nt(Tb, z);\r\nfunction I(a) { var b = Sb(); D(b, new Tb(b, a)); }\r\nH.STAT_EVENT = \"statevent\";\r\nfunction Ub(a, b) { z.call(this, H.STAT_EVENT, a); this.stat = b; }\r\nt(Ub, z);\r\nfunction J(a) { var b = Sb(); D(b, new Ub(b, a)); }\r\nH.Na = \"timingevent\";\r\nfunction Vb(a, b) { z.call(this, H.Na, a); this.size = b; }\r\nt(Vb, z);\r\nfunction K(a, b) { if (\"function\" !== typeof a)\r\n throw Error(\"Fn must not be null and must be a function\"); return l.setTimeout(function () { a(); }, b); }\r\nvar Wb = { NO_ERROR: 0, lb: 1, yb: 2, xb: 3, sb: 4, wb: 5, zb: 6, Ja: 7, TIMEOUT: 8, Cb: 9 };\r\nvar Xb = { qb: \"complete\", Mb: \"success\", Ka: \"error\", Ja: \"abort\", Eb: \"ready\", Fb: \"readystatechange\", TIMEOUT: \"timeout\", Ab: \"incrementaldata\", Db: \"progress\", tb: \"downloadprogress\", Ub: \"uploadprogress\" };\r\nfunction Yb() { }\r\nYb.prototype.h = null;\r\nfunction Zb(a) { return a.h || (a.h = a.i()); }\r\nfunction $b() { }\r\nvar L = { OPEN: \"a\", pb: \"b\", Ka: \"c\", Bb: \"d\" };\r\nfunction ac() { z.call(this, \"d\"); }\r\nt(ac, z);\r\nfunction bc() { z.call(this, \"c\"); }\r\nt(bc, z);\r\nvar cc;\r\nfunction dc() { }\r\nt(dc, Yb);\r\ndc.prototype.g = function () { return new XMLHttpRequest; };\r\ndc.prototype.i = function () { return {}; };\r\ncc = new dc;\r\nfunction M(a, b, c, d) { this.l = a; this.j = b; this.m = c; this.X = d || 1; this.V = new E(this); this.P = ec; a = Ja ? 125 : void 0; this.W = new Eb(a); this.H = null; this.i = !1; this.s = this.A = this.v = this.K = this.F = this.Y = this.B = null; this.D = []; this.g = null; this.C = 0; this.o = this.u = null; this.N = -1; this.I = !1; this.O = 0; this.L = null; this.aa = this.J = this.$ = this.U = !1; this.h = new fc; }\r\nfunction fc() { this.i = null; this.g = \"\"; this.h = !1; }\r\nvar ec = 45E3, gc = {}, hc = {};\r\nk = M.prototype;\r\nk.setTimeout = function (a) { this.P = a; };\r\nfunction ic(a, b, c) { a.K = 1; a.v = jc(N(b)); a.s = c; a.U = !0; kc(a, null); }\r\nfunction kc(a, b) { a.F = Date.now(); lc(a); a.A = N(a.v); var c = a.A, d = a.X; Array.isArray(d) || (d = [String(d)]); mc(c.h, \"t\", d); a.C = 0; c = a.l.H; a.h = new fc; a.g = nc(a.l, c ? b : null, !a.s); 0 < a.O && (a.L = new Ib(q(a.Ia, a, a.g), a.O)); Kb(a.V, a.g, \"readystatechange\", a.gb); b = a.H ? ya(a.H) : {}; a.s ? (a.u || (a.u = \"POST\"), b[\"Content-Type\"] = \"application/x-www-form-urlencoded\", a.g.ea(a.A, a.u, a.s, b)) : (a.u = \"GET\", a.g.ea(a.A, a.u, null, b)); I(1); Nb(a.j, a.u, a.A, a.m, a.X, a.s); }\r\nk.gb = function (a) { a = a.target; var b = this.L; b && 3 == O(a) ? b.l() : this.Ia(a); };\r\nk.Ia = function (a) {\r\n try {\r\n if (a == this.g)\r\n a: {\r\n var r = O(this.g);\r\n var b = this.g.Da();\r\n var G = this.g.ba();\r\n if (!(3 > r) && (3 != r || Ja || this.g && (this.h.h || this.g.ga() || oc(this.g)))) {\r\n this.I || 4 != r || 7 == b || (8 == b || 0 >= G ? I(3) : I(2));\r\n pc(this);\r\n var c = this.g.ba();\r\n this.N = c;\r\n b: if (qc(this)) {\r\n var d = oc(this.g);\r\n a = \"\";\r\n var e = d.length, f = 4 == O(this.g);\r\n if (!this.h.i) {\r\n if (\"undefined\" === typeof TextDecoder) {\r\n P(this);\r\n rc(this);\r\n var h = \"\";\r\n break b;\r\n }\r\n this.h.i = new l.TextDecoder;\r\n }\r\n for (b = 0; b < e; b++)\r\n this.h.h = !0, a += this.h.i.decode(d[b], { stream: f && b == e - 1 });\r\n d.splice(0, e);\r\n this.h.g += a;\r\n this.C = 0;\r\n h = this.h.g;\r\n }\r\n else\r\n h = this.g.ga();\r\n this.i = 200 == c;\r\n Ob(this.j, this.u, this.A, this.m, this.X, r, c);\r\n if (this.i) {\r\n if (this.$ && !this.J) {\r\n b: {\r\n if (this.g) {\r\n var n, u = this.g;\r\n if ((n = u.g ? u.g.getResponseHeader(\"X-HTTP-Initial-Response\") : null) && !sa(n)) {\r\n var m = n;\r\n break b;\r\n }\r\n }\r\n m = null;\r\n }\r\n if (c = m)\r\n F(this.j, this.m, c, \"Initial handshake response via X-HTTP-Initial-Response\"), this.J = !0, sc(this, c);\r\n else {\r\n this.i = !1;\r\n this.o = 3;\r\n J(12);\r\n P(this);\r\n rc(this);\r\n break a;\r\n }\r\n }\r\n this.U ? (tc(this, r, h), Ja && this.i && 3 == r && (Kb(this.V, this.W, \"tick\", this.fb),\r\n this.W.start())) : (F(this.j, this.m, h, null), sc(this, h));\r\n 4 == r && P(this);\r\n this.i && !this.I && (4 == r ? uc(this.l, this) : (this.i = !1, lc(this)));\r\n }\r\n else\r\n 400 == c && 0 < h.indexOf(\"Unknown SID\") ? (this.o = 3, J(12)) : (this.o = 0, J(13)), P(this), rc(this);\r\n }\r\n }\r\n }\r\n catch (r) { }\r\n finally { }\r\n};\r\nfunction qc(a) { return a.g ? \"GET\" == a.u && 2 != a.K && a.l.Ba : !1; }\r\nfunction tc(a, b, c) {\r\n var d = !0, e;\r\n for (; !a.I && a.C < c.length;)\r\n if (e = vc(a, c), e == hc) {\r\n 4 == b && (a.o = 4, J(14), d = !1);\r\n F(a.j, a.m, null, \"[Incomplete Response]\");\r\n break;\r\n }\r\n else if (e == gc) {\r\n a.o = 4;\r\n J(15);\r\n F(a.j, a.m, c, \"[Invalid Chunk]\");\r\n d = !1;\r\n break;\r\n }\r\n else\r\n F(a.j, a.m, e, null), sc(a, e);\r\n qc(a) && e != hc && e != gc && (a.h.g = \"\", a.C = 0);\r\n 4 != b || 0 != c.length || a.h.h || (a.o = 1, J(16), d = !1);\r\n a.i = a.i && d;\r\n d ? 0 < c.length && !a.aa && (a.aa = !0, b = a.l, b.g == a && b.$ && !b.L && (b.h.info(\"Great, no buffering proxy detected. Bytes received: \" + c.length), wc(b), b.L = !0, J(11))) : (F(a.j, a.m, c, \"[Invalid Chunked Response]\"), P(a), rc(a));\r\n}\r\nk.fb = function () { if (this.g) {\r\n var a = O(this.g), b = this.g.ga();\r\n this.C < b.length && (pc(this), tc(this, a, b), this.i && 4 != a && lc(this));\r\n} };\r\nfunction vc(a, b) { var c = a.C, d = b.indexOf(\"\\n\", c); if (-1 == d)\r\n return hc; c = Number(b.substring(c, d)); if (isNaN(c))\r\n return gc; d += 1; if (d + c > b.length)\r\n return hc; b = b.substr(d, c); a.C = d + c; return b; }\r\nk.cancel = function () { this.I = !0; P(this); };\r\nfunction lc(a) { a.Y = Date.now() + a.P; xc(a, a.P); }\r\nfunction xc(a, b) { if (null != a.B)\r\n throw Error(\"WatchDog timer not null\"); a.B = K(q(a.eb, a), b); }\r\nfunction pc(a) { a.B && (l.clearTimeout(a.B), a.B = null); }\r\nk.eb = function () { this.B = null; var a = Date.now(); 0 <= a - this.Y ? (Qb(this.j, this.A), 2 != this.K && (I(3), J(17)), P(this), this.o = 2, rc(this)) : xc(this, this.Y - a); };\r\nfunction rc(a) { 0 == a.l.G || a.I || uc(a.l, a); }\r\nfunction P(a) { pc(a); var b = a.L; b && \"function\" == typeof b.na && b.na(); a.L = null; Fb(a.W); Lb(a.V); a.g && (b = a.g, a.g = null, b.abort(), b.na()); }\r\nfunction sc(a, b) {\r\n try {\r\n var c = a.l;\r\n if (0 != c.G && (c.g == a || yc(c.i, a)))\r\n if (c.I = a.N, !a.J && yc(c.i, a) && 3 == c.G) {\r\n try {\r\n var d = c.Ca.g.parse(b);\r\n }\r\n catch (m) {\r\n d = null;\r\n }\r\n if (Array.isArray(d) && 3 == d.length) {\r\n var e = d;\r\n if (0 == e[0])\r\n a: {\r\n if (!c.u) {\r\n if (c.g)\r\n if (c.g.F + 3E3 < a.F)\r\n zc(c), Ac(c);\r\n else\r\n break a;\r\n Bc(c);\r\n J(18);\r\n }\r\n }\r\n else\r\n c.ta = e[1], 0 < c.ta - c.U && 37500 > e[2] && c.N && 0 == c.A && !c.v && (c.v = K(q(c.ab, c), 6E3));\r\n if (1 >= Cc(c.i) && c.ka) {\r\n try {\r\n c.ka();\r\n }\r\n catch (m) { }\r\n c.ka = void 0;\r\n }\r\n }\r\n else\r\n Q(c, 11);\r\n }\r\n else if ((a.J || c.g == a) && zc(c), !sa(b))\r\n for (e = c.Ca.g.parse(b), b = 0; b < e.length; b++) {\r\n var m = e[b];\r\n c.U = m[0];\r\n m = m[1];\r\n if (2 == c.G)\r\n if (\"c\" == m[0]) {\r\n c.J = m[1];\r\n c.la = m[2];\r\n var r = m[3];\r\n null != r && (c.ma = r, c.h.info(\"VER=\" + c.ma));\r\n var G = m[4];\r\n null != G && (c.za = G, c.h.info(\"SVER=\" + c.za));\r\n var Da = m[5];\r\n null != Da && \"number\" === typeof Da && 0 < Da && (d = 1.5 * Da, c.K = d, c.h.info(\"backChannelRequestTimeoutMs_=\" + d));\r\n d = c;\r\n var ca = a.g;\r\n if (ca) {\r\n var Ea = ca.g ? ca.g.getResponseHeader(\"X-Client-Wire-Protocol\") : null;\r\n if (Ea) {\r\n var f = d.i;\r\n !f.g && (w(Ea, \"spdy\") || w(Ea, \"quic\") || w(Ea, \"h2\")) && (f.j = f.l, f.g = new Set, f.h && (Dc(f, f.h), f.h = null));\r\n }\r\n if (d.D) {\r\n var xb = ca.g ? ca.g.getResponseHeader(\"X-HTTP-Session-Id\") : null;\r\n xb && (d.sa = xb, R(d.F, d.D, xb));\r\n }\r\n }\r\n c.G = 3;\r\n c.j && c.j.xa();\r\n c.$ && (c.O = Date.now() - a.F, c.h.info(\"Handshake RTT: \" + c.O + \"ms\"));\r\n d = c;\r\n var h = a;\r\n d.oa = Ec(d, d.H ? d.la : null, d.W);\r\n if (h.J) {\r\n Fc(d.i, h);\r\n var n = h, u = d.K;\r\n u && n.setTimeout(u);\r\n n.B && (pc(n), lc(n));\r\n d.g = h;\r\n }\r\n else\r\n Gc(d);\r\n 0 < c.l.length && Hc(c);\r\n }\r\n else\r\n \"stop\" != m[0] && \"close\" != m[0] || Q(c, 7);\r\n else\r\n 3 == c.G && (\"stop\" == m[0] || \"close\" == m[0] ? \"stop\" == m[0] ? Q(c, 7) : Ic(c) : \"noop\" != m[0] && c.j && c.j.wa(m), c.A = 0);\r\n }\r\n I(4);\r\n }\r\n catch (m) { }\r\n}\r\nfunction Jc(a) { if (a.R && \"function\" == typeof a.R)\r\n return a.R(); if (\"string\" === typeof a)\r\n return a.split(\"\"); if (ba(a)) {\r\n for (var b = [], c = a.length, d = 0; d < c; d++)\r\n b.push(a[d]);\r\n return b;\r\n} b = []; c = 0; for (d in a)\r\n b[c++] = a[d]; return b; }\r\nfunction Kc(a, b) { if (a.forEach && \"function\" == typeof a.forEach)\r\n a.forEach(b, void 0);\r\nelse if (ba(a) || \"string\" === typeof a)\r\n na(a, b, void 0);\r\nelse {\r\n if (a.T && \"function\" == typeof a.T)\r\n var c = a.T();\r\n else if (a.R && \"function\" == typeof a.R)\r\n c = void 0;\r\n else if (ba(a) || \"string\" === typeof a) {\r\n c = [];\r\n for (var d = a.length, e = 0; e < d; e++)\r\n c.push(e);\r\n }\r\n else\r\n for (e in c = [], d = 0, a)\r\n c[d++] = e;\r\n d = Jc(a);\r\n e = d.length;\r\n for (var f = 0; f < e; f++)\r\n b.call(void 0, d[f], c && c[f], a);\r\n} }\r\nfunction S(a, b) { this.h = {}; this.g = []; this.i = 0; var c = arguments.length; if (1 < c) {\r\n if (c % 2)\r\n throw Error(\"Uneven number of arguments\");\r\n for (var d = 0; d < c; d += 2)\r\n this.set(arguments[d], arguments[d + 1]);\r\n}\r\nelse if (a)\r\n if (a instanceof S)\r\n for (c = a.T(), d = 0; d < c.length; d++)\r\n this.set(c[d], a.get(c[d]));\r\n else\r\n for (d in a)\r\n this.set(d, a[d]); }\r\nk = S.prototype;\r\nk.R = function () { Lc(this); for (var a = [], b = 0; b < this.g.length; b++)\r\n a.push(this.h[this.g[b]]); return a; };\r\nk.T = function () { Lc(this); return this.g.concat(); };\r\nfunction Lc(a) { if (a.i != a.g.length) {\r\n for (var b = 0, c = 0; b < a.g.length;) {\r\n var d = a.g[b];\r\n T(a.h, d) && (a.g[c++] = d);\r\n b++;\r\n }\r\n a.g.length = c;\r\n} if (a.i != a.g.length) {\r\n var e = {};\r\n for (c = b = 0; b < a.g.length;)\r\n d = a.g[b], T(e, d) || (a.g[c++] = d, e[d] = 1), b++;\r\n a.g.length = c;\r\n} }\r\nk.get = function (a, b) { return T(this.h, a) ? this.h[a] : b; };\r\nk.set = function (a, b) { T(this.h, a) || (this.i++, this.g.push(a)); this.h[a] = b; };\r\nk.forEach = function (a, b) { for (var c = this.T(), d = 0; d < c.length; d++) {\r\n var e = c[d], f = this.get(e);\r\n a.call(b, f, e, this);\r\n} };\r\nfunction T(a, b) { return Object.prototype.hasOwnProperty.call(a, b); }\r\nvar Mc = /^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;\r\nfunction Nc(a, b) { if (a) {\r\n a = a.split(\"&\");\r\n for (var c = 0; c < a.length; c++) {\r\n var d = a[c].indexOf(\"=\"), e = null;\r\n if (0 <= d) {\r\n var f = a[c].substring(0, d);\r\n e = a[c].substring(d + 1);\r\n }\r\n else\r\n f = a[c];\r\n b(f, e ? decodeURIComponent(e.replace(/\\+/g, \" \")) : \"\");\r\n }\r\n} }\r\nfunction U(a, b) { this.i = this.s = this.j = \"\"; this.m = null; this.o = this.l = \"\"; this.g = !1; if (a instanceof U) {\r\n this.g = void 0 !== b ? b : a.g;\r\n Oc(this, a.j);\r\n this.s = a.s;\r\n Pc(this, a.i);\r\n Qc(this, a.m);\r\n this.l = a.l;\r\n b = a.h;\r\n var c = new Rc;\r\n c.i = b.i;\r\n b.g && (c.g = new S(b.g), c.h = b.h);\r\n Sc(this, c);\r\n this.o = a.o;\r\n}\r\nelse\r\n a && (c = String(a).match(Mc)) ? (this.g = !!b, Oc(this, c[1] || \"\", !0), this.s = Tc(c[2] || \"\"), Pc(this, c[3] || \"\", !0), Qc(this, c[4]), this.l = Tc(c[5] || \"\", !0), Sc(this, c[6] || \"\", !0), this.o = Tc(c[7] || \"\")) : (this.g = !!b, this.h = new Rc(null, this.g)); }\r\nU.prototype.toString = function () { var a = [], b = this.j; b && a.push(Uc(b, Vc, !0), \":\"); var c = this.i; if (c || \"file\" == b)\r\n a.push(\"//\"), (b = this.s) && a.push(Uc(b, Vc, !0), \"@\"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), c = this.m, null != c && a.push(\":\", String(c)); if (c = this.l)\r\n this.i && \"/\" != c.charAt(0) && a.push(\"/\"), a.push(Uc(c, \"/\" == c.charAt(0) ? Wc : Xc, !0)); (c = this.h.toString()) && a.push(\"?\", c); (c = this.o) && a.push(\"#\", Uc(c, Yc)); return a.join(\"\"); };\r\nfunction N(a) { return new U(a); }\r\nfunction Oc(a, b, c) { a.j = c ? Tc(b, !0) : b; a.j && (a.j = a.j.replace(/:$/, \"\")); }\r\nfunction Pc(a, b, c) { a.i = c ? Tc(b, !0) : b; }\r\nfunction Qc(a, b) { if (b) {\r\n b = Number(b);\r\n if (isNaN(b) || 0 > b)\r\n throw Error(\"Bad port number \" + b);\r\n a.m = b;\r\n}\r\nelse\r\n a.m = null; }\r\nfunction Sc(a, b, c) { b instanceof Rc ? (a.h = b, Zc(a.h, a.g)) : (c || (b = Uc(b, $c)), a.h = new Rc(b, a.g)); }\r\nfunction R(a, b, c) { a.h.set(b, c); }\r\nfunction jc(a) { R(a, \"zx\", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ Date.now()).toString(36)); return a; }\r\nfunction ad(a) { return a instanceof U ? N(a) : new U(a, void 0); }\r\nfunction bd(a, b, c, d) { var e = new U(null, void 0); a && Oc(e, a); b && Pc(e, b); c && Qc(e, c); d && (e.l = d); return e; }\r\nfunction Tc(a, b) { return a ? b ? decodeURI(a.replace(/%25/g, \"%2525\")) : decodeURIComponent(a) : \"\"; }\r\nfunction Uc(a, b, c) { return \"string\" === typeof a ? (a = encodeURI(a).replace(b, cd), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), a) : null; }\r\nfunction cd(a) { a = a.charCodeAt(0); return \"%\" + (a >> 4 & 15).toString(16) + (a & 15).toString(16); }\r\nvar Vc = /[#\\/\\?@]/g, Xc = /[#\\?:]/g, Wc = /[#\\?]/g, $c = /[#\\?@]/g, Yc = /#/g;\r\nfunction Rc(a, b) { this.h = this.g = null; this.i = a || null; this.j = !!b; }\r\nfunction V(a) { a.g || (a.g = new S, a.h = 0, a.i && Nc(a.i, function (b, c) { a.add(decodeURIComponent(b.replace(/\\+/g, \" \")), c); })); }\r\nk = Rc.prototype;\r\nk.add = function (a, b) { V(this); this.i = null; a = W(this, a); var c = this.g.get(a); c || this.g.set(a, c = []); c.push(b); this.h += 1; return this; };\r\nfunction dd(a, b) { V(a); b = W(a, b); T(a.g.h, b) && (a.i = null, a.h -= a.g.get(b).length, a = a.g, T(a.h, b) && (delete a.h[b], a.i--, a.g.length > 2 * a.i && Lc(a))); }\r\nfunction ed(a, b) { V(a); b = W(a, b); return T(a.g.h, b); }\r\nk.forEach = function (a, b) { V(this); this.g.forEach(function (c, d) { na(c, function (e) { a.call(b, e, d, this); }, this); }, this); };\r\nk.T = function () { V(this); for (var a = this.g.R(), b = this.g.T(), c = [], d = 0; d < b.length; d++)\r\n for (var e = a[d], f = 0; f < e.length; f++)\r\n c.push(b[d]); return c; };\r\nk.R = function (a) { V(this); var b = []; if (\"string\" === typeof a)\r\n ed(this, a) && (b = qa(b, this.g.get(W(this, a))));\r\nelse {\r\n a = this.g.R();\r\n for (var c = 0; c < a.length; c++)\r\n b = qa(b, a[c]);\r\n} return b; };\r\nk.set = function (a, b) { V(this); this.i = null; a = W(this, a); ed(this, a) && (this.h -= this.g.get(a).length); this.g.set(a, [b]); this.h += 1; return this; };\r\nk.get = function (a, b) { if (!a)\r\n return b; a = this.R(a); return 0 < a.length ? String(a[0]) : b; };\r\nfunction mc(a, b, c) { dd(a, b); 0 < c.length && (a.i = null, a.g.set(W(a, b), ra(c)), a.h += c.length); }\r\nk.toString = function () { if (this.i)\r\n return this.i; if (!this.g)\r\n return \"\"; for (var a = [], b = this.g.T(), c = 0; c < b.length; c++) {\r\n var d = b[c], e = encodeURIComponent(String(d));\r\n d = this.R(d);\r\n for (var f = 0; f < d.length; f++) {\r\n var h = e;\r\n \"\" !== d[f] && (h += \"=\" + encodeURIComponent(String(d[f])));\r\n a.push(h);\r\n }\r\n} return this.i = a.join(\"&\"); };\r\nfunction W(a, b) { b = String(b); a.j && (b = b.toLowerCase()); return b; }\r\nfunction Zc(a, b) { b && !a.j && (V(a), a.i = null, a.g.forEach(function (c, d) { var e = d.toLowerCase(); d != e && (dd(this, d), mc(this, e, c)); }, a)); a.j = b; }\r\nvar fd = /** @class */ (function () {\r\n function fd(a, b) {\r\n this.h = a;\r\n this.g = b;\r\n }\r\n return fd;\r\n}());\r\nfunction gd(a) { this.l = a || hd; l.PerformanceNavigationTiming ? (a = l.performance.getEntriesByType(\"navigation\"), a = 0 < a.length && (\"hq\" == a[0].nextHopProtocol || \"h2\" == a[0].nextHopProtocol)) : a = !!(l.g && l.g.Ea && l.g.Ea() && l.g.Ea().Zb); this.j = a ? this.l : 1; this.g = null; 1 < this.j && (this.g = new Set); this.h = null; this.i = []; }\r\nvar hd = 10;\r\nfunction id(a) { return a.h ? !0 : a.g ? a.g.size >= a.j : !1; }\r\nfunction Cc(a) { return a.h ? 1 : a.g ? a.g.size : 0; }\r\nfunction yc(a, b) { return a.h ? a.h == b : a.g ? a.g.has(b) : !1; }\r\nfunction Dc(a, b) { a.g ? a.g.add(b) : a.h = b; }\r\nfunction Fc(a, b) { a.h && a.h == b ? a.h = null : a.g && a.g.has(b) && a.g.delete(b); }\r\ngd.prototype.cancel = function () {\r\n var e_1, _a;\r\n this.i = jd(this);\r\n if (this.h)\r\n this.h.cancel(), this.h = null;\r\n else if (this.g && 0 !== this.g.size) {\r\n try {\r\n for (var _b = __values(this.g.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var a = _c.value;\r\n a.cancel();\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n this.g.clear();\r\n }\r\n};\r\nfunction jd(a) {\r\n var e_2, _a;\r\n if (null != a.h)\r\n return a.i.concat(a.h.D);\r\n if (null != a.g && 0 !== a.g.size) {\r\n var b = a.i;\r\n try {\r\n for (var _b = __values(a.g.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var c = _c.value;\r\n b = b.concat(c.D);\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n return b;\r\n }\r\n return ra(a.i);\r\n}\r\nfunction kd() { }\r\nkd.prototype.stringify = function (a) { return l.JSON.stringify(a, void 0); };\r\nkd.prototype.parse = function (a) { return l.JSON.parse(a, void 0); };\r\nfunction ld() { this.g = new kd; }\r\nfunction md(a, b, c) { var d = c || \"\"; try {\r\n Kc(a, function (e, f) { var h = e; p(e) && (h = rb(e)); b.push(d + f + \"=\" + encodeURIComponent(h)); });\r\n}\r\ncatch (e) {\r\n throw b.push(d + \"type=\" + encodeURIComponent(\"_badmap\")), e;\r\n} }\r\nfunction nd(a, b) { var c = new Mb; if (l.Image) {\r\n var d_1 = new Image;\r\n d_1.onload = ja(od, c, d_1, \"TestLoadImage: loaded\", !0, b);\r\n d_1.onerror = ja(od, c, d_1, \"TestLoadImage: error\", !1, b);\r\n d_1.onabort = ja(od, c, d_1, \"TestLoadImage: abort\", !1, b);\r\n d_1.ontimeout = ja(od, c, d_1, \"TestLoadImage: timeout\", !1, b);\r\n l.setTimeout(function () { if (d_1.ontimeout)\r\n d_1.ontimeout(); }, 1E4);\r\n d_1.src = a;\r\n}\r\nelse\r\n b(!1); }\r\nfunction od(a, b, c, d, e) { try {\r\n b.onload = null, b.onerror = null, b.onabort = null, b.ontimeout = null, e(d);\r\n}\r\ncatch (f) { } }\r\nfunction pd(a) { this.l = a.$b || null; this.j = a.ib || !1; }\r\nt(pd, Yb);\r\npd.prototype.g = function () { return new qd(this.l, this.j); };\r\npd.prototype.i = function (a) { return function () { return a; }; }({});\r\nfunction qd(a, b) { C.call(this); this.D = a; this.u = b; this.m = void 0; this.readyState = rd; this.status = 0; this.responseType = this.responseText = this.response = this.statusText = \"\"; this.onreadystatechange = null; this.v = new Headers; this.h = null; this.C = \"GET\"; this.B = \"\"; this.g = !1; this.A = this.j = this.l = null; }\r\nt(qd, C);\r\nvar rd = 0;\r\nk = qd.prototype;\r\nk.open = function (a, b) { if (this.readyState != rd)\r\n throw this.abort(), Error(\"Error reopening a connection\"); this.C = a; this.B = b; this.readyState = 1; sd(this); };\r\nk.send = function (a) { if (1 != this.readyState)\r\n throw this.abort(), Error(\"need to call open() first. \"); this.g = !0; var b = { headers: this.v, method: this.C, credentials: this.m, cache: void 0 }; a && (b.body = a); (this.D || l).fetch(new Request(this.B, b)).then(this.Va.bind(this), this.ha.bind(this)); };\r\nk.abort = function () { this.response = this.responseText = \"\"; this.v = new Headers; this.status = 0; this.j && this.j.cancel(\"Request was aborted.\"); 1 <= this.readyState && this.g && 4 != this.readyState && (this.g = !1, td(this)); this.readyState = rd; };\r\nk.Va = function (a) {\r\n if (this.g && (this.l = a, this.h || (this.status = this.l.status, this.statusText = this.l.statusText, this.h = a.headers, this.readyState = 2, sd(this)), this.g && (this.readyState = 3, sd(this), this.g)))\r\n if (\"arraybuffer\" === this.responseType)\r\n a.arrayBuffer().then(this.Ta.bind(this), this.ha.bind(this));\r\n else if (\"undefined\" !== typeof l.ReadableStream && \"body\" in a) {\r\n this.j = a.body.getReader();\r\n if (this.u) {\r\n if (this.responseType)\r\n throw Error('responseType must be empty for \"streamBinaryChunks\" mode responses.');\r\n this.response =\r\n [];\r\n }\r\n else\r\n this.response = this.responseText = \"\", this.A = new TextDecoder;\r\n ud(this);\r\n }\r\n else\r\n a.text().then(this.Ua.bind(this), this.ha.bind(this));\r\n};\r\nfunction ud(a) { a.j.read().then(a.Sa.bind(a)).catch(a.ha.bind(a)); }\r\nk.Sa = function (a) { if (this.g) {\r\n if (this.u && a.value)\r\n this.response.push(a.value);\r\n else if (!this.u) {\r\n var b = a.value ? a.value : new Uint8Array(0);\r\n if (b = this.A.decode(b, { stream: !a.done }))\r\n this.response = this.responseText += b;\r\n }\r\n a.done ? td(this) : sd(this);\r\n 3 == this.readyState && ud(this);\r\n} };\r\nk.Ua = function (a) { this.g && (this.response = this.responseText = a, td(this)); };\r\nk.Ta = function (a) { this.g && (this.response = a, td(this)); };\r\nk.ha = function () { this.g && td(this); };\r\nfunction td(a) { a.readyState = 4; a.l = null; a.j = null; a.A = null; sd(a); }\r\nk.setRequestHeader = function (a, b) { this.v.append(a, b); };\r\nk.getResponseHeader = function (a) { return this.h ? this.h.get(a.toLowerCase()) || \"\" : \"\"; };\r\nk.getAllResponseHeaders = function () { if (!this.h)\r\n return \"\"; var a = [], b = this.h.entries(); for (var c = b.next(); !c.done;)\r\n c = c.value, a.push(c[0] + \": \" + c[1]), c = b.next(); return a.join(\"\\r\\n\"); };\r\nfunction sd(a) { a.onreadystatechange && a.onreadystatechange.call(a); }\r\nObject.defineProperty(qd.prototype, \"withCredentials\", { get: function () { return \"include\" === this.m; }, set: function (a) { this.m = a ? \"include\" : \"same-origin\"; } });\r\nvar vd = l.JSON.parse;\r\nfunction X(a) { C.call(this); this.headers = new S; this.u = a || null; this.h = !1; this.C = this.g = null; this.H = \"\"; this.m = 0; this.j = \"\"; this.l = this.F = this.v = this.D = !1; this.B = 0; this.A = null; this.J = wd; this.K = this.L = !1; }\r\nt(X, C);\r\nvar wd = \"\", xd = /^https?$/i, yd = [\"POST\", \"PUT\"];\r\nk = X.prototype;\r\nk.ea = function (a, b, c, d) {\r\n if (this.g)\r\n throw Error(\"[goog.net.XhrIo] Object is active with another request=\" + this.H + \"; newUri=\" + a);\r\n b = b ? b.toUpperCase() : \"GET\";\r\n this.H = a;\r\n this.j = \"\";\r\n this.m = 0;\r\n this.D = !1;\r\n this.h = !0;\r\n this.g = this.u ? this.u.g() : cc.g();\r\n this.C = this.u ? Zb(this.u) : Zb(cc);\r\n this.g.onreadystatechange = q(this.Fa, this);\r\n try {\r\n this.F = !0, this.g.open(b, String(a), !0), this.F = !1;\r\n }\r\n catch (f) {\r\n zd(this, f);\r\n return;\r\n }\r\n a = c || \"\";\r\n var e = new S(this.headers);\r\n d && Kc(d, function (f, h) { e.set(h, f); });\r\n d = oa(e.T());\r\n c = l.FormData && a instanceof l.FormData;\r\n !(0 <= ma(yd, b)) || d || c || e.set(\"Content-Type\", \"application/x-www-form-urlencoded;charset=utf-8\");\r\n e.forEach(function (f, h) { this.g.setRequestHeader(h, f); }, this);\r\n this.J && (this.g.responseType = this.J);\r\n \"withCredentials\" in this.g && this.g.withCredentials !== this.L && (this.g.withCredentials = this.L);\r\n try {\r\n Ad(this), 0 < this.B && ((this.K = Bd(this.g)) ? (this.g.timeout = this.B, this.g.ontimeout = q(this.pa, this)) : this.A = Gb(this.pa, this.B, this)), this.v = !0, this.g.send(a), this.v = !1;\r\n }\r\n catch (f) {\r\n zd(this, f);\r\n }\r\n};\r\nfunction Bd(a) { return y && Ra() && \"number\" === typeof a.timeout && void 0 !== a.ontimeout; }\r\nfunction pa(a) { return \"content-type\" == a.toLowerCase(); }\r\nk.pa = function () { \"undefined\" != typeof goog && this.g && (this.j = \"Timed out after \" + this.B + \"ms, aborting\", this.m = 8, D(this, \"timeout\"), this.abort(8)); };\r\nfunction zd(a, b) { a.h = !1; a.g && (a.l = !0, a.g.abort(), a.l = !1); a.j = b; a.m = 5; Cd(a); Dd(a); }\r\nfunction Cd(a) { a.D || (a.D = !0, D(a, \"complete\"), D(a, \"error\")); }\r\nk.abort = function (a) { this.g && this.h && (this.h = !1, this.l = !0, this.g.abort(), this.l = !1, this.m = a || 7, D(this, \"complete\"), D(this, \"abort\"), Dd(this)); };\r\nk.M = function () { this.g && (this.h && (this.h = !1, this.l = !0, this.g.abort(), this.l = !1), Dd(this, !0)); X.Z.M.call(this); };\r\nk.Fa = function () { this.s || (this.F || this.v || this.l ? Ed(this) : this.cb()); };\r\nk.cb = function () { Ed(this); };\r\nfunction Ed(a) {\r\n if (a.h && \"undefined\" != typeof goog && (!a.C[1] || 4 != O(a) || 2 != a.ba()))\r\n if (a.v && 4 == O(a))\r\n Gb(a.Fa, 0, a);\r\n else if (D(a, \"readystatechange\"), 4 == O(a)) {\r\n a.h = !1;\r\n try {\r\n var n = a.ba();\r\n a: switch (n) {\r\n case 200:\r\n case 201:\r\n case 202:\r\n case 204:\r\n case 206:\r\n case 304:\r\n case 1223:\r\n var b = !0;\r\n break a;\r\n default: b = !1;\r\n }\r\n var c;\r\n if (!(c = b)) {\r\n var d;\r\n if (d = 0 === n) {\r\n var e = String(a.H).match(Mc)[1] || null;\r\n if (!e && l.self && l.self.location) {\r\n var f = l.self.location.protocol;\r\n e = f.substr(0, f.length - 1);\r\n }\r\n d = !xd.test(e ? e.toLowerCase() : \"\");\r\n }\r\n c = d;\r\n }\r\n if (c)\r\n D(a, \"complete\"), D(a, \"success\");\r\n else {\r\n a.m = 6;\r\n try {\r\n var h = 2 < O(a) ? a.g.statusText : \"\";\r\n }\r\n catch (u) {\r\n h = \"\";\r\n }\r\n a.j = h + \" [\" + a.ba() + \"]\";\r\n Cd(a);\r\n }\r\n }\r\n finally {\r\n Dd(a);\r\n }\r\n }\r\n}\r\nfunction Dd(a, b) { if (a.g) {\r\n Ad(a);\r\n var c = a.g, d = a.C[0] ? aa : null;\r\n a.g = null;\r\n a.C = null;\r\n b || D(a, \"ready\");\r\n try {\r\n c.onreadystatechange = d;\r\n }\r\n catch (e) { }\r\n} }\r\nfunction Ad(a) { a.g && a.K && (a.g.ontimeout = null); a.A && (l.clearTimeout(a.A), a.A = null); }\r\nfunction O(a) { return a.g ? a.g.readyState : 0; }\r\nk.ba = function () { try {\r\n return 2 < O(this) ? this.g.status : -1;\r\n}\r\ncatch (a) {\r\n return -1;\r\n} };\r\nk.ga = function () { try {\r\n return this.g ? this.g.responseText : \"\";\r\n}\r\ncatch (a) {\r\n return \"\";\r\n} };\r\nk.Qa = function (a) { if (this.g) {\r\n var b = this.g.responseText;\r\n a && 0 == b.indexOf(a) && (b = b.substring(a.length));\r\n return vd(b);\r\n} };\r\nfunction oc(a) { try {\r\n if (!a.g)\r\n return null;\r\n if (\"response\" in a.g)\r\n return a.g.response;\r\n switch (a.J) {\r\n case wd:\r\n case \"text\": return a.g.responseText;\r\n case \"arraybuffer\": if (\"mozResponseArrayBuffer\" in a.g)\r\n return a.g.mozResponseArrayBuffer;\r\n }\r\n return null;\r\n}\r\ncatch (b) {\r\n return null;\r\n} }\r\nk.Da = function () { return this.m; };\r\nk.La = function () { return \"string\" === typeof this.j ? this.j : String(this.j); };\r\nfunction Fd(a) { var b = \"\"; xa(a, function (c, d) { b += d; b += \":\"; b += c; b += \"\\r\\n\"; }); return b; }\r\nfunction Gd(a, b, c) { a: {\r\n for (d in c) {\r\n var d = !1;\r\n break a;\r\n }\r\n d = !0;\r\n} d || (c = Fd(c), \"string\" === typeof a ? (null != c && encodeURIComponent(String(c))) : R(a, b, c)); }\r\nfunction Hd(a, b, c) { return c && c.internalChannelParams ? c.internalChannelParams[a] || b : b; }\r\nfunction Id(a) {\r\n this.za = 0;\r\n this.l = [];\r\n this.h = new Mb;\r\n this.la = this.oa = this.F = this.W = this.g = this.sa = this.D = this.aa = this.o = this.P = this.s = null;\r\n this.Za = this.V = 0;\r\n this.Xa = Hd(\"failFast\", !1, a);\r\n this.N = this.v = this.u = this.m = this.j = null;\r\n this.X = !0;\r\n this.I = this.ta = this.U = -1;\r\n this.Y = this.A = this.C = 0;\r\n this.Pa = Hd(\"baseRetryDelayMs\", 5E3, a);\r\n this.$a = Hd(\"retryDelaySeedMs\", 1E4, a);\r\n this.Ya = Hd(\"forwardChannelMaxRetries\", 2, a);\r\n this.ra = Hd(\"forwardChannelRequestTimeoutMs\", 2E4, a);\r\n this.qa = a && a.xmlHttpFactory || void 0;\r\n this.Ba = a && a.Yb || !1;\r\n this.K = void 0;\r\n this.H = a && a.supportsCrossDomainXhr || !1;\r\n this.J = \"\";\r\n this.i = new gd(a && a.concurrentRequestLimit);\r\n this.Ca = new ld;\r\n this.ja = a && a.fastHandshake || !1;\r\n this.Ra = a && a.Wb || !1;\r\n a && a.Aa && this.h.Aa();\r\n a && a.forceLongPolling && (this.X = !1);\r\n this.$ = !this.ja && this.X && a && a.detectBufferingProxy || !1;\r\n this.ka = void 0;\r\n this.O = 0;\r\n this.L = !1;\r\n this.B = null;\r\n this.Wa = !a || !1 !== a.Xb;\r\n}\r\nk = Id.prototype;\r\nk.ma = 8;\r\nk.G = 1;\r\nfunction Ic(a) { Jd(a); if (3 == a.G) {\r\n var b = a.V++, c = N(a.F);\r\n R(c, \"SID\", a.J);\r\n R(c, \"RID\", b);\r\n R(c, \"TYPE\", \"terminate\");\r\n Kd(a, c);\r\n b = new M(a, a.h, b, void 0);\r\n b.K = 2;\r\n b.v = jc(N(c));\r\n c = !1;\r\n l.navigator && l.navigator.sendBeacon && (c = l.navigator.sendBeacon(b.v.toString(), \"\"));\r\n !c && l.Image && ((new Image).src = b.v, c = !0);\r\n c || (b.g = nc(b.l, null), b.g.ea(b.v));\r\n b.F = Date.now();\r\n lc(b);\r\n} Ld(a); }\r\nk.hb = function (a) { try {\r\n this.h.info(\"Origin Trials invoked: \" + a);\r\n}\r\ncatch (b) { } };\r\nfunction Ac(a) { a.g && (wc(a), a.g.cancel(), a.g = null); }\r\nfunction Jd(a) { Ac(a); a.u && (l.clearTimeout(a.u), a.u = null); zc(a); a.i.cancel(); a.m && (\"number\" === typeof a.m && l.clearTimeout(a.m), a.m = null); }\r\nfunction Md(a, b) { a.l.push(new fd(a.Za++, b)); 3 == a.G && Hc(a); }\r\nfunction Hc(a) { id(a.i) || a.m || (a.m = !0, zb(a.Ha, a), a.C = 0); }\r\nfunction Nd(a, b) { if (Cc(a.i) >= a.i.j - (a.m ? 1 : 0))\r\n return !1; if (a.m)\r\n return a.l = b.D.concat(a.l), !0; if (1 == a.G || 2 == a.G || a.C >= (a.Xa ? 0 : a.Ya))\r\n return !1; a.m = K(q(a.Ha, a, b), Od(a, a.C)); a.C++; return !0; }\r\nk.Ha = function (a) {\r\n if (this.m)\r\n if (this.m = null, 1 == this.G) {\r\n if (!a) {\r\n this.V = Math.floor(1E5 * Math.random());\r\n a = this.V++;\r\n var e = new M(this, this.h, a, void 0);\r\n var f = this.s;\r\n this.P && (f ? (f = ya(f), Aa(f, this.P)) : f = this.P);\r\n null === this.o && (e.H = f);\r\n if (this.ja)\r\n a: {\r\n var b = 0;\r\n for (var c = 0; c < this.l.length; c++) {\r\n b: {\r\n var d = this.l[c];\r\n if (\"__data__\" in d.g && (d = d.g.__data__, \"string\" === typeof d)) {\r\n d = d.length;\r\n break b;\r\n }\r\n d = void 0;\r\n }\r\n if (void 0 === d)\r\n break;\r\n b += d;\r\n if (4096 < b) {\r\n b = c;\r\n break a;\r\n }\r\n if (4096 === b || c === this.l.length - 1) {\r\n b = c + 1;\r\n break a;\r\n }\r\n }\r\n b = 1E3;\r\n }\r\n else\r\n b = 1E3;\r\n b =\r\n Pd(this, e, b);\r\n c = N(this.F);\r\n R(c, \"RID\", a);\r\n R(c, \"CVER\", 22);\r\n this.D && R(c, \"X-HTTP-Session-Id\", this.D);\r\n Kd(this, c);\r\n this.o && f && Gd(c, this.o, f);\r\n Dc(this.i, e);\r\n this.Ra && R(c, \"TYPE\", \"init\");\r\n this.ja ? (R(c, \"$req\", b), R(c, \"SID\", \"null\"), e.$ = !0, ic(e, c, null)) : ic(e, c, b);\r\n this.G = 2;\r\n }\r\n }\r\n else\r\n 3 == this.G && (a ? Qd(this, a) : 0 == this.l.length || id(this.i) || Qd(this));\r\n};\r\nfunction Qd(a, b) { var c; b ? c = b.m : c = a.V++; var d = N(a.F); R(d, \"SID\", a.J); R(d, \"RID\", c); R(d, \"AID\", a.U); Kd(a, d); a.o && a.s && Gd(d, a.o, a.s); c = new M(a, a.h, c, a.C + 1); null === a.o && (c.H = a.s); b && (a.l = b.D.concat(a.l)); b = Pd(a, c, 1E3); c.setTimeout(Math.round(.5 * a.ra) + Math.round(.5 * a.ra * Math.random())); Dc(a.i, c); ic(c, d, b); }\r\nfunction Kd(a, b) { a.j && Kc({}, function (c, d) { R(b, d, c); }); }\r\nfunction Pd(a, b, c) { c = Math.min(a.l.length, c); var d = a.j ? q(a.j.Oa, a.j, a) : null; a: {\r\n var e = a.l;\r\n var f = -1;\r\n for (;;) {\r\n var h = [\"count=\" + c];\r\n -1 == f ? 0 < c ? (f = e[0].h, h.push(\"ofs=\" + f)) : f = 0 : h.push(\"ofs=\" + f);\r\n var n = !0;\r\n for (var u = 0; u < c; u++) {\r\n var m = e[u].h;\r\n var r = e[u].g;\r\n m -= f;\r\n if (0 > m)\r\n f = Math.max(0, e[u].h - 100), n = !1;\r\n else\r\n try {\r\n md(r, h, \"req\" + m + \"_\");\r\n }\r\n catch (G) {\r\n d && d(r);\r\n }\r\n }\r\n if (n) {\r\n d = h.join(\"&\");\r\n break a;\r\n }\r\n }\r\n} a = a.l.splice(0, c); b.D = a; return d; }\r\nfunction Gc(a) { a.g || a.u || (a.Y = 1, zb(a.Ga, a), a.A = 0); }\r\nfunction Bc(a) { if (a.g || a.u || 3 <= a.A)\r\n return !1; a.Y++; a.u = K(q(a.Ga, a), Od(a, a.A)); a.A++; return !0; }\r\nk.Ga = function () { this.u = null; Rd(this); if (this.$ && !(this.L || null == this.g || 0 >= this.O)) {\r\n var a = 2 * this.O;\r\n this.h.info(\"BP detection timer enabled: \" + a);\r\n this.B = K(q(this.bb, this), a);\r\n} };\r\nk.bb = function () { this.B && (this.B = null, this.h.info(\"BP detection timeout reached.\"), this.h.info(\"Buffering proxy detected and switch to long-polling!\"), this.N = !1, this.L = !0, J(10), Ac(this), Rd(this)); };\r\nfunction wc(a) { null != a.B && (l.clearTimeout(a.B), a.B = null); }\r\nfunction Rd(a) { a.g = new M(a, a.h, \"rpc\", a.Y); null === a.o && (a.g.H = a.s); a.g.O = 0; var b = N(a.oa); R(b, \"RID\", \"rpc\"); R(b, \"SID\", a.J); R(b, \"CI\", a.N ? \"0\" : \"1\"); R(b, \"AID\", a.U); Kd(a, b); R(b, \"TYPE\", \"xmlhttp\"); a.o && a.s && Gd(b, a.o, a.s); a.K && a.g.setTimeout(a.K); var c = a.g; a = a.la; c.K = 1; c.v = jc(N(b)); c.s = null; c.U = !0; kc(c, a); }\r\nk.ab = function () { null != this.v && (this.v = null, Ac(this), Bc(this), J(19)); };\r\nfunction zc(a) { null != a.v && (l.clearTimeout(a.v), a.v = null); }\r\nfunction uc(a, b) { var c = null; if (a.g == b) {\r\n zc(a);\r\n wc(a);\r\n a.g = null;\r\n var d = 2;\r\n}\r\nelse if (yc(a.i, b))\r\n c = b.D, Fc(a.i, b), d = 1;\r\nelse\r\n return; a.I = b.N; if (0 != a.G)\r\n if (b.i)\r\n if (1 == d) {\r\n c = b.s ? b.s.length : 0;\r\n b = Date.now() - b.F;\r\n var e = a.C;\r\n d = Sb();\r\n D(d, new Vb(d, c, b, e));\r\n Hc(a);\r\n }\r\n else\r\n Gc(a);\r\n else if (e = b.o, 3 == e || 0 == e && 0 < a.I || !(1 == d && Nd(a, b) || 2 == d && Bc(a)))\r\n switch (c && 0 < c.length && (b = a.i, b.i = b.i.concat(c)), e) {\r\n case 1:\r\n Q(a, 5);\r\n break;\r\n case 4:\r\n Q(a, 10);\r\n break;\r\n case 3:\r\n Q(a, 6);\r\n break;\r\n default: Q(a, 2);\r\n } }\r\nfunction Od(a, b) { var c = a.Pa + Math.floor(Math.random() * a.$a); a.j || (c *= 2); return c * b; }\r\nfunction Q(a, b) { a.h.info(\"Error code \" + b); if (2 == b) {\r\n var c = null;\r\n a.j && (c = null);\r\n var d = q(a.jb, a);\r\n c || (c = new U(\"//www.google.com/images/cleardot.gif\"), l.location && \"http\" == l.location.protocol || Oc(c, \"https\"), jc(c));\r\n nd(c.toString(), d);\r\n}\r\nelse\r\n J(2); a.G = 0; a.j && a.j.va(b); Ld(a); Jd(a); }\r\nk.jb = function (a) { a ? (this.h.info(\"Successfully pinged google.com\"), J(2)) : (this.h.info(\"Failed to ping google.com\"), J(1)); };\r\nfunction Ld(a) { a.G = 0; a.I = -1; if (a.j) {\r\n if (0 != jd(a.i).length || 0 != a.l.length)\r\n a.i.i.length = 0, ra(a.l), a.l.length = 0;\r\n a.j.ua();\r\n} }\r\nfunction Ec(a, b, c) { var d = ad(c); if (\"\" != d.i)\r\n b && Pc(d, b + \".\" + d.i), Qc(d, d.m);\r\nelse {\r\n var e = l.location;\r\n d = bd(e.protocol, b ? b + \".\" + e.hostname : e.hostname, +e.port, c);\r\n} a.aa && xa(a.aa, function (e, f) { R(d, f, e); }); b = a.D; c = a.sa; b && c && R(d, b, c); R(d, \"VER\", a.ma); Kd(a, d); return d; }\r\nfunction nc(a, b, c) { if (b && !a.H)\r\n throw Error(\"Can't create secondary domain capable XhrIo object.\"); b = c && a.Ba && !a.qa ? new X(new pd({ ib: !0 })) : new X(a.qa); b.L = a.H; return b; }\r\nfunction Sd() { }\r\nk = Sd.prototype;\r\nk.xa = function () { };\r\nk.wa = function () { };\r\nk.va = function () { };\r\nk.ua = function () { };\r\nk.Oa = function () { };\r\nfunction Td() { if (y && !(10 <= Number(Ua)))\r\n throw Error(\"Environmental error: no available transport.\"); }\r\nTd.prototype.g = function (a, b) { return new Y(a, b); };\r\nfunction Y(a, b) {\r\n C.call(this);\r\n this.g = new Id(b);\r\n this.l = a;\r\n this.h = b && b.messageUrlParams || null;\r\n a = b && b.messageHeaders || null;\r\n b && b.clientProtocolHeaderRequired && (a ? a[\"X-Client-Protocol\"] = \"webchannel\" : a = { \"X-Client-Protocol\": \"webchannel\" });\r\n this.g.s = a;\r\n a = b && b.initMessageHeaders || null;\r\n b && b.messageContentType && (a ? a[\"X-WebChannel-Content-Type\"] = b.messageContentType : a = { \"X-WebChannel-Content-Type\": b.messageContentType });\r\n b && b.ya && (a ? a[\"X-WebChannel-Client-Profile\"] = b.ya : a = { \"X-WebChannel-Client-Profile\": b.ya });\r\n this.g.P =\r\n a;\r\n (a = b && b.httpHeadersOverwriteParam) && !sa(a) && (this.g.o = a);\r\n this.A = b && b.supportsCrossDomainXhr || !1;\r\n this.v = b && b.sendRawJson || !1;\r\n (b = b && b.httpSessionIdParam) && !sa(b) && (this.g.D = b, a = this.h, null !== a && b in a && (a = this.h, b in a && delete a[b]));\r\n this.j = new Z(this);\r\n}\r\nt(Y, C);\r\nY.prototype.m = function () { this.g.j = this.j; this.A && (this.g.H = !0); var a = this.g, b = this.l, c = this.h || void 0; a.Wa && (a.h.info(\"Origin Trials enabled.\"), zb(q(a.hb, a, b))); J(0); a.W = b; a.aa = c || {}; a.N = a.X; a.F = Ec(a, null, a.W); Hc(a); };\r\nY.prototype.close = function () { Ic(this.g); };\r\nY.prototype.u = function (a) { if (\"string\" === typeof a) {\r\n var b = {};\r\n b.__data__ = a;\r\n Md(this.g, b);\r\n}\r\nelse\r\n this.v ? (b = {}, b.__data__ = rb(a), Md(this.g, b)) : Md(this.g, a); };\r\nY.prototype.M = function () { this.g.j = null; delete this.j; Ic(this.g); delete this.g; Y.Z.M.call(this); };\r\nfunction Ud(a) { ac.call(this); var b = a.__sm__; if (b) {\r\n a: {\r\n for (var c in b) {\r\n a = c;\r\n break a;\r\n }\r\n a = void 0;\r\n }\r\n if (this.i = a)\r\n a = this.i, b = null !== b && a in b ? b[a] : void 0;\r\n this.data = b;\r\n}\r\nelse\r\n this.data = a; }\r\nt(Ud, ac);\r\nfunction Vd() { bc.call(this); this.status = 1; }\r\nt(Vd, bc);\r\nfunction Z(a) { this.g = a; }\r\nt(Z, Sd);\r\nZ.prototype.xa = function () { D(this.g, \"a\"); };\r\nZ.prototype.wa = function (a) { D(this.g, new Ud(a)); };\r\nZ.prototype.va = function (a) { D(this.g, new Vd(a)); };\r\nZ.prototype.ua = function () { D(this.g, \"b\"); }; /*\r\n\n Copyright 2017 Google LLC\r\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\n http://www.apache.org/licenses/LICENSE-2.0\r\n\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n*/\r\nTd.prototype.createWebChannel = Td.prototype.g;\r\nY.prototype.send = Y.prototype.u;\r\nY.prototype.open = Y.prototype.m;\r\nY.prototype.close = Y.prototype.close;\r\nWb.NO_ERROR = 0;\r\nWb.TIMEOUT = 8;\r\nWb.HTTP_ERROR = 6;\r\nXb.COMPLETE = \"complete\";\r\n$b.EventType = L;\r\nL.OPEN = \"a\";\r\nL.CLOSE = \"b\";\r\nL.ERROR = \"c\";\r\nL.MESSAGE = \"d\";\r\nC.prototype.listen = C.prototype.N;\r\nX.prototype.listenOnce = X.prototype.O;\r\nX.prototype.getLastError = X.prototype.La;\r\nX.prototype.getLastErrorCode = X.prototype.Da;\r\nX.prototype.getStatus = X.prototype.ba;\r\nX.prototype.getResponseJson = X.prototype.Qa;\r\nX.prototype.getResponseText = X.prototype.ga;\r\nX.prototype.send = X.prototype.ea;\r\nvar createWebChannelTransport = function () { return new Td; };\r\nvar getStatEventTarget = function () { return Sb(); };\r\nvar ErrorCode = Wb;\r\nvar EventType = Xb;\r\nvar Event = H;\r\nvar Stat = { rb: 0, ub: 1, vb: 2, Ob: 3, Tb: 4, Qb: 5, Rb: 6, Pb: 7, Nb: 8, Sb: 9, PROXY: 10, NOPROXY: 11, Lb: 12, Hb: 13, Ib: 14, Gb: 15, Jb: 16, Kb: 17, nb: 18, mb: 19, ob: 20 };\r\nvar FetchXmlHttpFactory = pd;\r\nvar WebChannel = $b;\r\nvar XhrIo = X;\r\n\r\nvar esm = {\r\n createWebChannelTransport: createWebChannelTransport,\r\n getStatEventTarget: getStatEventTarget,\r\n ErrorCode: ErrorCode,\r\n EventType: EventType,\r\n Event: Event,\r\n Stat: Stat,\r\n FetchXmlHttpFactory: FetchXmlHttpFactory,\r\n WebChannel: WebChannel,\r\n XhrIo: XhrIo\r\n};\n\nexport default esm;\nexport { ErrorCode, Event, EventType, FetchXmlHttpFactory, Stat, WebChannel, XhrIo, createWebChannelTransport, getStatEventTarget };\n//# sourceMappingURL=index.esm.js.map\n","'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","export function _class_extract_field_descriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n\n return privateMap.get(receiver);\n}\nexport { _class_extract_field_descriptor as _ };\n","import { _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nexport function _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n","export function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import { _class_apply_descriptor_set } from \"./_class_apply_descriptor_set.js\";\nimport { _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nexport function _class_private_field_set(receiver, privateMap, value) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"set\");\n _class_apply_descriptor_set(receiver, descriptor, value);\n return value;\n}\nexport { _class_private_field_set as _ };\n","export function _class_apply_descriptor_set(receiver, descriptor, value) {\n if (descriptor.set) descriptor.set.call(receiver, value);\n else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}\nexport { _class_apply_descriptor_set as _ };\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getOwnerDocument, isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: Element) {\n if (isIOS()) {\n if (state === 'default') {\n // eslint-disable-next-line no-restricted-globals\n const documentObject = getOwnerDocument(target);\n savedUserSelect = documentObject.documentElement.style.webkitUserSelect;\n documentObject.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: Element) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n // eslint-disable-next-line no-restricted-globals\n const documentObject = getOwnerDocument(target);\n if (documentObject.documentElement.style.webkitUserSelect === 'none') {\n documentObject.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target) as string;\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext({register: () => {}});\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {chain, focusWithoutScrolling, getOwnerDocument, getOwnerWindow, isMac, isVirtualClick, isVirtualPointerEvent, mergeProps, openLink, useEffectEvent, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, FocusableElement, PressEvent as IPressEvent, PointerType, PressEvents} from '@react-types/shared';\nimport {PressResponderContext} from './context';\nimport {RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n isTriggeringEvent: boolean,\n activePointerId: any,\n target: FocusableElement | null,\n isOverTarget: boolean,\n pointerType: PointerType | null,\n userSelect?: string,\n metaKeyEvents?: Map\n}\n\ninterface EventBase {\n currentTarget: EventTarget | null,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: DOMAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\nclass PressEvent implements IPressEvent {\n type: IPressEvent['type'];\n pointerType: PointerType;\n target: Element;\n shiftKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n altKey: boolean;\n #shouldStopPropagation = true;\n\n constructor(type: IPressEvent['type'], pointerType: PointerType, originalEvent: EventBase) {\n this.type = type;\n this.pointerType = pointerType;\n this.target = originalEvent.currentTarget as Element;\n this.shiftKey = originalEvent.shiftKey;\n this.metaKey = originalEvent.metaKey;\n this.ctrlKey = originalEvent.ctrlKey;\n this.altKey = originalEvent.altKey;\n }\n\n continuePropagation() {\n this.#shouldStopPropagation = false;\n }\n\n get shouldStopPropagation() {\n return this.#shouldStopPropagation;\n }\n}\n\nconst LINK_CLICKED = Symbol('linkClicked');\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n isTriggeringEvent: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let triggerPressStart = useEffectEvent((originalEvent: EventBase, pointerType: PointerType) => {\n let state = ref.current;\n if (isDisabled || state.didFirePressStart) {\n return false;\n }\n\n let shouldStopPropagation = true;\n state.isTriggeringEvent = true;\n if (onPressStart) {\n let event = new PressEvent('pressstart', pointerType, originalEvent);\n onPressStart(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.isTriggeringEvent = false;\n state.didFirePressStart = true;\n setPressed(true);\n return shouldStopPropagation;\n });\n\n let triggerPressEnd = useEffectEvent((originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let state = ref.current;\n if (!state.didFirePressStart) {\n return false;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n state.isTriggeringEvent = true;\n\n let shouldStopPropagation = true;\n if (onPressEnd) {\n let event = new PressEvent('pressend', pointerType, originalEvent);\n onPressEnd(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n let event = new PressEvent('press', pointerType, originalEvent);\n onPress(event);\n shouldStopPropagation &&= event.shouldStopPropagation;\n }\n\n state.isTriggeringEvent = false;\n return shouldStopPropagation;\n });\n\n let triggerPressUp = useEffectEvent((originalEvent: EventBase, pointerType: PointerType) => {\n let state = ref.current;\n if (isDisabled) {\n return false;\n }\n\n if (onPressUp) {\n state.isTriggeringEvent = true;\n let event = new PressEvent('pressup', pointerType, originalEvent);\n onPressUp(event);\n state.isTriggeringEvent = false;\n return event.shouldStopPropagation;\n }\n\n return true;\n });\n\n let cancel = useEffectEvent((e: EventBase) => {\n let state = ref.current;\n if (state.isPressed && state.target) {\n if (state.isOverTarget && state.pointerType != null) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n });\n\n let cancelOnPointerExit = useEffectEvent((e: EventBase) => {\n if (shouldCancelOnPointerExit) {\n cancel(e);\n }\n });\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let pressProps: DOMAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target as Element)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n let shouldStopPropagation = true;\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n shouldStopPropagation = triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred. Make it capturing so that it will trigger\n // before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.\n let originalTarget = e.currentTarget;\n let pressUp = (e) => {\n if (isValidKeyboardEvent(e, originalTarget) && !e.repeat && originalTarget.contains(e.target as Element) && state.target) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n };\n\n addGlobalListener(getOwnerDocument(e.currentTarget), 'keyup', chain(pressUp, onKeyUp), true);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n // Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.\n // macOS has a bug where keyup events are not fired while the Meta key is down.\n // When the Meta key itself is released we will get an event for that, and we'll act as if\n // all of these other keys were released as well.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1393524\n // https://bugs.webkit.org/show_bug.cgi?id=55291\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1299553\n if (e.metaKey && isMac()) {\n state.metaKeyEvents?.set(e.key, e.nativeEvent);\n }\n } else if (e.key === 'Meta') {\n state.metaKeyEvents = new Map();\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e && e.button === 0 && !state.isTriggeringEvent && !(openLink as any).isOpening) {\n let shouldStopPropagation = true;\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n let stopPressStart = triggerPressStart(e, 'virtual');\n let stopPressUp = triggerPressUp(e, 'virtual');\n let stopPressEnd = triggerPressEnd(e, 'virtual');\n shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && state.target && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n\n let target = e.target as Element;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If a link was triggered with a key other than Enter, open the URL ourselves.\n // This means the link has a role override, and the default browser behavior\n // only applies when using the Enter key.\n if (e.key !== 'Enter' && isHTMLAnchorLink(state.target) && state.target.contains(target) && !e[LINK_CLICKED]) {\n // Store a hidden property on the event so we only trigger link click once,\n // even if there are multiple usePress instances attached to the element.\n e[LINK_CLICKED] = true;\n openLink(state.target, e, false);\n }\n\n state.isPressed = false;\n state.metaKeyEvents?.delete(e.key);\n } else if (e.key === 'Meta' && state.metaKeyEvents?.size) {\n // If we recorded keydown events that occurred while the Meta key was pressed,\n // and those haven't received keyup events already, fire keyup events ourselves.\n // See comment above for more info about the macOS bug causing this.\n let events = state.metaKeyEvents;\n state.metaKeyEvents = undefined;\n for (let event of events.values()) {\n state.target?.dispatchEvent(new KeyboardEvent('keyup', event));\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n let shouldStopPropagation = true;\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n\n addGlobalListener(getOwnerDocument(e.currentTarget), 'pointermove', onPointerMove, false);\n addGlobalListener(getOwnerDocument(e.currentTarget), 'pointerup', onPointerUp, false);\n addGlobalListener(getOwnerDocument(e.currentTarget), 'pointercancel', onPointerCancel, false);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.currentTarget as Element)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as Element) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (state.target && isOverTarget(e, state.target)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.target && state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(e);\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0 && state.target) {\n if (isOverTarget(e, state.target) && state.pointerType != null) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget && state.pointerType != null) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget)) {\n e.preventDefault();\n }\n\n if (state.ignoreEmulatedMouseEvents) {\n e.stopPropagation();\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n let shouldStopPropagation = triggerPressStart(e, state.pointerType);\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n addGlobalListener(getOwnerDocument(e.currentTarget), 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType || 'mouse');\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (state.target && isOverTarget(e, state.target) && state.pointerType != null) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.target && state.isOverTarget && state.pointerType != null) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n let shouldStopPropagation = triggerPressStart(e, state.pointerType);\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n addGlobalListener(getOwnerWindow(e.currentTarget), 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && isOverTarget(touch, e.currentTarget) && state.pointerType != null) {\n triggerPressUp(e, state.pointerType);\n shouldStopPropagation = triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget && state.pointerType != null) {\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (state.target && !allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as Element).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [\n addGlobalListener,\n isDisabled,\n preventFocusOnPress,\n removeAllGlobalListeners,\n allowTextSelectionOnPress,\n cancel,\n cancelOnPointerExit,\n triggerPressEnd,\n triggerPressStart,\n triggerPressUp\n ]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n restoreTextSelection(ref.current.target ?? undefined);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: Element): target is HTMLAnchorElement {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Element): boolean {\n const {key, code} = event;\n const element = currentTarget as HTMLElement;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n !((element instanceof getOwnerWindow(element).HTMLInputElement && !isValidInputKey(element, key)) ||\n element instanceof getOwnerWindow(element).HTMLTextAreaElement ||\n element.isContentEditable) &&\n // Links should only trigger with Enter key\n !((role === 'link' || (!role && isHTMLAnchorLink(element))) && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: FocusableElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = 0;\n let offsetY = 0;\n if (point.width !== undefined) {\n offsetX = (point.width / 2);\n } else if (point.radiusX !== undefined) {\n offsetX = point.radiusX;\n }\n if (point.height !== undefined) {\n offsetY = (point.height / 2);\n } else if (point.radiusY !== undefined) {\n offsetY = point.radiusY;\n }\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: Element) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: Element) {\n // We cannot prevent default if the target is a draggable element.\n return !(target instanceof HTMLElement) || !target.hasAttribute('draggable');\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element, key: string) {\n if (target instanceof HTMLInputElement) {\n return !isValidInputKey(target, key);\n }\n\n if (target instanceof HTMLButtonElement) {\n return target.type !== 'submit' && target.type !== 'reset';\n }\n\n if (isHTMLAnchorLink(target)) {\n return false;\n }\n\n return true;\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\nfunction isValidInputKey(target: HTMLInputElement, key: string) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio'\n ? key === ' '\n : nonTextInputTypes.has(target.type);\n}\n","export function _class_apply_descriptor_get(receiver, descriptor) {\n if (descriptor.get) return descriptor.get.call(receiver);\n\n return descriptor.value;\n}\nexport { _class_apply_descriptor_get as _ };\n","import { _class_apply_descriptor_get } from \"./_class_apply_descriptor_get.js\";\nimport { _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nexport function _class_private_field_get(receiver, privateMap) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"get\");\n return _class_apply_descriptor_get(receiver, descriptor);\n}\nexport { _class_private_field_get as _ };\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusEvent as ReactFocusEvent, useCallback, useRef} from 'react';\nimport {useEffectEvent, useLayoutEffect} from '@react-aria/utils';\n\nexport class SyntheticFocusEvent implements ReactFocusEvent {\n nativeEvent: FocusEvent;\n target: EventTarget & Target;\n currentTarget: EventTarget & Target;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as EventTarget & Target;\n this.currentTarget = nativeEvent.currentTarget as EventTarget & Target;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent(onBlur: (e: ReactFocusEvent) => void) {\n let stateRef = useRef({\n isFocused: false,\n observer: null as MutationObserver | null\n });\n\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n let dispatchBlur = useEffectEvent((e: SyntheticFocusEvent) => {\n onBlur?.(e);\n });\n\n // This function is called during a React onFocus event.\n return useCallback((e: ReactFocusEvent) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n let target = e.target;\n let onBlurHandler: EventListenerOrEventListenerObject | null = (e) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n dispatchBlur(new SyntheticFocusEvent('blur', e as FocusEvent));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer?.disconnect();\n let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', {relatedTarget: relatedTargetEl}));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true, relatedTarget: relatedTargetEl}));\n }\n });\n\n stateRef.current.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n }, [dispatchBlur]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, FocusableElement, FocusEvents} from '@react-types/shared';\nimport {FocusEvent, useCallback} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n let {\n isDisabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n onFocusChange\n } = props;\n\n const onBlur: FocusProps['onBlur'] = useCallback((e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (onBlurProp) {\n onBlurProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(false);\n }\n\n return true;\n }\n }, [onBlurProp, onFocusChange]);\n\n\n const onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n\n const onFocus: FocusProps['onFocus'] = useCallback((e: FocusEvent) => {\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n if (e.target === e.currentTarget && document.activeElement === e.target) {\n if (onFocusProp) {\n onFocusProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n }, [onFocusChange, onFocusProp, onSyntheticFocus]);\n\n return {\n focusProps: {\n onFocus: (!isDisabled && (onFocusProp || onFocusChange || onBlurProp)) ? onFocus : undefined,\n onBlur: (!isDisabled && (onBlurProp || onFocusChange)) ? onBlur : undefined\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {getOwnerDocument, getOwnerWindow, isMac, isVirtualClick} from '@react-aria/utils';\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\nexport interface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality: null | Modality = null;\nlet changeHandlers = new Set();\ninterface GlobalListenerData {\n focus: () => void\n}\nexport let hasSetupGlobalListeners = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n if (typeof window === 'undefined' || hasSetupGlobalListeners.get(getOwnerWindow(element))) {\n return;\n }\n\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments as unknown as [options?: FocusOptions | undefined]);\n };\n\n documentObject.addEventListener('keydown', handleKeyboardEvent, true);\n documentObject.addEventListener('keyup', handleKeyboardEvent, true);\n documentObject.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n windowObject.addEventListener('focus', handleFocusEvent, true);\n windowObject.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n documentObject.addEventListener('pointerdown', handlePointerEvent, true);\n documentObject.addEventListener('pointermove', handlePointerEvent, true);\n documentObject.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n documentObject.addEventListener('mousedown', handlePointerEvent, true);\n documentObject.addEventListener('mousemove', handlePointerEvent, true);\n documentObject.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n // Add unmount handler\n windowObject.addEventListener('beforeunload', () => {\n tearDownWindowFocusTracking(element);\n }, {once: true});\n\n hasSetupGlobalListeners.set(windowObject, {focus});\n}\n\nconst tearDownWindowFocusTracking = (element, loadListener?: () => void) => {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n if (loadListener) {\n documentObject.removeEventListener('DOMContentLoaded', loadListener);\n }\n if (!hasSetupGlobalListeners.has(windowObject)) {\n return;\n }\n windowObject.HTMLElement.prototype.focus = hasSetupGlobalListeners.get(windowObject)!.focus;\n\n documentObject.removeEventListener('keydown', handleKeyboardEvent, true);\n documentObject.removeEventListener('keyup', handleKeyboardEvent, true);\n documentObject.removeEventListener('click', handleClickEvent, true);\n windowObject.removeEventListener('focus', handleFocusEvent, true);\n windowObject.removeEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n documentObject.removeEventListener('pointerdown', handlePointerEvent, true);\n documentObject.removeEventListener('pointermove', handlePointerEvent, true);\n documentObject.removeEventListener('pointerup', handlePointerEvent, true);\n } else {\n documentObject.removeEventListener('mousedown', handlePointerEvent, true);\n documentObject.removeEventListener('mousemove', handlePointerEvent, true);\n documentObject.removeEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners.delete(windowObject);\n};\n\n/**\n * EXPERIMENTAL\n * Adds a window (i.e. iframe) to the list of windows that are being tracked for focus visible.\n *\n * Sometimes apps render portions of their tree into an iframe. In this case, we cannot accurately track if the focus\n * is visible because we cannot see interactions inside the iframe. If you have this in your application's architecture,\n * then this function will attach event listeners inside the iframe. You should call `addWindowFocusTracking` with an\n * element from inside the window you wish to add. We'll retrieve the relevant elements based on that.\n * Note, you do not need to call this for the default window, as we call it for you.\n *\n * When you are ready to stop listening, but you do not wish to unmount the iframe, you may call the cleanup function\n * returned by `addWindowFocusTracking`. Otherwise, when you unmount the iframe, all listeners and state will be cleaned\n * up automatically for you.\n *\n * @param element @default document.body - The element provided will be used to get the window to add.\n * @returns A function to remove the event listeners and cleanup the state.\n */\nexport function addWindowFocusTracking(element?: HTMLElement | null): () => void {\n const documentObject = getOwnerDocument(element);\n let loadListener;\n if (documentObject.readyState !== 'loading') {\n setupGlobalFocusEvents(element);\n } else {\n loadListener = () => {\n setupGlobalFocusEvents(element);\n };\n documentObject.addEventListener('DOMContentLoaded', loadListener);\n }\n\n return () => tearDownWindowFocusTracking(element, loadListener);\n}\n\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') {\n addWindowFocusTracking();\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality | null {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality | null {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return useIsSSR() ? null : modality;\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n const IHTMLInputElement = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).HTMLInputElement : HTMLInputElement;\n const IHTMLTextAreaElement = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).HTMLTextAreaElement : HTMLTextAreaElement;\n const IHTMLElement = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).HTMLElement : HTMLElement;\n const IKeyboardEvent = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).KeyboardEvent : KeyboardEvent;\n\n isTextInput = isTextInput ||\n (e?.target instanceof IHTMLInputElement && !nonTextInputTypes.has(e?.target?.type)) ||\n e?.target instanceof IHTMLTextAreaElement ||\n (e?.target instanceof IHTMLElement && e?.target.isContentEditable);\n return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(!!(opts?.isTextInput), modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {FocusEvent, useCallback, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let {\n isDisabled,\n onBlurWithin,\n onFocusWithin,\n onFocusWithinChange\n } = props;\n let state = useRef({\n isFocusWithin: false\n });\n\n let onBlur = useCallback((e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n\n if (onBlurWithin) {\n onBlurWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(false);\n }\n }\n }, [onBlurWithin, onFocusWithinChange, state]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((e: FocusEvent) => {\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n if (!state.current.isFocusWithin && document.activeElement === e.target) {\n if (onFocusWithin) {\n onFocusWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(true);\n }\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n // These should not have been null, that would conflict in mergeProps\n onFocus: undefined,\n onBlur: undefined\n }\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, HoverEvents} from '@react-types/shared';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler?: (e: BaseEvent) => void): ((e: T) => void) | undefined {\n if (!handler) {\n return undefined;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {DOMAttributes, KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: DOMAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","import React, { forwardRef, memo } from 'react';\nimport { Pressable as RNPressable } from 'react-native';\nimport { composeEventHandlers } from '../../../utils';\nimport type { IPressableProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useFocusRing } from '@react-native-aria/focus';\n\nexport const useHover = () => {\n const [isHovered, setHovered] = React.useState(false);\n return {\n hoverProps: {\n onHoverIn: () => setHovered(true),\n onHoverOut: () => setHovered(false),\n },\n isHovered,\n };\n};\n\nexport const useFocus = () => {\n const [isFocused, setFocused] = React.useState(false);\n return {\n focusProps: {\n onFocus: () => setFocused(true),\n onBlur: () => setFocused(false),\n },\n isFocused,\n };\n};\n\nexport const useIsPressed = () => {\n const [isPressed, setIsPressed] = React.useState(false);\n return {\n pressableProps: {\n onPressIn: () => setIsPressed(true),\n onPressOut: () => setIsPressed(false),\n },\n isPressed,\n };\n};\n\nconst StyledPressable = makeStyledComponent(RNPressable);\n\nconst Pressable = (\n {\n children,\n isDisabled,\n disabled,\n isHovered: isHoveredProp,\n isPressed: isPressedProp,\n isFocused: isFocusedProp,\n isFocusVisible: isFocusVisibleProp,\n ...props\n }: IPressableProps,\n ref: any\n) => {\n const { hoverProps, isHovered } = useHover();\n const { pressableProps, isPressed } = useIsPressed();\n const { focusProps, isFocused } = useFocus();\n const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing();\n\n const stateProps = {\n isPressed: isPressedProp || isPressed,\n isFocused: isFocusedProp || isFocused,\n isHovered: isHoveredProp || isHovered,\n };\n\n const {\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n onFocus,\n onBlur,\n ...resolvedProps\n } = usePropsResolution('Pressable', props, {\n ...stateProps,\n isFocusVisible: isFocusVisibleProp || isFocusVisible,\n isDisabled: disabled || isDisabled,\n });\n\n // TODO: Replace Render props with Context Hook\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n // TODO: Replace Render props with Context Hook\n return (\n \n {typeof children !== 'function' ? children : children({ ...stateProps })}\n \n );\n};\n\nexport default memo(forwardRef(Pressable));\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.areaConversion=exports.timeConversion=exports.distanceConversion=exports.altitudeKeys=exports.latitudeKeys=exports.longitudeKeys=exports.MAXLON=exports.MINLON=exports.MAXLAT=exports.MINLAT=exports.earthRadius=exports.sexagesimalPattern=void 0;var sexagesimalPattern=/^([0-9]{1,3})°\\s*([0-9]{1,3}(?:\\.(?:[0-9]{1,}))?)['′]\\s*(([0-9]{1,3}(\\.([0-9]{1,}))?)[\"″]\\s*)?([NEOSW]?)$/;exports.sexagesimalPattern=sexagesimalPattern;var earthRadius=6378137;exports.earthRadius=earthRadius;var MINLAT=-90;exports.MINLAT=MINLAT;var MAXLAT=90;exports.MAXLAT=MAXLAT;var MINLON=-180;exports.MINLON=MINLON;var MAXLON=180;exports.MAXLON=MAXLON;var longitudeKeys=[\"lng\",\"lon\",\"longitude\",0];exports.longitudeKeys=longitudeKeys;var latitudeKeys=[\"lat\",\"latitude\",1];exports.latitudeKeys=latitudeKeys;var altitudeKeys=[\"alt\",\"altitude\",\"elevation\",\"elev\",2];exports.altitudeKeys=altitudeKeys;var distanceConversion={m:1,km:0.001,cm:100,mm:1000,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/0.9144};exports.distanceConversion=distanceConversion;var timeConversion={m:60,h:3600,d:86400};exports.timeConversion=timeConversion;var areaConversion={m2:1,km2:0.000001,ha:0.0001,a:0.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};exports.areaConversion=areaConversion;areaConversion.sqm=areaConversion.m2;areaConversion.sqkm=areaConversion.km2;areaConversion.sqft=areaConversion.ft2;areaConversion.sqyd=areaConversion.yd2;areaConversion.sqin=areaConversion.in2;","/**\n * Create an alphabetic initial counter representation from an UTF-16 unicode\n * and a range.\n *\n * @param index - The index to render.\n * @param baseCharcode - The original UTF-16 unicode.\n * @param modulo - The number of symbols in the set.\n * @param alpha - In alpha mode, index starts at 1 instead of 0.\n * @returns\n */\nfunction getAlphanumFromUnicodeRange(index, baseCharcode, modulo, alpha) {\n const reindex = index - Number(alpha);\n if (reindex < 0) {\n return undefined;\n }\n if (reindex < modulo) {\n return String.fromCharCode(baseCharcode + reindex);\n }\n const rest = reindex % modulo;\n const next = (reindex - rest - modulo) / modulo + 1;\n return (getAlphanumFromUnicodeRange(next, baseCharcode, modulo, alpha) +\n String.fromCharCode(baseCharcode + rest));\n}\nexport default getAlphanumFromUnicodeRange;\n//# sourceMappingURL=getAlphanumFromUnicodeRange.js.map","export default function codepointLength(source) {\n // get codepoints length instead of UTF16 code units with the string Iterator.\n return (source && [...source].length) || 0;\n}\n//# sourceMappingURL=codepointLength.js.map","export const DEFAULT_ENVIRONMENT = 'production';\n","import codepointLength from './utils/codepointLength';\nimport { DEFAULT_SUFFIX } from './constants';\nconst DEFAULT_SPECS = {\n suffix: DEFAULT_SUFFIX,\n prefix: null,\n reversedMarker: false,\n reversedCounter: false,\n fallback: {\n renderCounter: (index) => index.toString(),\n maxCounterLenInRange(min, max) {\n return Math.max(this.renderCounter(min).length, this.renderCounter(max).length);\n }\n },\n negative: null,\n range: {\n min: -Infinity,\n max: Infinity\n },\n padding: null\n};\nconst styleEngineProto = {\n // Cost-inefficient since it requires iterating over the whole range.\n maxLengthInRange(min, max) {\n let len = 0;\n for (let i = Math.max(0, min); i <= max; i++) {\n const val = this.formatter(i);\n len = Math.max(codepointLength(val), len);\n }\n return len;\n },\n withSpecs(spToMerge) {\n const next = Object.create(this);\n next.specs = Object.assign({}, this.specs, spToMerge);\n return next;\n },\n withMaxLengthInRange(cp) {\n const next = Object.create(this);\n next.maxLengthInRange = cp;\n return next;\n }\n};\nexport default function makeCSEngine(formatter, specs = DEFAULT_SPECS) {\n const eng = Object.create(styleEngineProto);\n eng.specs = specs;\n eng.formatter = formatter;\n return eng;\n}\n//# sourceMappingURL=makeCSEngine.js.map","export default function codeunitLength(source) {\n return (source && source.length) || 0;\n}\n//# sourceMappingURL=codeunitLength.js.map","export default function reverseString(source) {\n return Array.from(source).reverse().join('');\n}\n//# sourceMappingURL=reverseString.js.map","import codepointLength from './utils/codepointLength';\nimport codeunitLength from './utils/codeunitLength';\nimport reverseString from './utils/reverseString';\nconst defaultRtlOptions = {\n reverseCounter: false,\n reversePrefix: true,\n reverseSuffix: true\n};\nconst stylePrototype = {\n getAbsoluteMaxLenInRange(normMin, normMax, negative) {\n var _a;\n const specs = this.engine.specs;\n const supportedRange = specs.range;\n const supportedMin = Math.max(normMin, supportedRange.min);\n const supportedMax = Math.min(normMax, supportedRange.max);\n const lenMiddle = Math.max(this.engine.maxLengthInRange(negative ? Math.abs(supportedMax) : supportedMin, negative ? Math.abs(supportedMin) : supportedMax) +\n (negative && specs.negative\n ? codeunitLength(specs.negative.prefix) +\n codeunitLength(specs.negative.suffix)\n : 0), ((_a = specs === null || specs === void 0 ? void 0 : specs.padding) === null || _a === void 0 ? void 0 : _a.length) || 0);\n const lenLeft = supportedMin > normMin\n ? specs.fallback.maxCounterLenInRange(normMin, supportedMin - 1)\n : 0;\n const lenRight = supportedMax < normMax\n ? specs.fallback.maxCounterLenInRange(supportedMax + 1, normMax)\n : 0;\n return Math.max(lenLeft, lenMiddle, lenRight);\n },\n maxCounterLenInRange(min, max) {\n if (max < min) {\n return 0;\n }\n if (min >= 0) {\n return this.getAbsoluteMaxLenInRange(min, max, false);\n }\n if (max <= 0) {\n return this.getAbsoluteMaxLenInRange(min, max, true);\n }\n return Math.max(this.getAbsoluteMaxLenInRange(min, -1, true), this.getAbsoluteMaxLenInRange(0, max, false));\n },\n maxMarkerLenInRange(min, max) {\n if (max < min) {\n return 0;\n }\n return (this.maxCounterLenInRange(min, max) +\n codeunitLength(this.engine.specs.suffix) +\n codeunitLength(this.engine.specs.prefix));\n },\n renderCounter(index) {\n const formatter = this.engine.formatter;\n const sp = this.engine.specs;\n const negative = sp.negative;\n let res;\n if (index < sp.range.min || index > sp.range.max) {\n return sp.fallback.renderCounter(index);\n }\n const decoratorL = negative && index < 0\n ? codeunitLength(negative.prefix) + codeunitLength(negative.suffix)\n : 0;\n res = formatter(Math.sign(index) * index);\n if (typeof res === 'undefined') {\n return sp.fallback.renderCounter(index);\n }\n if (sp.padding) {\n const lenWithDecorator = codepointLength(res) + decoratorL;\n if (lenWithDecorator < sp.padding.length) {\n const padChar = sp.padding.char.repeat(sp.padding.length - lenWithDecorator);\n res = sp.padding.right ? res + padChar : padChar + res;\n }\n }\n if (index < 0 && negative) {\n res = negative.prefix + res + negative.suffix;\n }\n return sp.reversedCounter ? reverseString(res) : res;\n },\n renderMarker(index) {\n const sp = this.engine.specs;\n const elements = [\n sp.prefix || '',\n this.renderCounter(index),\n sp.suffix || ''\n ];\n return sp.reversedMarker ? elements.reverse().join('') : elements.join('');\n },\n renderPrefix() {\n return this.engine.specs.prefix || '';\n },\n renderSuffix() {\n return this.engine.specs.suffix || '';\n },\n withFallback(fallback) {\n return makeCSRenderer(this.engine.withSpecs({ fallback }));\n },\n withRange(min, max, fallback) {\n const result = makeCSRenderer(this.engine.withSpecs({\n range: {\n min,\n max\n }\n }));\n return fallback ? result.withFallback(fallback) : result;\n },\n withNegative(prefix, suffix = '') {\n return makeCSRenderer(this.engine.withSpecs({\n negative: {\n prefix,\n suffix\n }\n }));\n },\n withPadLeft(length, pad) {\n return makeCSRenderer(this.engine.withSpecs({\n padding: {\n right: false,\n char: pad,\n length\n }\n }));\n },\n withPadRight(length, pad) {\n return makeCSRenderer(this.engine.withSpecs({\n padding: {\n right: true,\n char: pad,\n length\n }\n }));\n },\n withSuffix(suffix) {\n return makeCSRenderer(this.engine.withSpecs({\n suffix\n }));\n },\n withPrefix(prefix) {\n return makeCSRenderer(this.engine.withSpecs({\n prefix\n }));\n },\n withRtl(options) {\n const synthOptions = Object.assign({}, defaultRtlOptions, options);\n const sp = this.engine.specs;\n return makeCSRenderer(this.engine.withSpecs({\n reversedMarker: true,\n reversedCounter: synthOptions.reverseCounter,\n suffix: synthOptions.reverseSuffix && sp.suffix\n ? reverseString(sp.suffix)\n : sp.suffix,\n prefix: synthOptions.reversePrefix && sp.prefix\n ? reverseString(sp.prefix)\n : sp.prefix\n }));\n },\n withMaxLengthComputer(computer) {\n return makeCSRenderer(this.engine.withMaxLengthInRange((min, max) => computer(min, max, this.engine.maxLengthInRange.bind(this.engine))));\n }\n};\nexport default function makeCSRenderer(engine) {\n const target = Object.create(stylePrototype);\n target.engine = engine;\n return Object.freeze(target);\n}\n//# sourceMappingURL=makeCSRenderer.js.map","import getAlphanumFromUnicodeRange from './getAlphanumFromUnicodeRange';\nimport makeAlphanumMaxlenComputer from './makeAlphanumMaxlenComputer';\nimport makeCSEngine from './makeCSEngine';\nimport makeCSRenderer from './makeCSRenderer';\nimport codepointLength from './utils/codepointLength';\nconst mod = (value, divisor) => ((value % divisor) + divisor) % divisor;\nfunction makeCSRendererFromFormatter(formatter) {\n return makeCSRenderer(makeCSEngine(formatter));\n}\nfunction getMaxLenInSymbols(lens, from = 0, to) {\n to = typeof to === 'number' ? to : lens.length;\n return lens.slice(from, to + 1).reduce((p, c) => Math.max(p, c), 0);\n}\nfunction numeric(renderer, length) {\n return renderer\n .withMaxLengthComputer(makeAlphanumMaxlenComputer(length, false))\n .withNegative('-');\n}\nfunction alphabetic(renderer, length) {\n return renderer\n .withMaxLengthComputer(makeAlphanumMaxlenComputer(length, true))\n .withRange(1, Infinity);\n}\n/**\n * A static object to build counter style renderers.\n * See {@link CounterStyleStatic}.\n *\n * @public\n */\nconst CounterStyle = Object.freeze({\n raw: (formatter) => {\n return makeCSRendererFromFormatter(formatter);\n },\n cyclic: (...symbols) => {\n const symbolLenghts = symbols.map(codepointLength);\n const maxLen = getMaxLenInSymbols(symbolLenghts);\n const renderer = symbols.length === 1\n ? makeCSRendererFromFormatter(() => symbols[0])\n : makeCSRendererFromFormatter((index) => symbols[mod(index - 1, symbols.length)]);\n return renderer.withMaxLengthComputer((min, max) => {\n return maxLen === 1 || max - min + 1 >= symbols.length\n ? maxLen\n : getMaxLenInSymbols(symbolLenghts, min - 1, max - 1);\n });\n },\n fixed: (...symbols) => {\n const symbolLenghts = symbols.map(codepointLength);\n const maxLen = getMaxLenInSymbols(symbolLenghts);\n return makeCSRendererFromFormatter((index) => symbols[index - 1])\n .withRange(1, symbols.length)\n .withMaxLengthComputer((min, max) => {\n return maxLen === 1\n ? maxLen\n : getMaxLenInSymbols(symbolLenghts, min - 1, max - 1);\n });\n },\n symbolic: (...symbols) => makeCSRendererFromFormatter((index) => symbols[mod(index - 1, symbols.length)].repeat(Math.ceil(index / symbols.length)))\n .withRange(1, Infinity)\n .withMaxLengthComputer((min, max, defaultCmp) => {\n // Just iterate over the last n elements until max, with n the number\n // of symbols.\n return defaultCmp(max < symbols.length ? min : max - symbols.length, max);\n }),\n alphabetic: (...symbols) => {\n return alphabetic(makeCSRendererFromFormatter((index) => {\n let result = '';\n while (index > 0) {\n index--;\n result = symbols[mod(index, symbols.length)] + result;\n index = Math.floor(index / symbols.length);\n }\n return result;\n }), symbols.length);\n },\n numeric: (...symbols) => {\n return numeric(makeCSRendererFromFormatter((index) => {\n if (index === 0) {\n return symbols[0];\n }\n else {\n let result = '';\n while (index > 0) {\n result = symbols[mod(index, symbols.length)] + result;\n index = Math.floor(index / symbols.length);\n }\n return result;\n }\n }), symbols.length);\n },\n numericFromUnicodeRange: (originUnicode, base) => {\n return numeric(makeCSRendererFromFormatter((index) => getAlphanumFromUnicodeRange(index, originUnicode, base, false)), base);\n },\n alphabeticFromUnicodeRange: (originUnicode, alphabetLen) => {\n return alphabetic(makeCSRendererFromFormatter((index) => {\n return getAlphanumFromUnicodeRange(index, originUnicode, alphabetLen, true);\n }), alphabetLen);\n },\n additive: (symbols) => {\n const values = Object.keys(symbols)\n .map((value) => parseInt(value, 10))\n .sort((a, b) => b - a);\n return makeCSRendererFromFormatter((index) => {\n if (index === 0) {\n return symbols[0];\n }\n let result = '';\n for (const value of values) {\n if (index >= value && value > 0) {\n const repeat = Math.floor(index / value);\n result += symbols[value].repeat(repeat);\n index -= repeat * value;\n }\n }\n return index === 0 ? result : undefined;\n }).withRange(values.length ? values[values.length - 1] : 0, 0 in symbols && values.length === 1 ? 0 : values.length ? Infinity : -1);\n }\n});\nexport default CounterStyle;\n//# sourceMappingURL=CounterStyle.js.map","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import { useNativeBaseConfig } from './../core/NativeBaseContext';\n\nexport function useTheme() {\n const theme = useNativeBaseConfig('useTheme').theme;\n if (!theme) {\n throw Error(\n 'useTheme: `theme` is undefined. Seems you forgot to wrap your app in ``'\n );\n }\n\n return theme;\n}\n","import React, { RefObject } from 'react';\n\nexport const ariaToAccessibilityMap: any = {\n 'aria-activedescendant': 'accessibilityActiveDescendant',\n 'aria-atomic': 'accessibilityAtomic',\n 'aria-autocomplete': 'accessibilityAutoComplete',\n 'aria-busy': 'accessibilityBusy',\n 'aria-checked': 'accessibilityChecked',\n 'aria-colcount': 'accessibilityColumnCount',\n 'aria-colindex': 'accessibilityColumnIndex',\n 'aria-colspan': 'accessibilityColumnSpan',\n 'aria-controls': 'accessibilityControls',\n 'aria-describedby': 'accessibilityDescribedBy',\n 'aria-details': 'accessibilityDetails',\n 'aria-disabled': 'accessibilityDisabled',\n 'aria-errormessage': 'accessibilityErrorMessage',\n 'aria-expanded': 'accessibilityExpanded',\n 'aria-flowto': 'accessibilityFlowTo',\n 'aria-haspopup': 'accessibilityHasPopup',\n 'aria-hidden': 'accessibilityHidden',\n 'aria-invalid': 'accessibilityInvalid',\n 'aria-keyshortcuts': 'accessibilityKeyShortcuts',\n 'aria-label': 'accessibilityLabel',\n 'aria-labelledby': 'accessibilityLabelledBy',\n 'aria-live': 'accessibilityLiveRegion',\n 'aria-modal': 'accessibilityModal',\n 'aria-multiline': 'accessibilityMultiline',\n 'aria-multiselectable': 'accessibilityMultiSelectable',\n 'aria-orientation': 'accessibilityOrientation',\n 'aria-owns': 'accessibilityOwns',\n 'aria-placeholder': 'accessibilityPlaceholder',\n 'aria-posinset': 'accessibilityPosInSet',\n 'aria-pressed': 'accessibilityPressed',\n 'aria-readonly': 'accessibilityReadOnly',\n 'aria-required': 'accessibilityRequired',\n 'aria-roledescription': 'accessibilityRoleDescription',\n 'aria-rowcount': 'accessibilityRowCount',\n 'aria-rowindex': 'accessibilityRowIndex',\n 'aria-rowspan': 'accessibilityRowSpan',\n 'aria-selected': 'accessibilitySelected',\n 'aria-setsize': 'accessibilitySetSize',\n 'aria-sort': 'accessibilitySort',\n 'aria-valuemax': 'accessibilityValueMax',\n 'aria-valuemin': 'accessibilityValueMin',\n 'aria-valuenow': 'accessibilityValueNow',\n 'aria-valuetext': 'accessibilityValueText',\n};\n\n// Refer - https://necolas.github.io/react-native-web/docs/accessibility/\nexport const mapDomPropsToRN = (props: any) => {\n let newProps: any = { ...props };\n\n // use the below hook for tabIndex\n // useMapDomPropsToRN\n // if (props.tabIndex === '-1' || props.tabIndex === -1) {\n // newProps.focusable = false;\n // }\n\n if (props.id) {\n newProps.nativeID = props.id;\n }\n\n for (let key in props) {\n if (key.indexOf('data-') > -1) {\n if (!newProps.dataSet) {\n newProps.dataSet = {};\n }\n\n newProps.dataSet[key.split('data-')[1]] = props[key];\n }\n }\n\n return newProps;\n};\n\n// RN web currently doesn't allow setting tabIndex via props, so need to be set using setNativeProps or ref\n// https://github.com/necolas/react-native-web/issues/1916\n// https://github.com/necolas/react-native-web/issues/1099\nexport const useMapDomPropsToRN = (props: any, ref: RefObject) => {\n React.useEffect(() => {\n if (ref.current) {\n ref.current.tabIndex = props.tabIndex;\n }\n }, [props.tabIndex]);\n\n return mapDomPropsToRN(props);\n};\n","//@ts-ignore\nimport { unstable_createElement } from 'react-native-web';\nimport { forwardRef } from 'react';\n\nexport const Svg = forwardRef((props: any, ref: any) =>\n unstable_createElement('svg', { ...props, ref })\n);\nexport const G = forwardRef((props: any, ref: any) =>\n unstable_createElement('g', { ...props, ref })\n);\nexport const Path = forwardRef((props: any, ref: any) =>\n unstable_createElement('path', { ...props, ref })\n);\nexport const Polygon = forwardRef((props: any, ref: any) =>\n unstable_createElement('polygon', { ...props, ref })\n);\nexport const Line = forwardRef((props: any, ref: any) =>\n unstable_createElement('line', { ...props, ref })\n);\nexport const Circle = forwardRef((props: any, ref: any) =>\n unstable_createElement('circle', { ...props, ref })\n);\nexport const Rect = forwardRef((props: any, ref: any) =>\n unstable_createElement('rect', { ...props, ref })\n);\n","import { Animated } from 'react-native';\nconst {\n add,\n multiply\n} = Animated;\n\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 */\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, Platform } from 'react-native';\nimport conditional from '../utils/conditional';\nconst {\n add,\n multiply\n} = Animated;\n\n/**\n * Standard iOS-style slide in from the right.\n */\nexport function forHorizontalIOS(_ref) {\n let {\n current,\n next,\n inverted,\n layouts: {\n screen\n }\n } = _ref;\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: [\n // Translation for the animation of the current card\n {\n translateX: translateFocused\n },\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/**\n * Standard iOS-style slide in from the bottom (used for modals).\n */\nexport function forVerticalIOS(_ref2) {\n let {\n current,\n inverted,\n layouts: {\n screen\n }\n } = _ref2;\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: [{\n translateY\n }]\n }\n };\n}\n\n/**\n * Standard iOS-style modal animation in iOS 13.\n */\nexport function forModalPresentationIOS(_ref3) {\n let {\n index,\n current,\n next,\n inverted,\n layouts: {\n screen\n },\n insets\n } = _ref3;\n const hasNotchIos = Platform.OS === 'ios' && !Platform.isPad && !Platform.isTV && insets.top > 20;\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 isFirst = index === 0;\n const translateY = multiply(progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [screen.height, isFirst ? 0 : topOffset, (isFirst ? 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 : isFirst ? progress.interpolate({\n inputRange: [0, 1, 1.0001, 2],\n outputRange: [0, 0, hasNotchIos ? 38 : 0, 10]\n }) : 10;\n return {\n cardStyle: {\n overflow: 'hidden',\n borderTopLeftRadius: borderRadius,\n borderTopRightRadius: borderRadius,\n // We don't need these for the animation\n // But different border radius for corners improves animation perf\n borderBottomLeftRadius: hasNotchIos ? borderRadius : 0,\n borderBottomRightRadius: hasNotchIos ? borderRadius : 0,\n marginTop: isFirst ? 0 : statusBarHeight,\n marginBottom: isFirst ? 0 : topOffset,\n transform: [{\n translateY\n }, {\n scale\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n }\n };\n}\n\n/**\n * Standard Android-style fade in from the bottom for Android Oreo.\n */\nexport function forFadeFromBottomAndroid(_ref4) {\n let {\n current,\n inverted,\n layouts: {\n screen\n },\n closing\n } = _ref4;\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 extrapolate: 'clamp'\n }));\n return {\n cardStyle: {\n opacity,\n transform: [{\n translateY\n }]\n }\n };\n}\n\n/**\n * Standard Android-style reveal from the bottom for Android Pie.\n */\nexport function forRevealFromBottomAndroid(_ref5) {\n let {\n current,\n next,\n inverted,\n layouts: {\n screen\n }\n } = _ref5;\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/**\n * Standard Android-style zoom for Android 10.\n */\nexport function forScaleFromCenterAndroid(_ref6) {\n let {\n current,\n next,\n closing\n } = _ref6;\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.925, 1],\n extrapolate: 'clamp'\n }), progress.interpolate({\n inputRange: [0, 1, 2],\n outputRange: [0.85, 1, 1.075]\n }));\n return {\n cardStyle: {\n opacity,\n transform: [{\n scale\n }]\n }\n };\n}\n\n/**\n * Standard bottom sheet slide in from the bottom for Android.\n */\nexport function forBottomSheetAndroid(_ref7) {\n let {\n current,\n inverted,\n layouts: {\n screen\n },\n closing\n } = _ref7;\n const translateY = multiply(current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [screen.height * 0.8, 0],\n extrapolate: 'clamp'\n }), inverted);\n const opacity = conditional(closing, current.progress, current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n }));\n const overlayOpacity = current.progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.3],\n extrapolate: 'clamp'\n });\n return {\n cardStyle: {\n opacity,\n transform: [{\n translateY\n }]\n },\n overlayStyle: {\n opacity: overlayOpacity\n }\n };\n}\n\n/**\n * Simple fade animation for dialogs\n */\nexport function forFadeFromCenter(_ref8) {\n let {\n current: {\n progress\n }\n } = _ref8;\n return {\n cardStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 0.5, 0.9, 1],\n outputRange: [0, 0.25, 0.7, 1]\n })\n },\n overlayStyle: {\n opacity: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.5],\n extrapolate: 'clamp'\n })\n }\n };\n}\nexport function forNoAnimation() {\n return {};\n}\n//# sourceMappingURL=CardStyleInterpolators.js.map","import { Animated, I18nManager } from 'react-native';\nconst {\n add\n} = Animated;\n\n/**\n * Standard UIKit style animation for the header where the title fades into the back button label.\n */\nexport function forUIKit(_ref) {\n let {\n current,\n next,\n layouts\n } = _ref;\n const defaultOffset = 100;\n const leftSpacing = 27;\n\n // 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 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;\n\n // 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 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.getConstants().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.getConstants().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.getConstants().isRTL ? [-layouts.screen.width, 0, layouts.screen.width] : [layouts.screen.width, 0, -layouts.screen.width]\n })\n }]\n }\n };\n}\n\n/**\n * Simple fade animation for the header elements.\n */\nexport function forFade(_ref2) {\n let {\n current,\n next\n } = _ref2;\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/**\n * Simple translate animation to translate the header to left.\n */\nexport function forSlideLeft(_ref3) {\n let {\n current,\n next,\n layouts: {\n screen\n }\n } = _ref3;\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.getConstants().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/**\n * Simple translate animation to translate the header to right.\n */\nexport function forSlideRight(_ref4) {\n let {\n current,\n next,\n layouts: {\n screen\n }\n } = _ref4;\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.getConstants().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/**\n * Simple translate animation to translate the header to slide up.\n */\nexport function forSlideUp(_ref5) {\n let {\n current,\n next,\n layouts: {\n header\n }\n } = _ref5;\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","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nexport var STYLE_ELEMENT_ID = 'react-native-stylesheet';\nexport var STYLE_GROUPS = {\n reset: 0,\n modality: 0.1,\n classicReset: 0.5,\n classic: 1,\n atomic: 2.2,\n custom: {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n }\n};\nexport var STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\nexport var MONOSPACE_FONT_STACK = 'monospace,monospace';\nexport var SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { findDOMNode } from 'react-dom';\n\nvar findNodeHandle = function findNodeHandle(component) {\n var node;\n\n try {\n node = findDOMNode(component);\n } catch (e) {}\n\n return node;\n};\n\nexport default findNodeHandle;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nvar dimensions = {\n window: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n },\n screen: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n }\n};\nvar listeners = {};\n\nvar Dimensions = /*#__PURE__*/function () {\n function Dimensions() {}\n\n Dimensions.get = function get(dimension) {\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n };\n\n Dimensions.set = function set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n if (initialDimensions.screen != null) {\n dimensions.screen = initialDimensions.screen;\n }\n\n if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n };\n\n Dimensions._update = function _update() {\n if (!canUseDOM) {\n return;\n }\n\n var win = window;\n var docEl = win.document.documentElement;\n dimensions.window = {\n fontScale: 1,\n height: docEl.clientHeight,\n scale: win.devicePixelRatio || 1,\n width: docEl.clientWidth\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(function (handler) {\n return handler(dimensions);\n });\n }\n };\n\n Dimensions.addEventListener = function addEventListener(type, handler) {\n var _this = this;\n\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: function remove() {\n _this.removeEventListener(type, handler);\n }\n };\n };\n\n Dimensions.removeEventListener = function removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(function (_handler) {\n return _handler !== handler;\n });\n }\n };\n\n return Dimensions;\n}();\n\nexport { Dimensions as default };\n\nif (canUseDOM) {\n Dimensions._update();\n\n window.addEventListener('resize', Dimensions._update, false);\n}","import { useHover as useHoverWeb, HoverProps } from '@react-aria/interactions';\nimport { useEffect } from 'react';\nimport { attachEventHandlersOnRef } from '@react-native-aria/utils';\n\nexport const useHover = (props = {} as HoverProps, ref?: any) => {\n let params = useHoverWeb(props);\n useEffect(() => {\n ref && ref.current && attachEventHandlersOnRef(params.hoverProps, ref);\n }, []);\n\n const finalResult = {\n ...params,\n hoverProps: {\n ...params.hoverProps,\n onHoverIn: params.hoverProps.onPointerEnter,\n onHoverOut: params.hoverProps.onPointerLeave,\n },\n };\n\n return finalResult;\n};\n","import { mode } from '../tools/colors';\n\n// Accordion\nconst accordionBaseStyle = (props: Record) => {\n return {\n borderWidth: 1,\n borderColor: mode('gray.300', 'gray.600')(props),\n borderRadius: 'lg',\n };\n};\nexport const Accordion = {\n baseStyle: accordionBaseStyle,\n};\n\n// AccordionItem\nexport const AccordionItem = {};\n\n// AccordionIcon\nexport const AccordionIcon = {};\n\n// AccordionSummary\nconst accordionSummaryBaseStyle = (props: Record) => {\n return {\n borderTopWidth: 1,\n borderTopColor: mode('gray.300', 'gray.600')(props),\n p: 3,\n _hover: {\n bg: mode('primary.200', 'primary.300')(props),\n },\n _expanded: {\n bg: 'primary.600',\n borderBottomColor: mode('gray.300', 'gray.600')(props),\n _text: { color: 'white' },\n },\n _disabled: {\n bg: mode('gray.200', 'gray.700')(props),\n },\n };\n};\nexport const AccordionSummary = {\n baseStyle: accordionSummaryBaseStyle,\n};\n\n// AccordionDetails\nconst accordionPanelBaseStyle = {\n p: 3,\n};\n\nexport const AccordionDetails = {\n baseStyle: accordionPanelBaseStyle,\n};\n","import { getColor, getColorScheme, transparentize } from '../tools';\nimport type { InterfaceAlertProps } from '../../components/composites/Alert/types';\nfunction getBg(\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) {\n const { theme, colorScheme: c, status, variant } = props;\n\n const colorScheme = getColorScheme(props, !status ? c : status);\n\n const lightBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.700`, colorScheme)\n : getColor(theme, `${colorScheme}.200`, colorScheme);\n\n const darkBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.600`, colorScheme)\n : getColor(theme, `${colorScheme}.200`, colorScheme);\n\n return { lightBg, darkBg };\n}\n\nconst variantSubtle = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n },\n };\n};\n\nconst variantOutline = (props: InterfaceAlertProps & { colorScheme: any }) => {\n let { colorScheme, status } = props;\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderWidth: 1,\n _icon: { color: `${colorScheme}.700` },\n borderColor: `${colorScheme}.700`,\n _dark: {\n _icon: { color: `${colorScheme}.600` },\n borderColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variantOutlineLight = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status, theme } = props;\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderWidth: 1,\n _icon: { color: `${colorScheme}.700` },\n borderColor: transparentize(`${colorScheme}.700`, 0.4)(theme),\n _dark: {\n _icon: { color: `${colorScheme}.600` },\n borderColor: transparentize(`${colorScheme}.600`, 0.4)(theme),\n },\n };\n};\n\nconst variantSolid = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n const { lightBg, darkBg } = getBg(props);\n return {\n bg: lightBg,\n _dark: {\n bg: darkBg,\n },\n _icon: { color: `muted.50` },\n };\n};\n\nconst variantLeftAccent = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderLeftWidth: 4,\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n borderLeftColor: `${colorScheme}.700`,\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n borderLeftColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variantTopAccent = (\n props: InterfaceAlertProps & { theme: any } & { colorScheme: any }\n) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderTopWidth: 4,\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n borderTopColor: `${colorScheme}.700`,\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n borderTopColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variants = {\n 'subtle': variantSubtle as any,\n 'solid': variantSolid as any,\n 'left-accent': variantLeftAccent as any,\n 'top-accent': variantTopAccent as any,\n 'outline': variantOutline as any,\n 'outline-light': variantOutlineLight as any,\n};\n\nexport const Alert = {\n baseStyle: {\n alignItems: 'center',\n justifyContent: 'flex-start',\n p: 3,\n space: 3,\n borderRadius: 'sm',\n },\n variants,\n defaultProps: {\n colorScheme: 'info',\n variant: 'subtle',\n },\n};\n\n// AlertIcon\n\nexport const AlertIcon = {\n baseStyle: {\n size: 4,\n },\n};\n","const baseStyle = {};\nconst defaultProps = {\n ratio: 4 / 3,\n};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { randomColor, getRandomString } from './../tools';\nimport type { InterfaceAvatarProps } from '../../components/composites/Avatar/types';\nconst baseStyle = (props: InterfaceAvatarProps & { name: string }) => {\n const { name } = props;\n const bg = name\n ? randomColor({ string: getRandomString(5) + name })\n : 'gray.400';\n return {\n bg,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 'full',\n _text: {\n fontWeight: 600,\n color: 'text.50',\n },\n _image: {\n borderRadius: 'full',\n alt: '--',\n _alt: {\n fontWeight: 600,\n },\n style: {\n height: '100%',\n width: '100%',\n },\n },\n borderColor: 'gray.800',\n _dark: {\n borderColor: 'white',\n },\n };\n};\n\nfunction getSize(size: any, fontSize: string, badgeSize: any) {\n return {\n width: size,\n height: size,\n _text: {\n fontSize: fontSize,\n },\n _badgeSize: badgeSize,\n };\n}\n\nconst sizes = {\n 'xs': getSize('6', '2xs', '2'),\n 'sm': getSize('8', 'xs', '3'),\n 'md': getSize('12', 'md', '4'),\n 'lg': getSize('16', 'xl', '5'),\n 'xl': getSize('24', '3xl', '6'),\n '2xl': getSize('32', '5xl', '7'),\n};\n\nconst defaultProps = {\n size: 'md',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","function baseStyle() {\n return {\n borderRadius: 'full',\n borderWidth: 2,\n bg: 'success.600',\n size: 3,\n position: 'absolute',\n right: 0,\n bottom: 0,\n _light: {\n borderColor: 'muted.50',\n },\n _dark: {\n borderColor: 'muted.900',\n },\n };\n}\n\nexport default { baseStyle };\n","import type { IAvatarGroupProps } from '../../components/composites/Avatar/types';\nfunction baseStyle({ isVertical }: IAvatarGroupProps) {\n return {\n flexDirection: isVertical ? 'column-reverse' : 'row-reverse',\n space: -4,\n _avatar: {\n borderWidth: 2,\n },\n _hiddenAvatarPlaceholder: {\n _text: {\n color: 'text.50',\n },\n },\n _light: {\n _avatar: {\n borderColor: 'muted.50',\n },\n _hiddenAvatarPlaceholder: {\n bg: 'gray.600',\n },\n },\n _dark: {\n _avatar: {\n borderColor: 'muted.900',\n },\n _hiddenAvatarPlaceholder: {\n bg: 'gray.600',\n },\n },\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n isVertical: false,\n },\n};\n","import { getColorScheme } from '../tools';\nimport type { InterfaceBadgeProps } from '../../components/composites/Badge/types';\nconst baseStyle = {\n flexDirection: 'row',\n justifyContent: 'center',\n space: 1,\n px: '2',\n py: '0.5',\n alignItems: 'center',\n _text: { fontSize: 'xs', fontWeight: 'medium' },\n};\n\nfunction variantSolid(props: InterfaceBadgeProps & { colorScheme: any }) {\n const colorScheme = getColorScheme(props);\n return {\n _text: {\n color: 'text.50',\n },\n _icon: {\n color: 'text.50',\n },\n bg: `${colorScheme}.600`,\n borderWidth: '1',\n borderColor: 'transparent',\n borderRadius: '2',\n };\n}\n\nfunction variantSubtle(props: InterfaceBadgeProps & { colorScheme: any }) {\n const colorScheme = getColorScheme(props);\n return {\n _text: { color: `${colorScheme}.900` },\n _icon: { color: `${colorScheme}.900` },\n bg: `${colorScheme}.100`,\n _dark: { bg: `${colorScheme}.300` },\n borderWidth: '1',\n borderRadius: '2',\n borderColor: 'transparent',\n };\n}\n\nfunction variantOutline(props: InterfaceBadgeProps & { colorScheme: any }) {\n const colorScheme = getColorScheme(props);\n return {\n _text: { color: `${colorScheme}.600` },\n _icon: { color: `${colorScheme}.600` },\n borderColor: `${colorScheme}.600`,\n _dark: {\n _text: {\n color: `${colorScheme}.300`,\n },\n _icon: {\n color: `${colorScheme}.300`,\n },\n borderColor: `${colorScheme}.300`,\n },\n borderRadius: '2',\n borderWidth: '1',\n };\n}\n\nconst variants = {\n solid: variantSolid as any,\n subtle: variantSubtle as any,\n outline: variantOutline as any,\n};\n\nconst defaultProps = {\n variant: 'subtle',\n colorScheme: 'muted',\n size: 'md',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","const baseStyle = {\n width: 'auto',\n height: 'auto',\n display: 'flex',\n flexDirection: 'row',\n spacing: '2',\n};\nconst defaultProps = {\n direction: 'row',\n wrap: 'wrap',\n};\n\nexport const Breadcrumb = {\n baseStyle,\n defaultProps,\n};\n\nexport const BreadcrumbText = {\n baseStyle: { ...baseStyle, _current: { fontWeight: 'bold' } },\n defaultProps,\n};\n\nexport const BreadcrumbIcon = {\n baseStyle: { ...baseStyle },\n defaultProps,\n};\n","import type { InterfaceButtonProps } from '../../components/primitives/Button/types';\n\nconst baseStyle = (props: InterfaceButtonProps & { theme: any }) => {\n const { primary } = props.theme.colors;\n\n return {\n borderRadius: 'sm', // '4px'\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n _web: {\n _disabled: {\n cursor: 'not-allowed',\n },\n _loading: {\n cursor: 'not-allowed',\n },\n cursor: 'pointer',\n userSelect: 'none',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `${primary[400]} 0px 0px 0px 2px` },\n },\n },\n _dark: {\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `${primary[500]} 0px 0px 0px 2px` },\n },\n },\n },\n _stack: {\n space: '1.5',\n alignItems: 'center',\n },\n _loading: {\n opacity: '40',\n },\n _disabled: {\n opacity: '40',\n },\n _spinner: {\n size: 'sm',\n focusable: false,\n },\n };\n};\n\nfunction variantGhost({ colorScheme }: InterfaceButtonProps) {\n return {\n _text: {\n color: `${colorScheme}.600`,\n },\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n\n _dark: {\n _text: {\n color: `${colorScheme}.500`,\n },\n _icon: {\n color: `${colorScheme}.500`,\n },\n _spinner: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantOutline({ colorScheme }: InterfaceButtonProps) {\n return {\n borderWidth: '1px',\n borderColor: 'muted.300',\n _text: {\n color: `${colorScheme}.600`,\n },\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n\n _dark: {\n borderColor: 'muted.700',\n _text: {\n color: `${colorScheme}.500`,\n },\n _icon: {\n color: `${colorScheme}.500`,\n },\n _spinner: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantSolid({ colorScheme }: InterfaceButtonProps) {\n return {\n _text: {\n color: 'text.50',\n },\n _icon: {\n color: 'text.50',\n },\n _spinner: {\n color: 'text.50',\n },\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n\n _dark: {\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n },\n };\n}\n\nfunction variantSubtle({ colorScheme }: InterfaceButtonProps) {\n return {\n bg: `${colorScheme}.100`,\n _text: {\n color: `${colorScheme}.900`,\n },\n _icon: {\n color: `${colorScheme}.900`,\n },\n _spinner: {\n color: `${colorScheme}.900`,\n },\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n },\n\n _dark: {\n bg: `${colorScheme}.300`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.100`,\n },\n },\n };\n}\n\nfunction variantLink({ colorScheme }: InterfaceButtonProps) {\n return {\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n\n _hover: {\n _text: {\n textDecorationLine: 'underline',\n },\n },\n _pressed: {\n _text: {\n color: `${colorScheme}.800`,\n textDecorationLine: 'underline',\n },\n },\n\n _text: {\n color: `${colorScheme}.600`,\n },\n _dark: {\n _text: {\n color: `${colorScheme}.500`,\n },\n _pressed: {\n _text: {\n color: `${colorScheme}.300`,\n },\n },\n },\n };\n}\n\nconst variants = {\n ghost: variantGhost as any,\n outline: variantOutline as any,\n solid: variantSolid as any,\n subtle: variantSubtle as any,\n link: variantLink as any,\n unstyled: {} as any,\n};\n\nconst sizes = {\n lg: {\n px: '3',\n py: '3',\n _text: {\n fontSize: 'md',\n },\n _icon: {\n size: 'md',\n },\n },\n md: {\n px: '3',\n py: '2.5',\n _text: {\n fontSize: 'sm',\n },\n _icon: {\n size: 'sm',\n },\n },\n sm: {\n px: '3',\n py: '2',\n _text: {\n fontSize: 'xs',\n },\n _icon: {\n size: 'sm',\n },\n },\n xs: {\n px: '3',\n py: '2',\n _text: {\n fontSize: '2xs',\n },\n _icon: {\n size: 'xs',\n },\n },\n};\n\nconst defaultProps = {\n variant: 'solid',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport const ButtonGroup = {\n baseStyle: { direction: 'row' },\n defaultProps: { space: 2 },\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","const baseStyle = {\n shadow: 4,\n borderRadius: 'md',\n padding: 4,\n overflow: 'hidden',\n};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","// For Square and circle variation\nconst sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nexport default {\n baseStyle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizes,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c, theme } = props;\n const { colors } = theme;\n return {\n justifyContent: 'flex-start',\n flexDirection: 'row',\n borderWidth: 2,\n borderRadius: 'sm',\n opacity: 1,\n p: 0.5,\n\n bg: 'muted.50',\n borderColor: 'muted.400',\n _text: {\n color: 'darkText',\n ml: 2,\n },\n _icon: {\n color: `muted.50`,\n },\n _checked: {\n borderColor: `${c}.600`,\n bg: `${c}.600`,\n _hover: {\n borderColor: `${c}.700`,\n bg: `${c}.700`,\n _disabled: {\n borderColor: `${c}.600`,\n bg: `${c}.600`,\n },\n },\n _pressed: {\n borderColor: `${c}.800`,\n bg: `${c}.800`,\n },\n },\n _hover: {\n borderColor: 'muted.500',\n _disabled: {\n borderColor: 'muted.400',\n },\n },\n _pressed: {\n borderColor: 'muted.600',\n },\n _invalid: {\n borderColor: 'error.600',\n },\n\n _dark: {\n bg: 'muted.900',\n borderColor: 'muted.500',\n _text: {\n color: 'lightText',\n },\n _icon: {\n color: `muted.900`,\n },\n _checked: {\n borderColor: `${c}.500`,\n bg: `${c}.500`,\n _hover: {\n borderColor: `${c}.400`,\n bg: `${c}.400`,\n _disabled: {\n borderColor: `${c}.500`,\n bg: `${c}.500`,\n },\n },\n _pressed: {\n borderColor: `${c}.300`,\n bg: `${c}.300`,\n },\n },\n _hover: {\n borderColor: 'muted.400',\n _disabled: {\n borderColor: 'muted.500',\n },\n },\n _pressed: {\n borderColor: 'muted.300',\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: colors[c][400],\n outlineStyle: 'solid',\n },\n },\n },\n\n _disabled: {\n _web: {\n cursor: 'not-allowed',\n },\n opacity: 0.4,\n },\n };\n};\n\nconst sizes = {\n lg: { _icon: { size: 5 }, _text: { fontSize: 'xl' } },\n md: { _icon: { size: 4 }, _text: { fontSize: 'lg' } },\n sm: { _icon: { size: 3 }, _text: { fontSize: 'md' } },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'sm',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { mode, getColorScheme } from '../tools';\n\nconst sizes = {\n 'xs': {\n height: 6,\n width: 6,\n },\n 'sm': {\n height: 8,\n width: 8,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 20,\n width: 20,\n },\n 'xl': {\n height: 24,\n width: 24,\n },\n '2xl': {\n height: 32,\n width: 32,\n },\n};\nconst defaultProps = {\n thickness: 8,\n colorScheme: 'primary',\n size: 'lg',\n};\n\nfunction baseStyle(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n color: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props),\n trackColor: mode(`${colorScheme}.200`, `${colorScheme}.800`)(props),\n };\n}\n\nexport default { baseStyle, sizes, defaultProps };\n","import Badge from './badge';\nimport { Platform } from 'react-native';\n\nconst { variants, defaultProps } = Badge;\n\nconst baseStyle = {\n _text: {\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n fontSize: 'sm',\n },\n borderRadius: 'sm',\n px: 2,\n py: 1,\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import type { Dict } from './../tools';\n\nconst baseStyle = (props: Dict) => {\n const { centerContent } = props;\n\n return {\n maxWidth: '80%',\n alignItems: centerContent ? 'center' : 'flex-start',\n _text: { textAlign: centerContent ? 'center' : 'left' },\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nconst sizes = {};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nconst sizes = {};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","function baseStyle(props: Record) {\n const { orientation, thickness } = props;\n const orientationProps =\n orientation === 'vertical'\n ? {\n width: `${thickness}px`, // handle for web : To be discussed\n height: '100%',\n }\n : {\n width: '100%',\n height: `${thickness}px`,\n };\n\n return {\n bg: 'muted.300',\n _dark: {\n bg: 'muted.600',\n },\n ...orientationProps,\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n orientation: 'horizontal',\n thickness: '1',\n },\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n rounded: 'full',\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n color: 'text.900',\n _dark: {\n color: 'text.50',\n },\n fontWeight: 'bold',\n lineHeight: 'sm',\n };\n};\n\nconst sizes = {\n '4xl': {\n fontSize: { base: '6xl', md: '7xl' },\n letterSpacing: 'xl',\n },\n '3xl': {\n fontSize: { base: '5xl', md: '6xl' },\n letterSpacing: 'xl',\n },\n '2xl': {\n fontSize: { base: '4xl', md: '5xl' },\n },\n 'xl': {\n fontSize: { base: '3xl', md: '4xl' },\n },\n 'lg': {\n fontSize: { base: '2xl', md: '3xl' },\n },\n 'md': { fontSize: 'xl' },\n 'sm': { fontSize: 'md' },\n 'xs': { fontSize: 'sm' },\n};\n\nconst defaultProps = {\n size: 'lg',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n color: 'muted.500',\n _dark: {\n color: 'muted.400',\n },\n };\n};\n\nconst sizes = {\n '2xs': 2,\n 'xs': 3,\n 'sm': 4,\n 'md': 5,\n 'lg': 6,\n 'xl': 7,\n '2xl': 8,\n '3xl': 9,\n '4xl': 10,\n '5xl': 12,\n '6xl': 16,\n};\n\nconst defaultProps = { size: 'sm' };\nexport default { baseStyle, sizes, defaultProps };\n","const baseStyle = (props: any) => {\n const { colorScheme } = props;\n const colors = props.theme.colors;\n\n return {\n borderRadius: 'sm', // '4px'\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n _web: {\n _disabled: {\n cursor: 'not-allowed',\n },\n _loading: {\n cursor: 'not-allowed',\n },\n cursor: 'pointer',\n userSelect: 'none',\n },\n _focus: {\n borderColor: `${colorScheme}.400`,\n },\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: `${colors[colorScheme][600]}`,\n outlineStyle: 'solid',\n },\n },\n },\n _loading: {\n opacity: '40',\n },\n _disabled: {\n opacity: '40',\n },\n _dark: {\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: `${colors[colorScheme][500]}`,\n outlineStyle: 'solid',\n },\n },\n },\n },\n };\n};\n\nfunction variantGhost({ colorScheme }: Record) {\n return {\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n _dark: {\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantOutline({ colorScheme }: Record) {\n return {\n borderWidth: '1px',\n borderColor: `${colorScheme}.600`,\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.700`,\n _icon: {\n color: 'muted.50',\n },\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n _icon: {\n color: 'muted.50',\n },\n },\n _focus: {\n bg: `${colorScheme}.600`,\n _icon: {\n color: 'muted.50',\n },\n },\n _dark: {\n borderColor: `${colorScheme}.500`,\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.400`,\n _icon: {\n color: 'muted.900',\n },\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n _icon: {\n color: 'muted.900',\n },\n },\n _focus: {\n bg: `${colorScheme}.500`,\n _icon: {\n color: 'muted.900',\n },\n },\n },\n };\n}\n\nfunction variantSolid({ colorScheme }: Record) {\n return {\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n _icon: {\n color: 'muted.50',\n },\n _dark: {\n bg: `${colorScheme}.500`,\n _hover: {\n bg: `${colorScheme}.400`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n _icon: {\n color: 'muted.900',\n },\n },\n _icon: {\n color: 'muted.900',\n },\n },\n };\n}\n\nfunction variantSubtle({ colorScheme }: Record) {\n return {\n _text: {\n color: `${colorScheme}.900`,\n },\n _icon: {\n color: `${colorScheme}.900`,\n },\n bg: `${colorScheme}.100`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n },\n _dark: {\n bg: `${colorScheme}.300`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.100`,\n },\n },\n };\n}\n\nfunction variantLink({ colorScheme }: Record) {\n return {\n _spinner: {\n color: `${colorScheme}.600`,\n },\n\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n _icon: {\n color: `${colorScheme}.700`,\n },\n },\n _pressed: {\n _icon: {\n color: `${colorScheme}.800`,\n },\n },\n _dark: {\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n _icon: {\n color: `${colorScheme}.400`,\n },\n },\n _pressed: {\n _icon: {\n color: `${colorScheme}.300`,\n },\n },\n },\n };\n}\n\nfunction variantUnstyled() {\n return {\n _icon: {\n color: 'muted.900',\n },\n _dark: {\n _icon: {\n color: 'muted.50',\n },\n },\n };\n}\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n subtle: variantSubtle,\n link: variantLink,\n unstyled: variantUnstyled,\n};\n\nconst sizes = {\n lg: {\n p: '3',\n _icon: {\n size: 'lg',\n },\n },\n md: {\n p: '2.5',\n _icon: {\n size: 'md',\n },\n },\n sm: {\n p: '2',\n _icon: {\n size: 'sm',\n },\n },\n xs: {\n p: '1.5',\n _icon: {\n size: 'xs',\n },\n },\n};\n\nconst defaultProps = {\n variant: 'ghost',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","// Image\nconst sizes = {\n '2xs': '6',\n 'xs': '10',\n 'sm': '16',\n 'md': '20',\n 'lg': '24',\n 'xl': '32',\n '2xl': '64',\n 'full': '100%',\n};\n\nexport const Image = {\n baseStyle: {\n maxWidth: '100%',\n },\n sizes,\n defaultProps: {},\n};\n","import { transparentize } from '../tools';\nimport type { InterfaceInputProps } from '../../components/primitives/Input/types';\nconst baseStyle = (props: InterfaceInputProps & { theme: any }) => {\n const { primary, error } = props.theme.colors;\n\n return {\n fontFamily: 'body',\n py: '2',\n px: '3',\n borderRadius: 'sm',\n overflow: 'hidden',\n _disabled: {\n opacity: '0.4',\n _web: {\n disabled: true,\n cursor: 'not-allowed',\n },\n },\n _web: {\n outlineWidth: '0',\n overflow: 'auto',\n lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height\n style: { outline: 'none' },\n cursor: 'auto',\n },\n\n _input: {\n bg: 'transparent',\n flex: 1,\n w: '100%',\n h: '100%',\n },\n placeholderTextColor: 'text.400',\n color: 'text.900',\n borderColor: 'muted.300',\n _stack: {\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-between',\n overflow: 'hidden',\n },\n _hover: {\n borderColor: 'primary.600',\n },\n _invalid: {\n borderColor: 'error.600',\n _hover: { borderColor: 'error.600' },\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${error[600]}`,\n },\n },\n },\n _focus: {\n borderColor: 'primary.600',\n _hover: { borderColor: 'primary.600' },\n _invalid: {\n borderColor: 'error.600',\n _hover: { borderColor: 'error.600' },\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${error[600]}`,\n },\n },\n },\n _ios: {\n selectionColor: 'coolGray.800',\n },\n _android: {\n selectionColor: 'coolGray.800',\n },\n _disabled: {\n placeholderTextColor: 'muted.700',\n _hover: {\n borderColor: 'muted.300',\n },\n },\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${primary[600]}`,\n },\n },\n },\n _dark: {\n placeholderTextColor: 'text.600',\n color: 'text.50',\n borderColor: 'muted.700',\n _hover: {\n borderColor: 'primary.500',\n },\n _focus: {\n borderColor: 'primary.500',\n _hover: { borderColor: 'primary.500' },\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${primary[500]}`,\n },\n },\n },\n _invalid: {\n borderColor: 'error.500',\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 0 0 1px ${error[500]}`,\n },\n },\n _hover: { borderColor: 'error.500' },\n },\n _ios: {\n selectionColor: 'warmGray.50',\n },\n _android: {\n selectionColor: 'warmGray.50',\n },\n _disabled: {\n placeholderTextColor: 'text.50',\n _hover: {\n borderColor: 'muted.700',\n },\n },\n _stack: {\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-between',\n overflow: 'hidden',\n },\n },\n };\n};\n\nfunction roundedStyle(props: InterfaceInputProps & { theme: any }) {\n const { theme } = props;\n return {\n borderRadius: 'full',\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n };\n}\nfunction outlineStyle(props: InterfaceInputProps & { theme: any }) {\n const { theme } = props;\n return {\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n };\n}\nfunction filledStyle(props: InterfaceInputProps & { theme: any }) {\n const { theme } = props;\n return {\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n _hover: {\n borderWidth: '1',\n _disabled: {\n borderWidth: 0,\n },\n },\n bg: 'muted.100',\n borderColor: 'muted.100',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.800',\n },\n };\n}\nfunction unstyledStyle() {\n return {\n borderWidth: '0',\n _focus: {\n bg: 'transparent',\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n },\n },\n },\n _stack: {\n _focus: {\n style: {\n outlineWidth: '0',\n },\n },\n },\n };\n}\nfunction underlinedStyle(props: InterfaceInputProps & { theme: any }) {\n const { primary, error } = props.theme.colors;\n\n return {\n borderWidth: '0',\n pl: '0',\n borderBottomWidth: '1',\n _focus: {\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 1px 0 0 ${primary[600]}`,\n },\n },\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n boxShadow: `0 1px 0 0 ${error[600]}`,\n },\n },\n },\n\n _dark: {\n _focus: {\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 1px 0 0 ${primary[500]}`,\n },\n },\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n boxShadow: `0 1px 0 0 ${error[500]}`,\n },\n },\n },\n },\n borderRadius: 0,\n };\n}\n\nconst variants = {\n outline: outlineStyle as any,\n underlined: underlinedStyle as any,\n rounded: roundedStyle as any,\n filled: filledStyle as any,\n unstyled: unstyledStyle as any,\n};\n\nconst sizes = {\n '2xl': { fontSize: 'xl' },\n 'xl': { fontSize: 'lg' },\n 'lg': { fontSize: 'md' },\n 'md': { fontSize: 'sm' },\n 'sm': { fontSize: 'xs' },\n 'xs': { fontSize: '2xs' },\n};\n\nconst defaultProps = {\n size: 'sm',\n variant: 'outline',\n};\n\n// Input\nexport const Input = {\n baseStyle,\n defaultProps,\n variants,\n sizes,\n};\n\nexport default {};\n","const baseStyle = () => {\n return {\n py: 1,\n px: 2,\n shadow: 6,\n rounded: 'sm',\n _text: {\n fontSize: 'sm',\n color: `text.50`,\n },\n bg: `muted.800`,\n _dark: {\n bg: `muted.50`,\n _text: {\n color: `text.900`,\n },\n },\n };\n};\n\nexport const Tooltip = {\n baseStyle,\n};\n","import { mode } from '../tools';\nimport { Platform } from 'react-native';\n\nfunction baseStyle(props: Record) {\n return {\n bg: mode('muted.200', 'muted.700')(props),\n borderColor: mode('muted.300', 'muted.600')(props),\n borderWidth: 2,\n borderBottomWidth: 4,\n shadow: 1,\n borderRadius: 'md',\n px: 2,\n _text: {\n fontSize: 'sm',\n fontWeight: 'bold',\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n },\n };\n}\n\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n width: 'auto',\n height: 'auto',\n };\n};\n\nexport default {\n baseStyle,\n defaultProps: {\n isUnderlined: true,\n },\n};\n","import { StyleSheet } from 'react-native';\n\nconst baseStyle = {\n py: 2,\n borderRadius: 'sm',\n shadow: 6,\n bg: 'muted.50',\n _dark: {\n bg: 'muted.800',\n },\n _presenceTransition: {\n initial: { opacity: 0 },\n animate: {\n opacity: 1,\n translateY: 0,\n transition: { duration: 200 },\n },\n exit: { opacity: 0, transition: { duration: 150 } },\n style: StyleSheet.absoluteFill,\n },\n _overlay: {\n unmountOnExit: true,\n },\n _backdrop: {\n bg: 'transparent',\n },\n};\n\nexport default {\n baseStyle,\n};\n\nexport const MenuGroup = {\n baseStyle: {\n _title: {\n fontSize: 'xs',\n textTransform: 'uppercase',\n color: 'text.500',\n _dark: {\n color: 'text.400',\n },\n },\n p: 3,\n },\n};\nexport const MenuItem = {\n baseStyle: {\n px: 3,\n py: 2,\n _web: {\n outlineWidth: 0,\n },\n _stack: {\n alignItems: 'center',\n px: 3,\n space: 3,\n },\n _icon: {\n size: 4,\n opacity: 0,\n color: 'muted.500',\n },\n _text: {\n color: 'text.900',\n },\n _disabled: {\n _text: {\n color: 'text.400',\n },\n },\n _hover: {\n bg: 'muted.200',\n },\n _focus: {\n bg: 'muted.300',\n },\n _pressed: {\n bg: 'muted.400',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.300',\n },\n },\n _dark: {\n _text: {\n color: 'text.50',\n },\n _disabled: {\n _text: {\n color: 'text.600',\n },\n },\n _hover: {\n bg: 'muted.700',\n },\n _focus: {\n bg: 'muted.600',\n },\n _pressed: {\n bg: 'muted.500',\n },\n\n _icon: {\n color: 'muted.400',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.600',\n },\n },\n },\n _checked: {\n _icon: {\n opacity: 1,\n },\n },\n },\n defaultProps: {},\n};\n","import { Dimensions } from 'react-native';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const Modal = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _slide: { overlay: false, duration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const ModalContent = {\n baseStyle: () => {\n return {\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalCloseButton = {\n baseStyle: () => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n colorScheme: 'coolGray',\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n color: 'muted.500',\n size: '4',\n },\n\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n };\n },\n};\nexport const ModalHeader = {\n baseStyle: () => {\n return {\n p: '4',\n borderBottomWidth: '1',\n _text: {\n color: 'text.900',\n fontSize: 'md',\n fontWeight: 'semibold',\n lineHeight: 'sm',\n },\n\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalBody = {\n baseStyle: () => {\n return {\n p: '4',\n\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalFooter = {\n baseStyle: () => {\n return {\n p: '4',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: 1,\n\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\nexport const ModalOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","import { Dimensions } from 'react-native';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const AlertDialog = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n _slide: { duration: 200, overlay: false },\n _overlay: {\n unmountOnExit: true,\n },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const AlertDialogContent = {\n baseStyle: () => {\n return {\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n bg: 'muted.800',\n color: 'text.50',\n },\n };\n },\n};\nexport const AlertDialogCloseButton = {\n baseStyle: () => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n size: '4',\n color: 'muted.500',\n },\n\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n };\n },\n};\nexport const AlertDialogHeader = {\n baseStyle: () => {\n return {\n p: '4',\n borderBottomWidth: '1',\n _text: {\n color: 'text.900',\n fontSize: 'md',\n fontWeight: 'semibold',\n lineHeight: 'sm',\n },\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const AlertDialogBody = {\n baseStyle: () => {\n return {\n p: '4',\n\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const AlertDialogFooter = {\n baseStyle: () => {\n return {\n p: '4',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: '1',\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\nexport const AlertDialogOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","export const Popover = {\n baseStyle: () => ({\n _overlay: {\n unmountOnExit: true,\n },\n }),\n};\n\nexport const PopoverCloseButton = {\n baseStyle: () => ({\n position: 'absolute',\n right: 3,\n top: 3,\n zIndex: 1,\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n size: '4',\n },\n _light: {\n _icon: {\n color: 'muted.500',\n },\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n },\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n }),\n};\n\nexport const PopoverBody = {\n baseStyle: () => ({\n p: '3',\n shadow: '6',\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n }),\n};\n\nexport const PopoverContent = {\n baseStyle: () => ({\n //TODO: Box inside PopperContent is not able to resolve shadow\n // shadow: '6',\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n _dark: {\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n borderWidth: 1,\n rounded: 'md',\n overflow: 'hidden',\n }),\n};\n\nexport const PopoverHeader = {\n baseStyle: () => ({\n _web: {\n accessibilityRole: 'header',\n },\n p: '4',\n borderBottomWidth: '1',\n _text: {\n fontSize: 'md',\n fontWeight: '700',\n lineHeight: 'sm',\n color: 'text.900',\n },\n bg: 'muted.50',\n borderColor: 'muted.300',\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n }),\n};\n\nexport const PopoverArrow = {\n baseStyle: () => ({\n bg: 'muted.50',\n borderColor: 'muted.300',\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n }),\n};\n\nexport const PopoverFooter = {\n baseStyle: () => {\n return {\n p: '4',\n shadow: '6',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: 1,\n bg: 'muted.50',\n borderColor: 'muted.300',\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\n","import { mode } from '../tools';\n\nconst defaultProps = {\n size: 'sm',\n step: 1,\n min: -Infinity,\n max: Infinity,\n defaultValue: '0',\n keepWithinRange: true,\n clampValueOnBlur: true,\n focusInputOnChange: true,\n getAriaValueText: true,\n};\n\nexport default {\n defaultProps,\n};\n\n//Steppers\nconst stepperbaseStyle = (props: Record) => {\n return {\n bg: mode('primary.600', 'primary.200')(props),\n iconColor: mode('gray.50', 'gray.800')(props),\n _active: {},\n _disabled: {\n // iconColor: mode('gray.50', 'gray.300')(props),\n // bg: mode('blackAlpha.200', 'whiteAlpha.300')(props),\n opacity: 0.5,\n },\n };\n};\n\nexport const NumberInputStepper = {\n baseStyle: stepperbaseStyle,\n};\n","const defaultProps = {\n placeholder: '○',\n size: 'md',\n manageFocus: true,\n space: 1,\n};\n\nconst sizes = {\n '2xl': {\n fontSize: '2xl',\n p: 3,\n width: '56px',\n height: '56px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'xl': {\n fontSize: 'xl',\n p: 3,\n width: '52px',\n height: '52px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'lg': {\n fontSize: 'lg',\n p: 2,\n width: '48px',\n height: '48px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'md': {\n fontSize: 'md',\n p: 2,\n width: '40px',\n height: '40px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'sm': {\n fontSize: 'sm',\n p: 1,\n width: '30px',\n height: '30px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'xs': {\n fontSize: 'xs',\n p: 1,\n width: '24px',\n height: '24px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n};\n\nexport default {\n sizes,\n defaultProps,\n};\n","const baseStyle = (props: any) => {\n const { primary } = props.theme.colors;\n\n return {\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: 0,\n boxShadow: `${primary[400]} 0px 0px 0px 2px`,\n },\n },\n },\n _dark: {\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: 0,\n boxShadow: `${primary[500]} 0px 0px 0px 2px`,\n },\n },\n },\n },\n };\n};\n\nexport default {\n baseStyle,\n defaultProps: {},\n};\n","const defaultProps = {\n colorScheme: 'primary',\n size: 'sm',\n rounded: 'full',\n min: 0,\n max: 100,\n value: 0,\n isIndeterminate: false,\n};\n\nfunction baseStyle(props: Record) {\n const { colorScheme: c } = props;\n\n return {\n overflow: 'hidden',\n _filledTrack: {\n bg: `${c}.600`,\n shadow: 0,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n rounded: 'full',\n _text: {\n color: 'white',\n fontWeight: 'bold',\n },\n },\n bg: 'muted.200',\n _dark: {\n bg: 'muted.700',\n _filledTrack: {\n bg: `${c}.400`,\n },\n },\n };\n}\n\nconst sizes = {\n 'xs': {\n height: 1,\n },\n 'sm': {\n height: 2,\n },\n 'md': {\n height: 3,\n },\n 'lg': {\n height: 4,\n },\n 'xl': {\n height: 5,\n },\n '2xl': {\n height: 6,\n },\n};\n\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c, theme } = props;\n const { colors } = theme;\n return {\n borderWidth: 2,\n borderRadius: 'full',\n p: 1,\n\n bg: 'muted.50',\n borderColor: 'muted.400',\n\n _checked: {\n borderColor: `${c}.600`,\n _icon: {\n color: `${c}.600`,\n },\n _hover: {\n borderColor: `${c}.700`,\n _icon: { color: `${c}.700` },\n _disabled: {\n borderColor: `${c}.600`,\n _icon: {\n color: `${c}.600`,\n },\n },\n },\n _pressed: {\n borderColor: `${c}.800`,\n _icon: { color: `${c}.800` },\n },\n },\n\n _hover: {\n borderColor: 'muted.500',\n _disabled: {\n borderColor: 'muted.400',\n },\n _checked: { borderColor: `${c}.600` },\n },\n\n _pressed: {\n borderColor: 'muted.600',\n },\n\n _invalid: {\n borderColor: 'error.600',\n },\n\n _dark: {\n bg: 'muted.900',\n borderColor: 'muted.500',\n\n _checked: {\n borderColor: `${c}.500`,\n _icon: {\n color: `${c}.500`,\n },\n _hover: {\n borderColor: `${c}.400`,\n _icon: { color: `${c}.400` },\n _disabled: {\n borderColor: `${c}.500`,\n _icon: {\n color: `${c}.500`,\n },\n },\n },\n _pressed: {\n borderColor: `${c}.300`,\n _icon: { color: `${c}.300` },\n },\n },\n\n _hover: {\n borderColor: 'muted.400',\n _disabled: {\n borderColor: 'muted.500',\n },\n _checked: { borderColor: `${c}.600` },\n },\n\n _pressed: {\n borderColor: 'muted.300',\n },\n\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n\n _disabled: {\n opacity: '0.6',\n _icon: {\n bg: 'transparent',\n },\n _stack: {\n opacity: '0.6',\n },\n },\n\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: colors[c][400],\n outlineStyle: 'solid',\n },\n },\n },\n };\n};\n\nconst sizes = {\n lg: {\n _icon: { size: 4 },\n _text: { fontSize: 'lg' },\n },\n md: {\n _icon: { size: 3 },\n _text: { fontSize: 'md' },\n },\n sm: {\n _icon: { size: 2 },\n _text: { fontSize: 'sm' },\n },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","const defaultProps = {\n _statLabel: {\n fontSize: 'xl',\n },\n _statNumber: {\n fontSize: '4xl',\n fontWeight: 'bold',\n my: 2,\n },\n _statHelpText: {\n _text: {\n color: 'gray.500',\n fontSize: 'xl',\n },\n flexDirection: 'row',\n alignItems: 'center',\n },\n _statGroup: {\n flexWrap: 'wrap',\n space: 4,\n justifyContent: 'space-between',\n },\n};\n\nexport default {\n defaultProps,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c } = props;\n return {\n _disabled: {\n opacity: 0.4,\n },\n _invalid: {\n borderColor: 'error.600',\n borderWidth: 2,\n borderRadius: 12,\n },\n onThumbColor: 'muted.50',\n offThumbColor: 'muted.50',\n offTrackColor: 'muted.300',\n onTrackColor: `${c}.600`,\n _hover: {\n offTrackColor: 'muted.400',\n onTrackColor: `${c}.700`,\n },\n\n _dark: {\n offTrackColor: 'muted.700',\n onTrackColor: `${c}.500`,\n _hover: {\n offTrackColor: 'muted.600',\n onTrackColor: `${c}.400`,\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n };\n};\n\nconst sizes = {\n sm: {\n style: {\n transform: [{ scale: 0.75 }],\n },\n },\n md: {},\n lg: {\n style: {\n transform: [{ scale: 1.25 }],\n },\n margin: 1,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { getColorFormColorScheme, getColorScheme, mode } from '../tools';\n\nfunction baseStyle(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n return {\n activeTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: { fontSize: 'sm', fontWeight: 'bold' },\n },\n inactiveTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: {\n color: mode('gray.500', 'gray.400')(props),\n fontSize: 'sm',\n fontWeight: 'bold',\n },\n },\n activeIconProps: {\n color: activeColor,\n name: 'home',\n mx: 2,\n },\n inactiveIconProps: {\n name: 'home',\n mx: 2,\n },\n };\n}\n\nconst sizes = {\n sm: {\n activeTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n },\n md: {\n activeTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n },\n lg: {\n activeTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n },\n};\n\nfunction variantOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: {\n color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props),\n },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\nfunction variantFilled(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\n// function variantEnclosed(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderTopWidth: 2,\n// borderLeftWidth: 2,\n// borderRightWidth: 2,\n// borderColor: activeColor,\n// },\n// inactiveTabStyle: {\n// borderColor: 'muted.200',\n// borderBottomWidth: 2,\n// },\n// tabBarStyle: {},\n// };\n// }\n\nfunction variantFilledOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n };\n}\n\n// function varientSoftRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: transparentize(activeColor, 0.7)(props.theme),\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidBox(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\nconst variants = {\n 'outline': variantOutline,\n 'filled': variantFilled,\n 'filled-outline': variantFilledOutline,\n // 'soft-rounded': varientSoftRounded,\n // 'solid-rounded': varientSolidRounded,\n // 'solid-box': varientSolidBox,\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'outline',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","import Badge from './badge';\n\nconst { variants } = Badge;\nconst baseStyle = {\n _text: {\n fontWeight: 'medium',\n // lineHeight: 1.2,\n },\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n display: 'flex',\n};\nconst sizes = {\n sm: {\n minH: 5,\n minW: 5,\n _text: {\n fontSize: 'xs',\n },\n p: 1,\n borderRadius: 'sm',\n },\n md: {\n minH: 6,\n minW: 6,\n _text: {\n fontSize: 'sm',\n },\n borderRadius: 'md',\n p: 2,\n },\n lg: {\n minH: 8,\n minW: 8,\n _text: {\n fontSize: 'md',\n },\n borderRadius: 'md',\n p: 3,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'subtle',\n colorScheme: 'primary',\n};\n\nexport default {\n variants,\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n color: 'text.900',\n _dark: {\n color: 'text.50',\n },\n fontWeight: '400',\n fontFamily: 'body',\n fontStyle: 'normal',\n fontSize: 'sm',\n letterSpacing: 'md',\n lineHeight: 'lg',\n };\n};\nconst defaultProps = {};\n\nexport default { baseStyle, defaultProps };\n","import { mode, getColorScheme } from './../tools';\n\nconst baseStyle = (props: Record) => {\n let colorScheme = getColorScheme(props);\n return {\n bg: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props),\n px: 2,\n };\n};\nconst defaultProps = {\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {\n multiline: true,\n p: '2',\n textAlignVertical: 'top',\n h: '20',\n};\n\nexport default {\n baseStyle,\n defaultProps: {\n size: 'sm',\n variant: 'outline',\n },\n};\n","import { mode } from '../tools';\n\n// TextField\nconst baseStyle = (props: Record) => {\n return {\n _errorMessageProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: 'error.400',\n },\n _helperTextProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: mode('muted.400', 'muted.500')(props),\n },\n };\n};\n\nexport const TextField = {\n baseStyle,\n defaultProps: {\n component: 'input',\n },\n};\n","import { mode } from './../tools';\nimport { Easing } from 'react-native';\n\nconst baseStyle = (props: Record) => {\n // NOTE: Internal pseudo props like _stack, _overlay nad _presenceTransition can only be update by the theme.\n return {\n bg: mode(`muted.700`, `muted.600`)(props),\n p: '2',\n rounded: 'sm',\n shadow: 6,\n // The stack in which toast are being rendered\n _stack: {\n margin: 'auto',\n position: 'absolute',\n space: 2,\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'box-none',\n _web: { position: 'fixed' },\n },\n _overlay: {},\n _presenceTransition: {\n animate: {\n opacity: 1,\n transition: { easing: Easing.ease, duration: 250 },\n },\n exit: {\n opacity: 0,\n scale: 0.85,\n transition: { easing: Easing.ease, duration: 100 },\n },\n },\n _title: {\n color: 'text.50',\n fontWeight: 700,\n },\n _description: {\n color: 'text.50',\n fontWeight: 400,\n },\n };\n};\n\nexport const Toast = {\n baseStyle,\n defaultProps: {},\n};\n","//Fade\n// const fadeDefaultProps = {\n// entryDuration: 500,\n// exitDuration: 500,\n// };\n\nexport const fadeBaseStyle = {\n initial: { opacity: 0 },\n animate: { opacity: 1, transition: { duration: 500 } },\n exit: { opacity: 0, transition: { duration: 500 } },\n};\nexport const Fade = {\n baseStyle: fadeBaseStyle,\n};\n\n//ScaleFade\n//Can be commented if not used anywhere else\n// const scaleFadeDefaultProps = {\n// duration: 500,\n// initialScale: 0.9,\n// };\n\nconst scaleBaseStyle = {\n initial: { opacity: 0, scale: 0.9 },\n animate: { opacity: 1, scale: 1, transition: 500 },\n exit: { opacity: 0, scale: 0.9, transition: 500 },\n};\nexport const ScaleFade = {\n baseStyle: scaleBaseStyle,\n};\n\n//Slide\nconst slideDefaultProps = {\n duration: 500,\n placement: 'bottom',\n overlay: true,\n _overlay: { isOpen: true },\n};\n\nexport const Slide = {\n baseStyle: {\n h: '100%',\n pointerEvents: 'box-none',\n _overlay: { style: { overflow: 'hidden' } },\n },\n defaultProps: slideDefaultProps,\n};\n\n//SlideFade\nconst slideFadeDefaultProps = {\n duration: 500,\n offsetX: 10,\n offsetY: 10,\n};\n\nexport const SlideFade = {\n defaultProps: slideFadeDefaultProps,\n};\n","import { mode } from '../tools/colors';\n\nconst typeaheadSearchItemBaseStyle = (props: Record) => {\n return {\n backgroundColor: mode('gray.100', 'gray.600')(props),\n _focus: {\n backgroundColor: mode('primary.300', 'primary.700')(props),\n },\n _disabled: {\n backgroundColor: 'gray.200',\n },\n };\n};\n\nexport const TypeAheadSearchItem = {\n baseStyle: typeaheadSearchItemBaseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\n// sizes in stack means the height or width of the spacer elements that get's added between the children, in other\n// words it maps to space prop that user passes.\nconst sizes = {\n 'gutter': 0,\n '2xs': 1,\n 'xs': 2,\n 'sm': 3,\n 'md': 4,\n 'lg': 6,\n 'xl': 7,\n '2xl': 8,\n};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","export const SliderTrack = {\n baseStyle: ({ isVertical, size }: any) => {\n return {\n bg: 'muted.200',\n borderRadius: 'lg',\n overflow: 'hidden',\n style: {\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n },\n _pressable: {\n alignItems: 'center',\n justifyContent: 'center',\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n py: !isVertical ? '3' : undefined,\n px: isVertical ? '3' : undefined,\n },\n _dark: {\n bg: 'muted.700',\n },\n };\n },\n};\n\nexport const SliderThumb = {\n baseStyle: (props: any) => {\n const { colorScheme } = props;\n const { primary } = props.theme.colors;\n return {\n borderRadius: 'full',\n zIndex: 999,\n alignItems: 'center',\n justifyContent: 'center',\n scaleOnPressed: 1,\n _interactionBox: {\n position: 'absolute',\n borderRadius: 'full',\n zIndex: -1,\n },\n _stack: {\n direction: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n space: 2,\n },\n bg: `${colorScheme}.600`,\n _hover: {\n _web: {\n outlineWidth: '4px',\n outlineColor: primary[300],\n outlineStyle: 'solid',\n },\n },\n _focus: {\n _web: {\n outlineWidth: '2px',\n outlineColor: primary[400],\n outlineStyle: 'solid',\n },\n },\n _pressed: {\n _interactionBox: {\n borderWidth: '8',\n borderColor: `${colorScheme}.300`,\n },\n },\n\n _dark: {\n bg: `${colorScheme}.500`,\n _hover: {\n _web: {\n outlineWidth: '4px',\n outlineColor: primary[800],\n outlineStyle: 'solid',\n },\n },\n _focus: {\n _web: {\n outlineWidth: '2px',\n outlineColor: primary[400],\n outlineStyle: 'solid',\n },\n },\n _pressed: {\n _interactionBox: {\n borderWidth: '8',\n borderColor: `${colorScheme}.800`,\n },\n },\n },\n // shadow: 6,\n _web: {\n cursor: 'pointer',\n },\n };\n },\n defaultProps: {\n colorScheme: 'primary',\n },\n sizes: {\n lg: {\n _interactionBox: '3',\n },\n md: {\n _interactionBox: '2',\n },\n sm: {\n _interactionBox: '2.5',\n },\n },\n};\n\nexport const SliderFilledTrack = {\n baseStyle: ({\n orientation,\n isReversed,\n sliderTrackPosition,\n size,\n colorScheme,\n }: any) => {\n return {\n left: orientation !== 'vertical' && !isReversed ? 0 : undefined,\n bottom: orientation === 'vertical' && !isReversed ? 0 : undefined,\n right: orientation !== 'vertical' && isReversed ? 0 : undefined,\n top: orientation === 'vertical' && isReversed ? 0 : undefined,\n style:\n orientation === 'vertical'\n ? { height: sliderTrackPosition, width: size }\n : { width: sliderTrackPosition, height: size },\n bg: `${colorScheme}.600`,\n _dark: {\n bg: `${colorScheme}.500`,\n },\n };\n },\n defaultProps: {\n colorScheme: 'primary',\n },\n};\n\nconst sizes = {\n lg: { thumbSize: 6, sliderTrackHeight: 6, _interactionBox: { p: '3' } },\n md: { thumbSize: 5, sliderTrackHeight: 5, _interactionBox: { p: '2.5' } },\n sm: { thumbSize: 4, sliderTrackHeight: 4, _interactionBox: { p: '2' } },\n};\n\nexport const Slider = {\n baseStyle: (props: any) => {\n return {\n alignItems: 'center',\n justifyContent: 'center',\n height: props.orientation === 'vertical' ? '100%' : undefined,\n width: props.orientation !== 'vertical' ? '100%' : undefined,\n _disabled: {\n opacity: 0.4,\n _web: {\n cursor: 'not-allowed',\n },\n },\n };\n },\n defaultProps: {\n size: 'sm',\n },\n sizes,\n};\n","const baseStyle = () => {\n return {\n // roundedRight: '4',\n p: '2',\n borderWidth: '1',\n borderLeftWidth: '0',\n borderRightRadius: 'sm',\n _text: {\n color: 'text.900',\n fontWeight: 400,\n },\n alignItems: 'center',\n justifyContent: 'center',\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n};\n\nexport default { baseStyle };\n","// Actionsheet\nexport const Actionsheet = {\n defaultProps: {\n size: 'full',\n justifyContent: 'flex-end',\n animationPreset: 'slide',\n },\n};\n\n// ActionsheetContent\nexport const ActionsheetContent = {\n baseStyle: () => ({\n alignItems: 'center',\n px: 2,\n py: 2,\n borderRadius: 'none',\n roundedTop: 20,\n _web: {\n userSelect: 'none',\n },\n _dragIndicator: {\n height: 1,\n width: 10,\n borderRadius: 2,\n bg: 'muted.500',\n },\n\n _dark: {\n _dragIndicator: {\n bg: 'muted.400',\n },\n },\n\n _dragIndicatorWrapper: {\n pt: 3,\n pb: 3,\n mt: -2,\n width: '100%',\n alignItems: 'center',\n collapsable: false,\n },\n _dragIndicatorWrapperOffSet: {\n py: 2,\n collapsable: false,\n },\n }),\n};\n\n// ActionsheetItem\nexport const ActionsheetItem = {\n baseStyle: () => ({\n width: '100%',\n justifyContent: 'flex-start',\n _stack: {\n space: 4,\n },\n p: 4,\n _text: {\n color: 'text.900',\n fontSize: 'md',\n fontWeight: 'normal',\n },\n _disabled: {\n opacity: 40,\n },\n\n bg: 'muted.50',\n _icon: {\n color: 'muted.500',\n },\n\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.400',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.300',\n },\n bg: 'muted.300',\n },\n\n _dark: {\n bg: 'muted.800',\n _icon: {\n color: 'muted.400',\n },\n _text: {\n color: 'muted.50',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.500',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.600',\n },\n },\n },\n }),\n};\n","const placementProps: any = {\n 'top-right': { top: 4, right: 4, position: 'absolute' },\n 'top-left': { top: 4, left: 4, position: 'absolute' },\n 'bottom-right': { bottom: 4, right: 4, position: 'absolute' },\n 'bottom-left': { bottom: 4, left: 4, position: 'absolute' },\n};\nconst baseStyle = {\n shadow: 7,\n rounded: 'full',\n zIndex: 20,\n placementProps,\n px: 4,\n py: 4,\n};\nconst defaultProps = {\n renderInPortal: true,\n variant: 'solid',\n colorScheme: 'primary',\n placement: 'bottom-right',\n};\n\nexport default { baseStyle, defaultProps };\n","export const Flex = {\n baseStyle: {\n display: 'flex',\n flexDirection: 'column',\n },\n};\n\nexport const Spacer = {\n baseStyle: {\n flexGrow: 1,\n },\n};\n","// FormControl\nexport const FormControl = {\n baseStyle: {\n width: '100%',\n },\n};\n\n// FormControlErrorMessage\nexport const FormControlErrorMessage = {\n baseStyle: () => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n color: 'error.600',\n },\n _stack: { space: 1, alignItems: 'center' },\n _dark: {\n _text: {\n color: 'error.500',\n },\n },\n };\n },\n};\n\n// FormControlLabel\nexport const FormControlLabel = {\n baseStyle: () => {\n return {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n _text: {\n fontSize: 'sm',\n fontWeight: 'medium',\n color: 'text.500',\n },\n my: '1',\n _astrick: {\n color: 'error.600',\n },\n _dark: {\n _text: {\n color: 'text.400',\n },\n _astrick: {\n color: 'error.500',\n },\n },\n };\n },\n};\n\n// FormControlHelperText\nexport const FormControlHelperText = {\n baseStyle: () => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n color: 'text.500',\n },\n _dark: {\n _text: {\n color: 'text.400',\n },\n },\n };\n },\n};\n","const baseStyle = () => {\n return {\n // roundedLeft: '4',\n p: '2',\n borderWidth: '1',\n borderRightWidth: '0',\n borderLeftRadius: 'sm',\n _text: {\n color: 'text.900',\n fontWeight: 400,\n },\n alignItems: 'center',\n justifyContent: 'center',\n bg: 'muted.50',\n borderColor: 'muted.300',\n\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n};\n\nexport default { baseStyle };\n","import { mode } from '../tools';\n// List\nexport const List = {\n baseStyle: (props: Record) => {\n return {\n py: 2,\n borderWidth: 1,\n borderColor: 'gray.300',\n _hover: { bg: mode('primary.100', 'primary.700')(props) },\n };\n },\n};\n\n// ListItem\nexport const ListItem = {\n baseStyle: {\n // borderTopWidth: 1,\n py: 2,\n borderColor: 'gray.300',\n },\n defaultProps: {\n start: 1,\n },\n};\n\n// ListIcon\nexport const ListIcon = {\n baseStyle: {\n mr: 8,\n size: 'md',\n },\n};\n","export const Select = {\n baseStyle: () => {\n return {\n selection: {\n start: 0,\n },\n\n _customDropdownIconProps: {\n color: 'muted.500',\n mr: '3',\n size: '6',\n p: '1',\n },\n _hover: {\n borderColor: 'primary.600',\n },\n _focus: {\n borderColor: 'primary.600',\n },\n _disabled: {\n bg: 'muted.100',\n placeholderTextColor: 'muted.700',\n },\n _invalid: {\n borderColor: 'error.600',\n },\n\n _dark: {\n _customDropdownIconProps: { color: 'muted.400', mr: '3' },\n _hover: {\n borderColor: 'primary.500',\n },\n _focus: {\n borderColor: 'primary.500',\n },\n _disabled: {\n bg: 'muted.800',\n opacity: '80',\n placeholderTextColor: 'text.50',\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _webSelect: {\n style: {\n appearance: 'none',\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n position: 'absolute',\n width: '100%',\n height: '100%',\n opacity: 0,\n zIndex: 1,\n },\n },\n _web: {\n pointerEvents: 'none',\n },\n\n _actionSheetBody: {\n w: '100%',\n },\n _actionSheetContent: {},\n };\n },\n defaultProps: {\n optimized: true,\n },\n};\n\n// SelectIcon - only for custom variant\nexport const SelectItem = {\n baseStyle: {\n p: '1',\n px: '2',\n borderRadius: '0',\n minH: '0',\n },\n};\n","// Skeleton\nexport const Skeleton = {\n baseStyle: () => {\n return {\n startColor: 'muted.200',\n _dark: {\n startColor: 'muted.600',\n },\n endColor: 'transparent',\n overflow: 'hidden',\n fadeDuration: 0.1,\n speed: 1.0,\n h: '10',\n w: '100%',\n };\n },\n};\n\n// SkeletonText\nexport const SkeletonText = {\n baseStyle: () => {\n return {\n startColor: 'muted.200',\n _dark: {\n startColor: 'muted.600',\n },\n endColor: 'transparent',\n fadeDuration: 0.1,\n w: '100%',\n speed: 1.0,\n flexDirection: 'column',\n _line: {\n h: 3,\n rounded: 'full',\n },\n };\n },\n defaultProps: {\n lines: 3,\n space: 3,\n },\n};\n","export default {\n baseStyle: {\n color: 'primary.600',\n },\n sizes: {\n sm: 'small',\n lg: 'large',\n },\n defaultProps: {\n size: 'small',\n },\n};\n","// Wrap\nexport const Wrap = {};\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport unitlessNumbers from '../../modules/unitlessNumbers';\nimport normalizeColor from '../../modules/normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n\n return returnValue;\n}","import React, { memo, forwardRef } from 'react';\nimport SVGIcon from './SVGIcon';\nimport { Path } from './nbSvg';\nimport type { IcreateIconProps } from './types';\nimport isEmpty from 'lodash.isempty';\n\nexport const createIcon = ({ path, d, ...initialProps }: IcreateIconProps) => {\n const createdIcon = (props: any, ref: any) => {\n let children = path;\n if (d && (!path || isEmpty(path))) {\n children = ;\n }\n return (\n \n );\n };\n return memo(forwardRef(createdIcon));\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';\nvar doLeftAndRightSwapInRTL = true;\nvar isPreferredLanguageRTL = false;\nvar isRTLAllowed = true;\nvar isRTLForced = false;\n\nvar isRTL = function isRTL() {\n if (isRTLForced) {\n return true;\n }\n\n return isRTLAllowed && isPreferredLanguageRTL;\n};\n\nvar onDirectionChange = function onDirectionChange() {\n if (ExecutionEnvironment.canUseDOM) {\n if (document.documentElement && document.documentElement.setAttribute) {\n document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');\n }\n }\n};\n\nvar I18nManager = {\n allowRTL: function allowRTL(bool) {\n isRTLAllowed = bool;\n onDirectionChange();\n },\n forceRTL: function forceRTL(bool) {\n isRTLForced = bool;\n onDirectionChange();\n },\n getConstants: function getConstants() {\n return {\n doLeftAndRightSwapInRTL: doLeftAndRightSwapInRTL,\n isRTL: isRTL()\n };\n },\n setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {\n isPreferredLanguageRTL = bool;\n onDirectionChange();\n },\n swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {\n doLeftAndRightSwapInRTL = bool;\n }\n};\nexport default I18nManager;","import React from 'react';\n\ntype ResponsiveQueryContextType = {\n disableCSSMediaQueries?: boolean;\n};\n\nexport const ResponsiveQueryContext = React.createContext(\n {\n disableCSSMediaQueries: false,\n }\n);\n\nexport const ResponsiveQueryProvider = (\n props: ResponsiveQueryContextType & { children: React.ReactNode }\n) => {\n const value = React.useMemo(\n () => ({\n disableCSSMediaQueries: props.disableCSSMediaQueries,\n }),\n [props.disableCSSMediaQueries]\n );\n\n return (\n \n {props.children}\n \n );\n};\n","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import { isRegExp, isString, isVueViewModel } from './is';\n\nexport { escapeStringForRegex } from './vendor/escapeStringForRegex';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport UIManager from '../../exports/UIManager';\n/**\n * This class is responsible for coordinating the \"focused\"\n * state for TextInputs. All calls relating to the keyboard\n * should be funneled through here\n */\n\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\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 */\n currentlyFocusedField: function currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n\n return this._currentlyFocusedNode;\n },\n\n /**\n * @param {Object} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused\n */\n focusTextInput: function focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n\n /**\n * @param {Object} textFieldNode id of the text field to focus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\n blurTextInput: function blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","import type {\n CaptureContext,\n Client,\n ClientOptions,\n Event,\n EventHint,\n Scope as ScopeInterface,\n ScopeContext,\n StackFrame,\n StackParser,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, addExceptionMechanism, dateTimestampInSeconds, normalize, truncate, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getGlobalEventProcessors, notifyEventProcessors } from '../eventProcessors';\nimport { Scope, getGlobalScope } from '../scope';\nimport { applyScopeDataToEvent, mergeScopeData } from './applyScopeDataToEvent';\nimport { spanToJSON } from './spanUtils';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\nexport type ExclusiveEventHintOrCaptureContext =\n | (CaptureContext & Partial<{ [key in keyof EventHint]: never }>)\n | (EventHint & Partial<{ [key in keyof ScopeContext]: never }>);\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * Note: This also triggers callbacks for `addGlobalEventProcessor`, but not `beforeSend`.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nexport function prepareEvent(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n scope?: Scope,\n client?: Client,\n isolationScope?: Scope,\n): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n const prepared: Event = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client && client.getEventProcessors ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors = [\n ...clientEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event: Event, options: ClientOptions): void {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap>();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nexport function applyDebugIds(event: Event, stackParser: StackParser): void {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache: Map;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce>((acc, debugIdStackTrace) => {\n let parsedStack: StackFrame[];\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdMap[debugIdStackTrace];\n break;\n }\n }\n return acc;\n }, {});\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event!.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nexport function applyDebugMeta(event: Event): void {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap: Record = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.keys(filenameDebugIdMap).forEach(filename => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id: filenameDebugIdMap[filename],\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized: Event = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n const data = spanToJSON(span).data;\n\n if (data) {\n // This is a bit weird, as we generally have `Span` instances here, but to be safe we do not assume so\n // eslint-disable-next-line deprecation/deprecation\n span.data = normalize(data, depth, maxBreadth);\n }\n\n return span;\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(scope: Scope | undefined, captureContext: CaptureContext | undefined): Scope | undefined {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nexport function parseEventHintOrCaptureContext(\n hint: ExclusiveEventHintOrCaptureContext | undefined,\n): EventHint | undefined {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint: CaptureContext | EventHint,\n): hint is ScopeInterface | ((scope: ScopeInterface) => ScopeInterface) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\ntype ScopeContextProperty = keyof ScopeContext;\nconst captureContextKeys: readonly ScopeContextProperty[] = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] as const;\n\nfunction hintIsScopeContext(hint: Partial | EventHint): hint is Partial {\n return Object.keys(hint).some(key => captureContextKeys.includes(key as ScopeContextProperty));\n}\n","import type {\n Breadcrumb,\n BreadcrumbHint,\n CaptureContext,\n CheckIn,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n FinishedCheckIn,\n MonitorConfig,\n Primitive,\n Scope as ScopeInterface,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Span,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, isThenable, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Hub } from './hub';\nimport { runWithAsyncContext } from './hub';\nimport { getCurrentHub, getIsolationScope } from './hub';\nimport type { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport type { ExclusiveEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nexport function captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception: any,\n hint?: ExclusiveEventHintOrCaptureContext,\n): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nexport function captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n captureContext?: CaptureContext | Severity | SeverityLevel,\n): string {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param exception The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nexport function captureEvent(event: Event, hint?: EventHint): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n *\n * @deprecated Use getCurrentScope() directly.\n */\nexport function configureScope(callback: (scope: Scope) => void): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().addBreadcrumb(breadcrumb, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name: string, context: { [key: string]: any } | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n */\nexport function withScope(callback: (scope: Scope) => T): T;\n/**\n * Set the given scope as the active scope in the callback.\n */\nexport function withScope(scope: ScopeInterface | undefined, callback: (scope: Scope) => T): T;\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nexport function withScope(\n ...rest: [callback: (scope: Scope) => T] | [scope: ScopeInterface | undefined, callback: (scope: Scope) => T]\n): T {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n if (!scope) {\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(callback);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(() => {\n // eslint-disable-next-line deprecation/deprecation\n hub.getStackTop().scope = scope as Scope;\n return callback(scope as Scope);\n });\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n *\n * @param callback The callback in which the passed isolation scope is active. (Note: In environments without async\n * context strategy, the currently active isolation scope may change within execution of the callback.)\n * @returns The same value that `callback` returns.\n */\nexport function withIsolationScope(callback: (isolationScope: Scope) => T): T {\n return runWithAsyncContext(() => {\n return callback(getIsolationScope());\n });\n}\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback.\n *\n * @param span Spans started in the context of the provided callback will be children of this span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nexport function withActiveSpan(span: Span, callback: (scope: Scope) => T): T {\n return withScope(scope => {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(span);\n return callback(scope);\n });\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function captureCheckIn(checkIn: CheckIn, upsertMonitorConfig?: MonitorConfig): string {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function withMonitor(\n monitorSlug: CheckIn['monitorSlug'],\n callback: () => T,\n upsertMonitorConfig?: MonitorConfig,\n): T {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status: FinishedCheckIn['status']): void {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function flush(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function close(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n * @deprecated This function will be removed in the next major version of the Sentry SDK.\n */\nexport function lastEventId(): string | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().lastEventId();\n}\n\n/**\n * Get the currently active client.\n */\nexport function getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getClient();\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nexport function isInitialized(): boolean {\n return !!getClient();\n}\n\n/**\n * Get the currently active scope.\n */\nexport function getCurrentScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getScope();\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nexport function startSession(context?: SessionContext): Session {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nexport function endSession(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nexport function captureSession(end: boolean = false): void {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n","export function mergeRefs(\n refs: Array | React.LegacyRef>\n): React.RefCallback {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject).current = value;\n }\n });\n };\n}\n\nexport function composeEventHandlers(\n originalEventHandler?: null | ((event: E) => void),\n ourEventHandler?: (event: E) => void\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n ourEventHandler?.(event);\n };\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));var _toDecimal=_interopRequireDefault(require(\"./toDecimal\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getLatitude=function getLatitude(point,raw){var latKey=(0,_getCoordinateKey.default)(point,_constants.latitudeKeys);if(typeof latKey===\"undefined\"||latKey===null){return}var value=point[latKey];return raw===true?value:(0,_toDecimal.default)(value)};var _default=getLatitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));var _toDecimal=_interopRequireDefault(require(\"./toDecimal\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getLongitude=function getLongitude(point,raw){var latKey=(0,_getCoordinateKey.default)(point,_constants.longitudeKeys);if(typeof latKey===\"undefined\"||latKey===null){return}var value=point[latKey];return raw===true?value:(0,_toDecimal.default)(value)};var _default=getLongitude;exports.default=_default;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","// import type { ITheme } from '..';\nimport type { Leaves } from './types';\n\nexport interface IColorHues {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n}\n\nconst colors = {\n contrastThreshold: 7,\n // Singleton colors\n white: '#FFFFFF',\n black: '#000000',\n lightText: '#FFFFFF',\n darkText: '#000000',\n // Primary colors\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n },\n lightBlue: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n },\n darkBlue: {\n 50: '#dbf4ff',\n 100: '#addbff',\n 200: '#7cc2ff',\n 300: '#4aa9ff',\n 400: '#1a91ff',\n 500: '#0077e6',\n 600: '#005db4',\n 700: '#004282',\n 800: '#002851',\n 900: '#000e21',\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n warmGray: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n },\n trueGray: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n gray: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n coolGray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n },\n blueGray: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n },\n dark: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n text: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n // Derived colors\n danger: {} as IColorHues,\n error: {} as IColorHues,\n success: {} as IColorHues,\n warning: {} as IColorHues,\n muted: {} as IColorHues,\n primary: {} as IColorHues,\n info: {} as IColorHues,\n secondary: {} as IColorHues,\n light: {} as IColorHues,\n tertiary: {} as IColorHues,\n};\n\ncolors.danger = colors.rose;\ncolors.error = colors.red;\ncolors.success = colors.green;\ncolors.warning = colors.orange;\ncolors.muted = colors.trueGray;\ncolors.primary = colors.cyan;\ncolors.secondary = colors.pink;\ncolors.tertiary = colors.emerald;\ncolors.info = colors.lightBlue;\ncolors.light = colors.warmGray;\n\nexport default colors;\n// export type IColors = Leaves;\nexport type IColors = Leaves;\n","import type {\n Client,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n IntegrationFn,\n IntegrationFnResult,\n Options,\n} from '@sentry/types';\nimport { arrayify, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { addGlobalEventProcessor } from './eventProcessors';\nimport { getClient } from './exports';\nimport { getCurrentHub } from './hub';\n\ndeclare module '@sentry/types' {\n interface Integration {\n isDefaultInstance?: boolean;\n }\n}\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n};\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n const integrationsByName: { [key: string]: Integration } = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.keys(integrationsByName).map(k => integrationsByName[k]);\n}\n\n/** Gets integrations to install */\nexport function getIntegrationsToSetup(options: Pick): Integration[] {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations: Integration[];\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = findIndex(finalIntegrations, integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(client: Client, integrations: Integration[]): IntegrationIndex {\n const integrationIndex: IntegrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nexport function afterSetupIntegrations(client: Client, integrations: Integration[]): void {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration && integration.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nexport function setupIntegration(client: Client, integration: Integration, integrationIndex: IntegrationIndex): void {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && logger.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (installedIntegrations.indexOf(integration.name) === -1) {\n // eslint-disable-next-line deprecation/deprecation\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (client.on && typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) as typeof integration.preprocessEvent;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (client.addEventProcessor && typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) as typeof integration.processEvent;\n\n const processor = Object.assign((event: Event, hint: EventHint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current hub's client. */\nexport function addIntegration(integration: Integration): void {\n const client = getClient();\n\n if (!client || !client.addIntegration) {\n DEBUG_BUILD && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n// Polyfill for Array.findIndex(), which is not supported in ES5\nfunction findIndex(arr: T[], callback: (item: T) => boolean): number {\n for (let i = 0; i < arr.length; i++) {\n if (callback(arr[i]) === true) {\n return i;\n }\n }\n\n return -1;\n}\n\n/**\n * Convert a new integration function to the legacy class syntax.\n * In v8, we can remove this and instead export the integration functions directly.\n *\n * @deprecated This will be removed in v8!\n */\nexport function convertIntegrationFnToClass(\n name: string,\n fn: Fn,\n): IntegrationClass {\n return Object.assign(\n function ConvertedIntegration(...args: Parameters): Integration {\n return fn(...args);\n },\n { id: name },\n ) as unknown as IntegrationClass;\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nexport function defineIntegration(fn: Fn): (...args: Parameters) => IntegrationFnResult {\n return fn;\n}\n","/**\n * Portions 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 * @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'use strict'; // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n return 3.0 * aA1;\n} // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n} // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\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,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n var aGuessT = _aGuessT;\n\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n}\n\nexport default function bezier(mX1, mY1, mX2, mY2) {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n } // Precompute samples table\n\n\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\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 (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\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(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n } // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n\n if (x === 0) {\n return 0;\n }\n\n if (x === 1) {\n return 1;\n }\n\n return calcBezier(getTForX(x), mY1, mY2);\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 * \n */\n'use strict';\n\nimport _bezier from './bezier';\n\nvar _ease;\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\n\nvar Easing = /*#__PURE__*/function () {\n function Easing() {}\n\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n Easing.step0 = function step0(n) {\n return n > 0 ? 1 : 0;\n }\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n ;\n\n Easing.step1 = function step1(n) {\n return n >= 1 ? 1 : 0;\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 ;\n\n Easing.linear = function linear(t) {\n return t;\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 ;\n\n Easing.ease = function ease(t) {\n if (!_ease) {\n _ease = Easing.bezier(0.42, 0, 1, 1);\n }\n\n return _ease(t);\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 ;\n\n Easing.quad = function quad(t) {\n return t * t;\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 ;\n\n Easing.cubic = function cubic(t) {\n return t * t * t;\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 ;\n\n Easing.poly = function poly(n) {\n return function (t) {\n return Math.pow(t, n);\n };\n }\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n ;\n\n Easing.sin = function sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n ;\n\n Easing.circle = function circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n ;\n\n Easing.exp = function exp(t) {\n return Math.pow(2, 10 * (t - 1));\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 ;\n\n Easing.elastic = function elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n\n var p = bounciness * Math.PI;\n return function (t) {\n return 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 * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n ;\n\n Easing.back = function back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n\n return function (t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n ;\n\n Easing.bounce = function bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n\n return 7.5625 * _t * _t + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\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 ;\n\n Easing.bezier = function bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n /**\n * Runs an easing function forwards.\n */\n ;\n\n Easing.in = function _in(easing) {\n return easing;\n }\n /**\n * Runs an easing function backwards.\n */\n ;\n\n Easing.out = function out(easing) {\n return function (t) {\n return 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 ;\n\n Easing.inOut = function inOut(easing) {\n return function (t) {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n\n return 1 - easing((1 - t) * 2) / 2;\n };\n };\n\n return Easing;\n}();\n\nexport default Easing;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Firestore, loadBundle, namedQuery } from './export';\n\n/**\n * Prototype patches bundle loading to Firestore.\n */\nexport function registerBundle(instance: typeof Firestore): void {\n instance.prototype.loadBundle = loadBundle;\n instance.prototype.namedQuery = namedQuery;\n}\n\nregisterBundle(Firestore);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { ERROR_FACTORY, ErrorCode } from '../utils/errors';\nimport { isIndexedDBAvailable } from '@firebase/util';\nimport { consoleLogger } from '../utils/console_logger';\ndeclare global {\n interface Window {\n PerformanceObserver: typeof PerformanceObserver;\n // eslint-disable-next-line @typescript-eslint/ban-types\n perfMetrics?: { onFirstInputDelay: Function };\n }\n}\n\nlet apiInstance: Api | undefined;\nlet windowInstance: Window | undefined;\n\nexport type EntryType =\n | 'mark'\n | 'measure'\n | 'paint'\n | 'resource'\n | 'frame'\n | 'navigation';\n\n/**\n * This class holds a reference to various browser related objects injected by\n * set methods.\n */\nexport class Api {\n private readonly performance: Performance;\n /** PreformanceObserver constructor function. */\n private readonly PerformanceObserver: typeof PerformanceObserver;\n private readonly windowLocation: Location;\n // eslint-disable-next-line @typescript-eslint/ban-types\n readonly onFirstInputDelay?: Function;\n readonly localStorage?: Storage;\n readonly document: Document;\n readonly navigator: Navigator;\n\n constructor(readonly window?: Window) {\n if (!window) {\n throw ERROR_FACTORY.create(ErrorCode.NO_WINDOW);\n }\n this.performance = window.performance;\n this.PerformanceObserver = window.PerformanceObserver;\n this.windowLocation = window.location;\n this.navigator = window.navigator;\n this.document = window.document;\n if (this.navigator && this.navigator.cookieEnabled) {\n // If user blocks cookies on the browser, accessing localStorage will\n // throw an exception.\n this.localStorage = window.localStorage;\n }\n if (window.perfMetrics && window.perfMetrics.onFirstInputDelay) {\n this.onFirstInputDelay = window.perfMetrics.onFirstInputDelay;\n }\n }\n\n getUrl(): string {\n // Do not capture the string query part of url.\n return this.windowLocation.href.split('?')[0];\n }\n\n mark(name: string): void {\n if (!this.performance || !this.performance.mark) {\n return;\n }\n this.performance.mark(name);\n }\n\n measure(measureName: string, mark1: string, mark2: string): void {\n if (!this.performance || !this.performance.measure) {\n return;\n }\n this.performance.measure(measureName, mark1, mark2);\n }\n\n getEntriesByType(type: EntryType): PerformanceEntry[] {\n if (!this.performance || !this.performance.getEntriesByType) {\n return [];\n }\n return this.performance.getEntriesByType(type);\n }\n\n getEntriesByName(name: string): PerformanceEntry[] {\n if (!this.performance || !this.performance.getEntriesByName) {\n return [];\n }\n return this.performance.getEntriesByName(name);\n }\n\n getTimeOrigin(): number {\n // Polyfill the time origin with performance.timing.navigationStart.\n return (\n this.performance &&\n (this.performance.timeOrigin || this.performance.timing.navigationStart)\n );\n }\n\n requiredApisAvailable(): boolean {\n if (\n !fetch ||\n !Promise ||\n !this.navigator ||\n !this.navigator.cookieEnabled\n ) {\n consoleLogger.info(\n 'Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled.'\n );\n return false;\n }\n\n if (!isIndexedDBAvailable()) {\n consoleLogger.info('IndexedDB is not supported by current browswer');\n return false;\n }\n return true;\n }\n\n setupObserver(\n entryType: EntryType,\n callback: (entry: PerformanceEntry) => void\n ): void {\n if (!this.PerformanceObserver) {\n return;\n }\n const observer = new this.PerformanceObserver(list => {\n for (const entry of list.getEntries()) {\n // `entry` is a PerformanceEntry instance.\n callback(entry);\n }\n });\n\n // Start observing the entry types you care about.\n observer.observe({ entryTypes: [entryType] });\n }\n\n static getInstance(): Api {\n if (apiInstance === undefined) {\n apiInstance = new Api(windowInstance);\n }\n return apiInstance;\n }\n}\n\nexport function setupApi(window: Window): void {\n windowInstance = window;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { ErrorFactory } from '@firebase/util';\nimport { SERVICE, SERVICE_NAME } from '../constants';\n\nexport const enum ErrorCode {\n TRACE_STARTED_BEFORE = 'trace started',\n TRACE_STOPPED_BEFORE = 'trace stopped',\n NONPOSITIVE_TRACE_START_TIME = 'nonpositive trace startTime',\n NONPOSITIVE_TRACE_DURATION = 'nonpositive trace duration',\n NO_WINDOW = 'no window',\n NO_APP_ID = 'no app id',\n NO_PROJECT_ID = 'no project id',\n NO_API_KEY = 'no api key',\n INVALID_CC_LOG = 'invalid cc log',\n FB_NOT_DEFAULT = 'FB not default',\n RC_NOT_OK = 'RC response not ok',\n INVALID_ATTRIBUTE_NAME = 'invalid attribute name',\n INVALID_ATTRIBUTE_VALUE = 'invalid attribute value',\n INVALID_CUSTOM_METRIC_NAME = 'invalid custom metric name',\n INVALID_STRING_MERGER_PARAMETER = 'invalid String merger input'\n}\n\nconst ERROR_DESCRIPTION_MAP: { readonly [key in ErrorCode]: string } = {\n [ErrorCode.TRACE_STARTED_BEFORE]: 'Trace {$traceName} was started before.',\n [ErrorCode.TRACE_STOPPED_BEFORE]: 'Trace {$traceName} is not running.',\n [ErrorCode.NONPOSITIVE_TRACE_START_TIME]:\n 'Trace {$traceName} startTime should be positive.',\n [ErrorCode.NONPOSITIVE_TRACE_DURATION]:\n 'Trace {$traceName} duration should be positive.',\n [ErrorCode.NO_WINDOW]: 'Window is not available.',\n [ErrorCode.NO_APP_ID]: 'App id is not available.',\n [ErrorCode.NO_PROJECT_ID]: 'Project id is not available.',\n [ErrorCode.NO_API_KEY]: 'Api key is not available.',\n [ErrorCode.INVALID_CC_LOG]: 'Attempted to queue invalid cc event',\n [ErrorCode.FB_NOT_DEFAULT]:\n 'Performance can only start when Firebase app instance is the default one.',\n [ErrorCode.RC_NOT_OK]: 'RC response is not ok',\n [ErrorCode.INVALID_ATTRIBUTE_NAME]:\n 'Attribute name {$attributeName} is invalid.',\n [ErrorCode.INVALID_ATTRIBUTE_VALUE]:\n 'Attribute value {$attributeValue} is invalid.',\n [ErrorCode.INVALID_CUSTOM_METRIC_NAME]:\n 'Custom metric name {$customMetricName} is invalid',\n [ErrorCode.INVALID_STRING_MERGER_PARAMETER]:\n 'Input for String merger is invalid, contact support team to resolve.'\n};\n\ninterface ErrorParams {\n [ErrorCode.TRACE_STARTED_BEFORE]: { traceName: string };\n [ErrorCode.TRACE_STOPPED_BEFORE]: { traceName: string };\n [ErrorCode.NONPOSITIVE_TRACE_START_TIME]: { traceName: string };\n [ErrorCode.NONPOSITIVE_TRACE_DURATION]: { traceName: string };\n [ErrorCode.INVALID_ATTRIBUTE_NAME]: { attributeName: string };\n [ErrorCode.INVALID_ATTRIBUTE_VALUE]: { attributeValue: string };\n [ErrorCode.INVALID_CUSTOM_METRIC_NAME]: { customMetricName: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n SERVICE,\n SERVICE_NAME,\n ERROR_DESCRIPTION_MAP\n);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Logger, LogLevel } from '@firebase/logger';\nimport { SERVICE_NAME } from '../constants';\n\nexport const consoleLogger = new Logger(SERVICE_NAME);\nconsoleLogger.logLevel = LogLevel.INFO;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { FirebaseApp } from '@firebase/app-types';\nimport { ERROR_FACTORY, ErrorCode } from '../utils/errors';\nimport { FirebaseInstallations } from '@firebase/installations-types';\nimport { mergeStrings } from '../utils/string_merger';\n\nlet settingsServiceInstance: SettingsService | undefined;\n\nexport class SettingsService {\n // The variable which controls logging of automatic traces and HTTP/S network monitoring.\n instrumentationEnabled = true;\n\n // The variable which controls logging of custom traces.\n dataCollectionEnabled = true;\n\n // Configuration flags set through remote config.\n loggingEnabled = false;\n // Sampling rate between 0 and 1.\n tracesSamplingRate = 1;\n networkRequestsSamplingRate = 1;\n\n // Address of logging service.\n logEndPointUrl =\n 'https://firebaselogging.googleapis.com/v0cc/log?format=json_proto';\n // Performance event transport endpoint URL which should be compatible with proto3.\n // New Address for transport service, not configurable via Remote Config.\n flTransportEndpointUrl = mergeStrings(\n 'hts/frbslgigp.ogepscmv/ieo/eaylg',\n 'tp:/ieaeogn-agolai.o/1frlglgc/o'\n );\n\n transportKey = mergeStrings('AzSC8r6ReiGqFMyfvgow', 'Iayx0u-XT3vksVM-pIV');\n\n // Source type for performance event logs.\n logSource = 462;\n\n // Flags which control per session logging of traces and network requests.\n logTraceAfterSampling = false;\n logNetworkAfterSampling = false;\n\n // TTL of config retrieved from remote config in hours.\n configTimeToLive = 12;\n\n firebaseAppInstance!: FirebaseApp;\n\n installationsService!: FirebaseInstallations;\n\n getAppId(): string {\n const appId =\n this.firebaseAppInstance &&\n this.firebaseAppInstance.options &&\n this.firebaseAppInstance.options.appId;\n if (!appId) {\n throw ERROR_FACTORY.create(ErrorCode.NO_APP_ID);\n }\n return appId;\n }\n\n getProjectId(): string {\n const projectId =\n this.firebaseAppInstance &&\n this.firebaseAppInstance.options &&\n this.firebaseAppInstance.options.projectId;\n if (!projectId) {\n throw ERROR_FACTORY.create(ErrorCode.NO_PROJECT_ID);\n }\n return projectId;\n }\n\n getApiKey(): string {\n const apiKey =\n this.firebaseAppInstance &&\n this.firebaseAppInstance.options &&\n this.firebaseAppInstance.options.apiKey;\n if (!apiKey) {\n throw ERROR_FACTORY.create(ErrorCode.NO_API_KEY);\n }\n return apiKey;\n }\n\n getFlTransportFullUrl(): string {\n return this.flTransportEndpointUrl.concat('?key=', this.transportKey);\n }\n\n static getInstance(): SettingsService {\n if (settingsServiceInstance === undefined) {\n settingsServiceInstance = new SettingsService();\n }\n return settingsServiceInstance;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { ERROR_FACTORY, ErrorCode } from './errors';\n\nexport function mergeStrings(part1: string, part2: string): string {\n const sizeDiff = part1.length - part2.length;\n if (sizeDiff < 0 || sizeDiff > 1) {\n throw ERROR_FACTORY.create(ErrorCode.INVALID_STRING_MERGER_PARAMETER);\n }\n\n const resultArray = [];\n for (let i = 0; i < part1.length; i++) {\n resultArray.push(part1.charAt(i));\n if (part2.length > i) {\n resultArray.push(part2.charAt(i));\n }\n }\n\n return resultArray.join('');\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nimport { SettingsService } from './settings_service';\n\nlet iid: string | undefined;\nlet authToken: string | undefined;\n\nexport function getIidPromise(): Promise {\n const iidPromise = SettingsService.getInstance().installationsService.getId();\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n iidPromise.then((iidVal: string) => {\n iid = iidVal;\n });\n return iidPromise;\n}\n\n// This method should be used after the iid is retrieved by getIidPromise method.\nexport function getIid(): string | undefined {\n return iid;\n}\n\nexport function getAuthTokenPromise(): Promise {\n const authTokenPromise = SettingsService.getInstance().installationsService.getToken();\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n authTokenPromise.then((authTokenVal: string) => {\n authToken = authTokenVal;\n });\n return authTokenPromise;\n}\n\nexport function getAuthenticationToken(): string | undefined {\n return authToken;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Api } from '../services/api_service';\n\n// The values and orders of the following enums should not be changed.\nconst enum ServiceWorkerStatus {\n UNKNOWN = 0,\n UNSUPPORTED = 1,\n CONTROLLED = 2,\n UNCONTROLLED = 3\n}\n\nexport enum VisibilityState {\n UNKNOWN = 0,\n VISIBLE = 1,\n HIDDEN = 2\n}\n\nconst enum EffectiveConnectionType {\n UNKNOWN = 0,\n CONNECTION_SLOW_2G = 1,\n CONNECTION_2G = 2,\n CONNECTION_3G = 3,\n CONNECTION_4G = 4\n}\n\n/**\n * NetworkInformation\n *\n * ref: https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation\n */\ninterface NetworkInformation {\n readonly effectiveType?: 'slow-2g' | '2g' | '3g' | '4g';\n}\n\ninterface NavigatorWithConnection extends Navigator {\n readonly connection: NetworkInformation;\n}\n\nconst RESERVED_ATTRIBUTE_PREFIXES = ['firebase_', 'google_', 'ga_'];\nconst ATTRIBUTE_FORMAT_REGEX = new RegExp('^[a-zA-Z]\\\\w*$');\nconst MAX_ATTRIBUTE_NAME_LENGTH = 40;\nconst MAX_ATTRIBUTE_VALUE_LENGTH = 100;\n\nexport function getServiceWorkerStatus(): ServiceWorkerStatus {\n const navigator = Api.getInstance().navigator;\n if ('serviceWorker' in navigator) {\n if (navigator.serviceWorker.controller) {\n return ServiceWorkerStatus.CONTROLLED;\n } else {\n return ServiceWorkerStatus.UNCONTROLLED;\n }\n } else {\n return ServiceWorkerStatus.UNSUPPORTED;\n }\n}\n\nexport function getVisibilityState(): VisibilityState {\n const document = Api.getInstance().document;\n const visibilityState = document.visibilityState;\n switch (visibilityState) {\n case 'visible':\n return VisibilityState.VISIBLE;\n case 'hidden':\n return VisibilityState.HIDDEN;\n default:\n return VisibilityState.UNKNOWN;\n }\n}\n\nexport function getEffectiveConnectionType(): EffectiveConnectionType {\n const navigator = Api.getInstance().navigator;\n const navigatorConnection = (navigator as NavigatorWithConnection).connection;\n const effectiveType =\n navigatorConnection && navigatorConnection.effectiveType;\n switch (effectiveType) {\n case 'slow-2g':\n return EffectiveConnectionType.CONNECTION_SLOW_2G;\n case '2g':\n return EffectiveConnectionType.CONNECTION_2G;\n case '3g':\n return EffectiveConnectionType.CONNECTION_3G;\n case '4g':\n return EffectiveConnectionType.CONNECTION_4G;\n default:\n return EffectiveConnectionType.UNKNOWN;\n }\n}\n\nexport function isValidCustomAttributeName(name: string): boolean {\n if (name.length === 0 || name.length > MAX_ATTRIBUTE_NAME_LENGTH) {\n return false;\n }\n const matchesReservedPrefix = RESERVED_ATTRIBUTE_PREFIXES.some(prefix =>\n name.startsWith(prefix)\n );\n return !matchesReservedPrefix && !!name.match(ATTRIBUTE_FORMAT_REGEX);\n}\n\nexport function isValidCustomAttributeValue(value: string): boolean {\n return value.length !== 0 && value.length <= MAX_ATTRIBUTE_VALUE_LENGTH;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport {\n CONFIG_EXPIRY_LOCAL_STORAGE_KEY,\n CONFIG_LOCAL_STORAGE_KEY,\n SDK_VERSION\n} from '../constants';\nimport { consoleLogger } from '../utils/console_logger';\nimport { ERROR_FACTORY, ErrorCode } from '../utils/errors';\n\nimport { Api } from './api_service';\nimport { getAuthTokenPromise } from './iid_service';\nimport { SettingsService } from './settings_service';\n\nconst REMOTE_CONFIG_SDK_VERSION = '0.0.1';\n\ninterface SecondaryConfig {\n loggingEnabled?: boolean;\n logSource?: number;\n logEndPointUrl?: string;\n transportKey?: string;\n tracesSamplingRate?: number;\n networkRequestsSamplingRate?: number;\n}\n\n// These values will be used if the remote config object is successfully\n// retrieved, but the template does not have these fields.\nconst DEFAULT_CONFIGS: SecondaryConfig = {\n loggingEnabled: true\n};\n\n/* eslint-disable camelcase */\ninterface RemoteConfigTemplate {\n fpr_enabled?: string;\n fpr_log_source?: string;\n fpr_log_endpoint_url?: string;\n fpr_log_transport_key?: string;\n fpr_log_transport_web_percent?: string;\n fpr_vc_network_request_sampling_rate?: string;\n fpr_vc_trace_sampling_rate?: string;\n fpr_vc_session_sampling_rate?: string;\n}\n/* eslint-enable camelcase */\n\ninterface RemoteConfigResponse {\n entries?: RemoteConfigTemplate;\n state?: string;\n}\n\nconst FIS_AUTH_PREFIX = 'FIREBASE_INSTALLATIONS_AUTH';\n\nexport function getConfig(iid: string): Promise {\n const config = getStoredConfig();\n if (config) {\n processConfig(config);\n return Promise.resolve();\n }\n\n return getRemoteConfig(iid)\n .then(processConfig)\n .then(\n config => storeConfig(config),\n /** Do nothing for error, use defaults set in settings service. */\n () => {}\n );\n}\n\nfunction getStoredConfig(): RemoteConfigResponse | undefined {\n const localStorage = Api.getInstance().localStorage;\n if (!localStorage) {\n return;\n }\n const expiryString = localStorage.getItem(CONFIG_EXPIRY_LOCAL_STORAGE_KEY);\n if (!expiryString || !configValid(expiryString)) {\n return;\n }\n\n const configStringified = localStorage.getItem(CONFIG_LOCAL_STORAGE_KEY);\n if (!configStringified) {\n return;\n }\n try {\n const configResponse: RemoteConfigResponse = JSON.parse(configStringified);\n return configResponse;\n } catch {\n return;\n }\n}\n\nfunction storeConfig(config: RemoteConfigResponse | undefined): void {\n const localStorage = Api.getInstance().localStorage;\n if (!config || !localStorage) {\n return;\n }\n\n localStorage.setItem(CONFIG_LOCAL_STORAGE_KEY, JSON.stringify(config));\n localStorage.setItem(\n CONFIG_EXPIRY_LOCAL_STORAGE_KEY,\n String(\n Date.now() +\n SettingsService.getInstance().configTimeToLive * 60 * 60 * 1000\n )\n );\n}\n\nconst COULD_NOT_GET_CONFIG_MSG =\n 'Could not fetch config, will use default configs';\n\nfunction getRemoteConfig(\n iid: string\n): Promise {\n // Perf needs auth token only to retrieve remote config.\n return getAuthTokenPromise()\n .then(authToken => {\n const projectId = SettingsService.getInstance().getProjectId();\n const configEndPoint = `https://firebaseremoteconfig.googleapis.com/v1/projects/${projectId}/namespaces/fireperf:fetch?key=${SettingsService.getInstance().getApiKey()}`;\n const request = new Request(configEndPoint, {\n method: 'POST',\n headers: { Authorization: `${FIS_AUTH_PREFIX} ${authToken}` },\n /* eslint-disable camelcase */\n body: JSON.stringify({\n app_instance_id: iid,\n app_instance_id_token: authToken,\n app_id: SettingsService.getInstance().getAppId(),\n app_version: SDK_VERSION,\n sdk_version: REMOTE_CONFIG_SDK_VERSION\n })\n /* eslint-enable camelcase */\n });\n return fetch(request).then(response => {\n if (response.ok) {\n return response.json() as RemoteConfigResponse;\n }\n // In case response is not ok. This will be caught by catch.\n throw ERROR_FACTORY.create(ErrorCode.RC_NOT_OK);\n });\n })\n .catch(() => {\n consoleLogger.info(COULD_NOT_GET_CONFIG_MSG);\n return undefined;\n });\n}\n\n/**\n * Processes config coming either from calling RC or from local storage.\n * This method only runs if call is successful or config in storage\n * is valid.\n */\nfunction processConfig(\n config?: RemoteConfigResponse\n): RemoteConfigResponse | undefined {\n if (!config) {\n return config;\n }\n const settingsServiceInstance = SettingsService.getInstance();\n const entries = config.entries || {};\n if (entries.fpr_enabled !== undefined) {\n // TODO: Change the assignment of loggingEnabled once the received type is\n // known.\n settingsServiceInstance.loggingEnabled =\n String(entries.fpr_enabled) === 'true';\n } else if (DEFAULT_CONFIGS.loggingEnabled !== undefined) {\n // Config retrieved successfully, but there is no fpr_enabled in template.\n // Use secondary configs value.\n settingsServiceInstance.loggingEnabled = DEFAULT_CONFIGS.loggingEnabled;\n }\n if (entries.fpr_log_source) {\n settingsServiceInstance.logSource = Number(entries.fpr_log_source);\n } else if (DEFAULT_CONFIGS.logSource) {\n settingsServiceInstance.logSource = DEFAULT_CONFIGS.logSource;\n }\n\n if (entries.fpr_log_endpoint_url) {\n settingsServiceInstance.logEndPointUrl = entries.fpr_log_endpoint_url;\n } else if (DEFAULT_CONFIGS.logEndPointUrl) {\n settingsServiceInstance.logEndPointUrl = DEFAULT_CONFIGS.logEndPointUrl;\n }\n\n // Key from Remote Config has to be non-empty string, otherwsie use local value.\n if (entries.fpr_log_transport_key) {\n settingsServiceInstance.transportKey = entries.fpr_log_transport_key;\n } else if (DEFAULT_CONFIGS.transportKey) {\n settingsServiceInstance.transportKey = DEFAULT_CONFIGS.transportKey;\n }\n\n if (entries.fpr_vc_network_request_sampling_rate !== undefined) {\n settingsServiceInstance.networkRequestsSamplingRate = Number(\n entries.fpr_vc_network_request_sampling_rate\n );\n } else if (DEFAULT_CONFIGS.networkRequestsSamplingRate !== undefined) {\n settingsServiceInstance.networkRequestsSamplingRate =\n DEFAULT_CONFIGS.networkRequestsSamplingRate;\n }\n if (entries.fpr_vc_trace_sampling_rate !== undefined) {\n settingsServiceInstance.tracesSamplingRate = Number(\n entries.fpr_vc_trace_sampling_rate\n );\n } else if (DEFAULT_CONFIGS.tracesSamplingRate !== undefined) {\n settingsServiceInstance.tracesSamplingRate =\n DEFAULT_CONFIGS.tracesSamplingRate;\n }\n // Set the per session trace and network logging flags.\n settingsServiceInstance.logTraceAfterSampling = shouldLogAfterSampling(\n settingsServiceInstance.tracesSamplingRate\n );\n settingsServiceInstance.logNetworkAfterSampling = shouldLogAfterSampling(\n settingsServiceInstance.networkRequestsSamplingRate\n );\n return config;\n}\n\nfunction configValid(expiry: string): boolean {\n return Number(expiry) > Date.now();\n}\n\nfunction shouldLogAfterSampling(samplingRate: number): boolean {\n return Math.random() <= samplingRate;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { getIidPromise } from './iid_service';\nimport { getConfig } from './remote_config_service';\nimport { Api } from './api_service';\n\nconst enum InitializationStatus {\n notInitialized = 1,\n initializationPending,\n initialized\n}\n\nlet initializationStatus = InitializationStatus.notInitialized;\n\nlet initializationPromise: Promise | undefined;\n\nexport function getInitializationPromise(): Promise {\n initializationStatus = InitializationStatus.initializationPending;\n\n initializationPromise = initializationPromise || initializePerf();\n\n return initializationPromise;\n}\n\nexport function isPerfInitialized(): boolean {\n return initializationStatus === InitializationStatus.initialized;\n}\n\nfunction initializePerf(): Promise {\n return getDocumentReadyComplete()\n .then(() => getIidPromise())\n .then(iid => getConfig(iid))\n .then(\n () => changeInitializationStatus(),\n () => changeInitializationStatus()\n );\n}\n\n/**\n * Returns a promise which resolves whenever the document readystate is complete or\n * immediately if it is called after page load complete.\n */\nfunction getDocumentReadyComplete(): Promise {\n const document = Api.getInstance().document;\n return new Promise(resolve => {\n if (document && document.readyState !== 'complete') {\n const handler = (): void => {\n if (document.readyState === 'complete') {\n document.removeEventListener('readystatechange', handler);\n resolve();\n }\n };\n document.addEventListener('readystatechange', handler);\n } else {\n resolve();\n }\n });\n}\n\nfunction changeInitializationStatus(): void {\n initializationStatus = InitializationStatus.initialized;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { SettingsService } from './settings_service';\nimport { ERROR_FACTORY, ErrorCode } from '../utils/errors';\nimport { consoleLogger } from '../utils/console_logger';\n\nconst DEFAULT_SEND_INTERVAL_MS = 10 * 1000;\nconst INITIAL_SEND_TIME_DELAY_MS = 5.5 * 1000;\n// If end point does not work, the call will be tried for these many times.\nconst DEFAULT_REMAINING_TRIES = 3;\nconst MAX_EVENT_COUNT_PER_REQUEST = 1000;\nlet remainingTries = DEFAULT_REMAINING_TRIES;\n\ninterface LogResponseDetails {\n responseAction?: string;\n}\n\ninterface BatchEvent {\n message: string;\n eventTime: number;\n}\n\n/* eslint-disable camelcase */\n// CC/Fl accepted log format.\ninterface TransportBatchLogFormat {\n request_time_ms: string;\n client_info: ClientInfo;\n log_source: number;\n log_event: Log[];\n}\n\ninterface ClientInfo {\n client_type: number;\n js_client_info: {};\n}\n\ninterface Log {\n source_extension_json_proto3: string;\n event_time_ms: string;\n}\n/* eslint-enable camelcase */\n\nlet queue: BatchEvent[] = [];\n\nlet isTransportSetup: boolean = false;\n\nexport function setupTransportService(): void {\n if (!isTransportSetup) {\n processQueue(INITIAL_SEND_TIME_DELAY_MS);\n isTransportSetup = true;\n }\n}\n\n/**\n * Utilized by testing to clean up message queue and un-initialize transport service.\n */\nexport function resetTransportService(): void {\n isTransportSetup = false;\n queue = [];\n}\n\nfunction processQueue(timeOffset: number): void {\n setTimeout(() => {\n // If there is no remainingTries left, stop retrying.\n if (remainingTries === 0) {\n return;\n }\n\n // If there are no events to process, wait for DEFAULT_SEND_INTERVAL_MS and try again.\n if (!queue.length) {\n return processQueue(DEFAULT_SEND_INTERVAL_MS);\n }\n\n dispatchQueueEvents();\n }, timeOffset);\n}\n\nfunction dispatchQueueEvents(): void {\n // Extract events up to the maximum cap of single logRequest from top of \"official queue\".\n // The staged events will be used for current logRequest attempt, remaining events will be kept\n // for next attempt.\n const staged = queue.splice(0, MAX_EVENT_COUNT_PER_REQUEST);\n\n /* eslint-disable camelcase */\n // We will pass the JSON serialized event to the backend.\n const log_event: Log[] = staged.map(evt => ({\n source_extension_json_proto3: evt.message,\n event_time_ms: String(evt.eventTime)\n }));\n\n const data: TransportBatchLogFormat = {\n request_time_ms: String(Date.now()),\n client_info: {\n client_type: 1, // 1 is JS\n js_client_info: {}\n },\n log_source: SettingsService.getInstance().logSource,\n log_event\n };\n /* eslint-enable camelcase */\n\n sendEventsToFl(data, staged).catch(() => {\n // If the request fails for some reason, add the events that were attempted\n // back to the primary queue to retry later.\n queue = [...staged, ...queue];\n remainingTries--;\n consoleLogger.info(`Tries left: ${remainingTries}.`);\n processQueue(DEFAULT_SEND_INTERVAL_MS);\n });\n}\n\nfunction sendEventsToFl(\n data: TransportBatchLogFormat,\n staged: BatchEvent[]\n): Promise {\n return postToFlEndpoint(data)\n .then(res => {\n if (!res.ok) {\n consoleLogger.info('Call to Firebase backend failed.');\n }\n return res.json();\n })\n .then(res => {\n // Find the next call wait time from the response.\n const transportWait = Number(res.nextRequestWaitMillis);\n let requestOffset = DEFAULT_SEND_INTERVAL_MS;\n if (!isNaN(transportWait)) {\n requestOffset = Math.max(transportWait, requestOffset);\n }\n\n // Delete request if response include RESPONSE_ACTION_UNKNOWN or DELETE_REQUEST action.\n // Otherwise, retry request using normal scheduling if response include RETRY_REQUEST_LATER.\n const logResponseDetails: LogResponseDetails[] = res.logResponseDetails;\n if (\n Array.isArray(logResponseDetails) &&\n logResponseDetails.length > 0 &&\n logResponseDetails[0].responseAction === 'RETRY_REQUEST_LATER'\n ) {\n queue = [...staged, ...queue];\n consoleLogger.info(`Retry transport request later.`);\n }\n\n remainingTries = DEFAULT_REMAINING_TRIES;\n // Schedule the next process.\n processQueue(requestOffset);\n });\n}\n\nfunction postToFlEndpoint(data: TransportBatchLogFormat): Promise {\n const flTransportFullUrl = SettingsService.getInstance().getFlTransportFullUrl();\n return fetch(flTransportFullUrl, {\n method: 'POST',\n body: JSON.stringify(data)\n });\n}\n\nfunction addToQueue(evt: BatchEvent): void {\n if (!evt.eventTime || !evt.message) {\n throw ERROR_FACTORY.create(ErrorCode.INVALID_CC_LOG);\n }\n // Add the new event to the queue.\n queue = [...queue, evt];\n}\n\n/** Log handler for cc service to send the performance logs to the server. */\nexport function transportHandler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n serializer: (...args: any[]) => string\n): (...args: unknown[]) => void {\n return (...args) => {\n const message = serializer(...args);\n addToQueue({\n message,\n eventTime: Date.now()\n });\n };\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { getIid } from './iid_service';\nimport { NetworkRequest } from '../resources/network_request';\nimport { Trace } from '../resources/trace';\nimport { Api } from './api_service';\nimport { SettingsService } from './settings_service';\nimport {\n getServiceWorkerStatus,\n getVisibilityState,\n VisibilityState,\n getEffectiveConnectionType\n} from '../utils/attributes_utils';\nimport {\n isPerfInitialized,\n getInitializationPromise\n} from './initialization_service';\nimport { transportHandler } from './transport_service';\nimport { SDK_VERSION } from '../constants';\n\nconst enum ResourceType {\n NetworkRequest,\n Trace\n}\n\n/* eslint-disable camelcase */\ninterface ApplicationInfo {\n google_app_id: string;\n app_instance_id?: string;\n web_app_info: WebAppInfo;\n application_process_state: number;\n}\n\ninterface WebAppInfo {\n sdk_version: string;\n page_url: string;\n service_worker_status: number;\n visibility_state: number;\n effective_connection_type: number;\n}\n\ninterface PerfNetworkLog {\n application_info: ApplicationInfo;\n network_request_metric: NetworkRequestMetric;\n}\n\ninterface PerfTraceLog {\n application_info: ApplicationInfo;\n trace_metric: TraceMetric;\n}\n\ninterface NetworkRequestMetric {\n url: string;\n http_method: number;\n http_response_code: number;\n response_payload_bytes?: number;\n client_start_time_us?: number;\n time_to_response_initiated_us?: number;\n time_to_response_completed_us?: number;\n}\n\ninterface TraceMetric {\n name: string;\n is_auto: boolean;\n client_start_time_us: number;\n duration_us: number;\n counters?: { [key: string]: number };\n custom_attributes?: { [key: string]: string };\n}\n\n/* eslint-enble camelcase */\n\nlet logger: (\n resource: NetworkRequest | Trace,\n resourceType: ResourceType\n) => void | undefined;\n// This method is not called before initialization.\nfunction sendLog(\n resource: NetworkRequest | Trace,\n resourceType: ResourceType\n): void {\n if (!logger) {\n logger = transportHandler(serializer);\n }\n logger(resource, resourceType);\n}\n\nexport function logTrace(trace: Trace): void {\n const settingsService = SettingsService.getInstance();\n // Do not log if trace is auto generated and instrumentation is disabled.\n if (!settingsService.instrumentationEnabled && trace.isAuto) {\n return;\n }\n // Do not log if trace is custom and data collection is disabled.\n if (!settingsService.dataCollectionEnabled && !trace.isAuto) {\n return;\n }\n // Do not log if required apis are not available.\n if (!Api.getInstance().requiredApisAvailable()) {\n return;\n }\n\n // Only log the page load auto traces if page is visible.\n if (trace.isAuto && getVisibilityState() !== VisibilityState.VISIBLE) {\n return;\n }\n\n if (isPerfInitialized()) {\n sendTraceLog(trace);\n } else {\n // Custom traces can be used before the initialization but logging\n // should wait until after.\n\n getInitializationPromise().then(\n () => sendTraceLog(trace),\n () => sendTraceLog(trace)\n );\n }\n}\n\nfunction sendTraceLog(trace: Trace): void {\n if (!getIid()) {\n return;\n }\n\n const settingsService = SettingsService.getInstance();\n if (\n !settingsService.loggingEnabled ||\n !settingsService.logTraceAfterSampling\n ) {\n return;\n }\n\n setTimeout(() => sendLog(trace, ResourceType.Trace), 0);\n}\n\nexport function logNetworkRequest(networkRequest: NetworkRequest): void {\n const settingsService = SettingsService.getInstance();\n // Do not log network requests if instrumentation is disabled.\n if (!settingsService.instrumentationEnabled) {\n return;\n }\n\n // Do not log the js sdk's call to transport service domain to avoid unnecessary cycle.\n // Need to blacklist both old and new endpoints to avoid migration gap.\n const networkRequestUrl = networkRequest.url;\n\n // Blacklist old log endpoint and new transport endpoint.\n // Because Performance SDK doesn't instrument requests sent from SDK itself.\n const logEndpointUrl = settingsService.logEndPointUrl.split('?')[0];\n const flEndpointUrl = settingsService.flTransportEndpointUrl.split('?')[0];\n if (\n networkRequestUrl === logEndpointUrl ||\n networkRequestUrl === flEndpointUrl\n ) {\n return;\n }\n\n if (\n !settingsService.loggingEnabled ||\n !settingsService.logNetworkAfterSampling\n ) {\n return;\n }\n\n setTimeout(() => sendLog(networkRequest, ResourceType.NetworkRequest), 0);\n}\n\nfunction serializer(\n resource: NetworkRequest | Trace,\n resourceType: ResourceType\n): string {\n if (resourceType === ResourceType.NetworkRequest) {\n return serializeNetworkRequest(resource as NetworkRequest);\n }\n return serializeTrace(resource as Trace);\n}\n\nfunction serializeNetworkRequest(networkRequest: NetworkRequest): string {\n const networkRequestMetric: NetworkRequestMetric = {\n url: networkRequest.url,\n http_method: networkRequest.httpMethod || 0,\n http_response_code: 200,\n response_payload_bytes: networkRequest.responsePayloadBytes,\n client_start_time_us: networkRequest.startTimeUs,\n time_to_response_initiated_us: networkRequest.timeToResponseInitiatedUs,\n time_to_response_completed_us: networkRequest.timeToResponseCompletedUs\n };\n const perfMetric: PerfNetworkLog = {\n application_info: getApplicationInfo(),\n network_request_metric: networkRequestMetric\n };\n return JSON.stringify(perfMetric);\n}\n\nfunction serializeTrace(trace: Trace): string {\n const traceMetric: TraceMetric = {\n name: trace.name,\n is_auto: trace.isAuto,\n client_start_time_us: trace.startTimeUs,\n duration_us: trace.durationUs\n };\n\n if (Object.keys(trace.counters).length !== 0) {\n traceMetric.counters = trace.counters;\n }\n const customAttributes = trace.getAttributes();\n if (Object.keys(customAttributes).length !== 0) {\n traceMetric.custom_attributes = customAttributes;\n }\n\n const perfMetric: PerfTraceLog = {\n application_info: getApplicationInfo(),\n trace_metric: traceMetric\n };\n return JSON.stringify(perfMetric);\n}\n\nfunction getApplicationInfo(): ApplicationInfo {\n return {\n google_app_id: SettingsService.getInstance().getAppId(),\n app_instance_id: getIid(),\n web_app_info: {\n sdk_version: SDK_VERSION,\n page_url: Api.getInstance().getUrl(),\n service_worker_status: getServiceWorkerStatus(),\n visibility_state: getVisibilityState(),\n effective_connection_type: getEffectiveConnectionType()\n },\n application_process_state: 0\n };\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport {\n FIRST_PAINT_COUNTER_NAME,\n FIRST_CONTENTFUL_PAINT_COUNTER_NAME,\n FIRST_INPUT_DELAY_COUNTER_NAME,\n OOB_TRACE_PAGE_LOAD_PREFIX\n} from '../constants';\nimport { consoleLogger } from '../utils/console_logger';\n\nconst MAX_METRIC_NAME_LENGTH = 100;\nconst RESERVED_AUTO_PREFIX = '_';\nconst oobMetrics = [\n FIRST_PAINT_COUNTER_NAME,\n FIRST_CONTENTFUL_PAINT_COUNTER_NAME,\n FIRST_INPUT_DELAY_COUNTER_NAME\n];\n\n/**\n * Returns true if the metric is custom and does not start with reserved prefix, or if\n * the metric is one of out of the box page load trace metrics.\n */\nexport function isValidMetricName(name: string, traceName?: string): boolean {\n if (name.length === 0 || name.length > MAX_METRIC_NAME_LENGTH) {\n return false;\n }\n return (\n (traceName &&\n traceName.startsWith(OOB_TRACE_PAGE_LOAD_PREFIX) &&\n oobMetrics.indexOf(name) > -1) ||\n !name.startsWith(RESERVED_AUTO_PREFIX)\n );\n}\n\n/**\n * Converts the provided value to an integer value to be used in case of a metric.\n * @param providedValue Provided number value of the metric that needs to be converted to an integer.\n *\n * @returns Converted integer number to be set for the metric.\n */\nexport function convertMetricValueToInteger(providedValue: number): number {\n const valueAsInteger: number = Math.floor(providedValue);\n if (valueAsInteger < providedValue) {\n consoleLogger.info(\n `Metric value should be an Integer, setting the value as : ${valueAsInteger}.`\n );\n }\n return valueAsInteger;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport {\n TRACE_START_MARK_PREFIX,\n TRACE_STOP_MARK_PREFIX,\n TRACE_MEASURE_PREFIX,\n OOB_TRACE_PAGE_LOAD_PREFIX,\n FIRST_PAINT_COUNTER_NAME,\n FIRST_CONTENTFUL_PAINT_COUNTER_NAME,\n FIRST_INPUT_DELAY_COUNTER_NAME\n} from '../constants';\nimport { Api } from '../services/api_service';\nimport { logTrace } from '../services/perf_logger';\nimport { ERROR_FACTORY, ErrorCode } from '../utils/errors';\nimport {\n isValidCustomAttributeName,\n isValidCustomAttributeValue\n} from '../utils/attributes_utils';\nimport {\n isValidMetricName,\n convertMetricValueToInteger\n} from '../utils/metric_utils';\nimport { PerformanceTrace } from '@firebase/performance-types';\n\nconst enum TraceState {\n UNINITIALIZED = 1,\n RUNNING,\n TERMINATED\n}\n\nexport class Trace implements PerformanceTrace {\n private state: TraceState = TraceState.UNINITIALIZED;\n startTimeUs!: number;\n durationUs!: number;\n private customAttributes: { [key: string]: string } = {};\n counters: { [counterName: string]: number } = {};\n private api = Api.getInstance();\n private randomId = Math.floor(Math.random() * 1000000);\n private traceStartMark!: string;\n private traceStopMark!: string;\n private traceMeasure!: string;\n\n /**\n * @param name The name of the trace.\n * @param isAuto If the trace is auto-instrumented.\n * @param traceMeasureName The name of the measure marker in user timing specification. This field\n * is only set when the trace is built for logging when the user directly uses the user timing\n * api (performance.mark and performance.measure).\n */\n constructor(\n readonly name: string,\n readonly isAuto = false,\n traceMeasureName?: string\n ) {\n if (!this.isAuto) {\n this.traceStartMark = `${TRACE_START_MARK_PREFIX}-${this.randomId}-${this.name}`;\n this.traceStopMark = `${TRACE_STOP_MARK_PREFIX}-${this.randomId}-${this.name}`;\n this.traceMeasure =\n traceMeasureName ||\n `${TRACE_MEASURE_PREFIX}-${this.randomId}-${this.name}`;\n\n if (traceMeasureName) {\n // For the case of direct user timing traces, no start stop will happen. The measure object\n // is already available.\n this.calculateTraceMetrics();\n }\n }\n }\n\n /**\n * Starts a trace. The measurement of the duration starts at this point.\n */\n start(): void {\n if (this.state !== TraceState.UNINITIALIZED) {\n throw ERROR_FACTORY.create(ErrorCode.TRACE_STARTED_BEFORE, {\n traceName: this.name\n });\n }\n this.api.mark(this.traceStartMark);\n this.state = TraceState.RUNNING;\n }\n\n /**\n * Stops the trace. The measurement of the duration of the trace stops at this point and trace\n * is logged.\n */\n stop(): void {\n if (this.state !== TraceState.RUNNING) {\n throw ERROR_FACTORY.create(ErrorCode.TRACE_STOPPED_BEFORE, {\n traceName: this.name\n });\n }\n this.state = TraceState.TERMINATED;\n this.api.mark(this.traceStopMark);\n this.api.measure(\n this.traceMeasure,\n this.traceStartMark,\n this.traceStopMark\n );\n this.calculateTraceMetrics();\n logTrace(this);\n }\n\n /**\n * Records a trace with predetermined values. If this method is used a trace is created and logged\n * directly. No need to use start and stop methods.\n * @param startTime Trace start time since epoch in millisec\n * @param duration The duraction of the trace in millisec\n * @param options An object which can optionally hold maps of custom metrics and custom attributes\n */\n record(\n startTime: number,\n duration: number,\n options?: {\n metrics?: { [key: string]: number };\n attributes?: { [key: string]: string };\n }\n ): void {\n if (startTime <= 0) {\n throw ERROR_FACTORY.create(ErrorCode.NONPOSITIVE_TRACE_START_TIME, {\n traceName: this.name\n });\n }\n if (duration <= 0) {\n throw ERROR_FACTORY.create(ErrorCode.NONPOSITIVE_TRACE_DURATION, {\n traceName: this.name\n });\n }\n\n this.durationUs = Math.floor(duration * 1000);\n this.startTimeUs = Math.floor(startTime * 1000);\n if (options && options.attributes) {\n this.customAttributes = { ...options.attributes };\n }\n if (options && options.metrics) {\n for (const metric of Object.keys(options.metrics)) {\n if (!isNaN(Number(options.metrics[metric]))) {\n this.counters[metric] = Number(Math.floor(options.metrics[metric]));\n }\n }\n }\n logTrace(this);\n }\n\n /**\n * Increments a custom metric by a certain number or 1 if number not specified. Will create a new\n * custom metric if one with the given name does not exist. The value will be floored down to an\n * integer.\n * @param counter Name of the custom metric\n * @param numAsInteger Increment by value\n */\n incrementMetric(counter: string, numAsInteger = 1): void {\n if (this.counters[counter] === undefined) {\n this.putMetric(counter, numAsInteger);\n } else {\n this.putMetric(counter, this.counters[counter] + numAsInteger);\n }\n }\n\n /**\n * Sets a custom metric to a specified value. Will create a new custom metric if one with the\n * given name does not exist. The value will be floored down to an integer.\n * @param counter Name of the custom metric\n * @param numAsInteger Set custom metric to this value\n */\n putMetric(counter: string, numAsInteger: number): void {\n if (isValidMetricName(counter, this.name)) {\n this.counters[counter] = convertMetricValueToInteger(numAsInteger);\n } else {\n throw ERROR_FACTORY.create(ErrorCode.INVALID_CUSTOM_METRIC_NAME, {\n customMetricName: counter\n });\n }\n }\n\n /**\n * Returns the value of the custom metric by that name. If a custom metric with that name does\n * not exist will return zero.\n * @param counter\n */\n getMetric(counter: string): number {\n return this.counters[counter] || 0;\n }\n\n /**\n * Sets a custom attribute of a trace to a certain value.\n * @param attr\n * @param value\n */\n putAttribute(attr: string, value: string): void {\n const isValidName = isValidCustomAttributeName(attr);\n const isValidValue = isValidCustomAttributeValue(value);\n if (isValidName && isValidValue) {\n this.customAttributes[attr] = value;\n return;\n }\n // Throw appropriate error when the attribute name or value is invalid.\n if (!isValidName) {\n throw ERROR_FACTORY.create(ErrorCode.INVALID_ATTRIBUTE_NAME, {\n attributeName: attr\n });\n }\n if (!isValidValue) {\n throw ERROR_FACTORY.create(ErrorCode.INVALID_ATTRIBUTE_VALUE, {\n attributeValue: value\n });\n }\n }\n\n /**\n * Retrieves the value a custom attribute of a trace is set to.\n * @param attr\n */\n getAttribute(attr: string): string | undefined {\n return this.customAttributes[attr];\n }\n\n removeAttribute(attr: string): void {\n if (this.customAttributes[attr] === undefined) {\n return;\n }\n delete this.customAttributes[attr];\n }\n\n getAttributes(): { [key: string]: string } {\n return { ...this.customAttributes };\n }\n\n private setStartTime(startTime: number): void {\n this.startTimeUs = startTime;\n }\n\n private setDuration(duration: number): void {\n this.durationUs = duration;\n }\n\n /**\n * Calculates and assigns the duration and start time of the trace using the measure performance\n * entry.\n */\n private calculateTraceMetrics(): void {\n const perfMeasureEntries = this.api.getEntriesByName(this.traceMeasure);\n const perfMeasureEntry = perfMeasureEntries && perfMeasureEntries[0];\n if (perfMeasureEntry) {\n this.durationUs = Math.floor(perfMeasureEntry.duration * 1000);\n this.startTimeUs = Math.floor(\n (perfMeasureEntry.startTime + this.api.getTimeOrigin()) * 1000\n );\n }\n }\n\n /**\n * @param navigationTimings A single element array which contains the navigationTIming object of\n * the page load\n * @param paintTimings A array which contains paintTiming object of the page load\n * @param firstInputDelay First input delay in millisec\n */\n static createOobTrace(\n navigationTimings: PerformanceNavigationTiming[],\n paintTimings: PerformanceEntry[],\n firstInputDelay?: number\n ): void {\n const route = Api.getInstance().getUrl();\n if (!route) {\n return;\n }\n const trace = new Trace(OOB_TRACE_PAGE_LOAD_PREFIX + route, true);\n const timeOriginUs = Math.floor(Api.getInstance().getTimeOrigin() * 1000);\n trace.setStartTime(timeOriginUs);\n\n // navigationTimings includes only one element.\n if (navigationTimings && navigationTimings[0]) {\n trace.setDuration(Math.floor(navigationTimings[0].duration * 1000));\n trace.putMetric(\n 'domInteractive',\n Math.floor(navigationTimings[0].domInteractive * 1000)\n );\n trace.putMetric(\n 'domContentLoadedEventEnd',\n Math.floor(navigationTimings[0].domContentLoadedEventEnd * 1000)\n );\n trace.putMetric(\n 'loadEventEnd',\n Math.floor(navigationTimings[0].loadEventEnd * 1000)\n );\n }\n\n const FIRST_PAINT = 'first-paint';\n const FIRST_CONTENTFUL_PAINT = 'first-contentful-paint';\n if (paintTimings) {\n const firstPaint = paintTimings.find(\n paintObject => paintObject.name === FIRST_PAINT\n );\n if (firstPaint && firstPaint.startTime) {\n trace.putMetric(\n FIRST_PAINT_COUNTER_NAME,\n Math.floor(firstPaint.startTime * 1000)\n );\n }\n const firstContentfulPaint = paintTimings.find(\n paintObject => paintObject.name === FIRST_CONTENTFUL_PAINT\n );\n if (firstContentfulPaint && firstContentfulPaint.startTime) {\n trace.putMetric(\n FIRST_CONTENTFUL_PAINT_COUNTER_NAME,\n Math.floor(firstContentfulPaint.startTime * 1000)\n );\n }\n\n if (firstInputDelay) {\n trace.putMetric(\n FIRST_INPUT_DELAY_COUNTER_NAME,\n Math.floor(firstInputDelay * 1000)\n );\n }\n }\n\n logTrace(trace);\n }\n\n static createUserTimingTrace(measureName: string): void {\n const trace = new Trace(measureName, false, measureName);\n logTrace(trace);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Api } from '../services/api_service';\nimport { logNetworkRequest } from '../services/perf_logger';\n\n// The order of values of this enum should not be changed.\nexport const enum HttpMethod {\n HTTP_METHOD_UNKNOWN = 0,\n GET = 1,\n PUT = 2,\n POST = 3,\n DELETE = 4,\n HEAD = 5,\n PATCH = 6,\n OPTIONS = 7,\n TRACE = 8,\n CONNECT = 9\n}\n\n// Durations are in microseconds.\nexport interface NetworkRequest {\n url: string;\n httpMethod?: HttpMethod;\n requestPayloadBytes?: number;\n responsePayloadBytes?: number;\n httpResponseCode?: number;\n responseContentType?: string;\n startTimeUs?: number;\n timeToRequestCompletedUs?: number;\n timeToResponseInitiatedUs?: number;\n timeToResponseCompletedUs?: number;\n}\n\nexport function createNetworkRequestEntry(entry: PerformanceEntry): void {\n const performanceEntry = entry as PerformanceResourceTiming;\n if (!performanceEntry || performanceEntry.responseStart === undefined) {\n return;\n }\n const timeOrigin = Api.getInstance().getTimeOrigin();\n const startTimeUs = Math.floor(\n (performanceEntry.startTime + timeOrigin) * 1000\n );\n const timeToResponseInitiatedUs = performanceEntry.responseStart\n ? Math.floor(\n (performanceEntry.responseStart - performanceEntry.startTime) * 1000\n )\n : undefined;\n const timeToResponseCompletedUs = Math.floor(\n (performanceEntry.responseEnd - performanceEntry.startTime) * 1000\n );\n // Remove the query params from logged network request url.\n const url = performanceEntry.name && performanceEntry.name.split('?')[0];\n const networkRequest: NetworkRequest = {\n url,\n responsePayloadBytes: performanceEntry.transferSize,\n startTimeUs,\n timeToResponseInitiatedUs,\n timeToResponseCompletedUs\n };\n\n logNetworkRequest(networkRequest);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nimport { Api } from './api_service';\nimport { Trace } from '../resources/trace';\nimport { createNetworkRequestEntry } from '../resources/network_request';\nimport { TRACE_MEASURE_PREFIX } from '../constants';\nimport { getIid } from './iid_service';\n\nconst FID_WAIT_TIME_MS = 5000;\n\nexport function setupOobResources(): void {\n // Do not initialize unless iid is available.\n if (!getIid()) {\n return;\n }\n // The load event might not have fired yet, and that means performance navigation timing\n // object has a duration of 0. The setup should run after all current tasks in js queue.\n setTimeout(() => setupOobTraces(), 0);\n setTimeout(() => setupNetworkRequests(), 0);\n setTimeout(() => setupUserTimingTraces(), 0);\n}\n\nfunction setupNetworkRequests(): void {\n const api = Api.getInstance();\n const resources = api.getEntriesByType('resource');\n for (const resource of resources) {\n createNetworkRequestEntry(resource);\n }\n api.setupObserver('resource', createNetworkRequestEntry);\n}\n\nfunction setupOobTraces(): void {\n const api = Api.getInstance();\n const navigationTimings = api.getEntriesByType(\n 'navigation'\n ) as PerformanceNavigationTiming[];\n const paintTimings = api.getEntriesByType('paint');\n // If First Input Desly polyfill is added to the page, report the fid value.\n // https://github.com/GoogleChromeLabs/first-input-delay\n if (api.onFirstInputDelay) {\n // If the fid call back is not called for certain time, continue without it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let timeoutId: any = setTimeout(() => {\n Trace.createOobTrace(navigationTimings, paintTimings);\n timeoutId = undefined;\n }, FID_WAIT_TIME_MS);\n api.onFirstInputDelay((fid: number) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n Trace.createOobTrace(navigationTimings, paintTimings, fid);\n }\n });\n } else {\n Trace.createOobTrace(navigationTimings, paintTimings);\n }\n}\n\nfunction setupUserTimingTraces(): void {\n const api = Api.getInstance();\n // Run through the measure performance entries collected up to this point.\n const measures = api.getEntriesByType('measure');\n for (const measure of measures) {\n createUserTimingTrace(measure);\n }\n // Setup an observer to capture the measures from this point on.\n api.setupObserver('measure', createUserTimingTrace);\n}\n\nfunction createUserTimingTrace(measure: PerformanceEntry): void {\n const measureName = measure.name;\n // Do not create a trace, if the user timing marks and measures are created by the sdk itself.\n if (\n measureName.substring(0, TRACE_MEASURE_PREFIX.length) ===\n TRACE_MEASURE_PREFIX\n ) {\n return;\n }\n Trace.createUserTimingTrace(measureName);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 */\nimport { Trace } from '../resources/trace';\nimport { setupOobResources } from '../services/oob_resources_service';\nimport { SettingsService } from '../services/settings_service';\nimport { getInitializationPromise } from '../services/initialization_service';\nimport { Api } from '../services/api_service';\nimport { FirebaseApp } from '@firebase/app-types';\nimport { FirebasePerformance } from '@firebase/performance-types';\nimport { setupTransportService } from '../services/transport_service';\nimport { validateIndexedDBOpenable } from '@firebase/util';\nimport { consoleLogger } from '../utils/console_logger';\nexport class PerformanceController implements FirebasePerformance {\n constructor(readonly app: FirebaseApp) {\n if (Api.getInstance().requiredApisAvailable()) {\n validateIndexedDBOpenable()\n .then(isAvailable => {\n if (isAvailable) {\n setupTransportService();\n getInitializationPromise().then(\n setupOobResources,\n setupOobResources\n );\n }\n })\n .catch(error => {\n consoleLogger.info(`Environment doesn't support IndexedDB: ${error}`);\n });\n }\n }\n\n trace(name: string): Trace {\n return new Trace(name);\n }\n\n set instrumentationEnabled(val: boolean) {\n SettingsService.getInstance().instrumentationEnabled = val;\n }\n get instrumentationEnabled(): boolean {\n return SettingsService.getInstance().instrumentationEnabled;\n }\n\n set dataCollectionEnabled(val: boolean) {\n SettingsService.getInstance().dataCollectionEnabled = val;\n }\n get dataCollectionEnabled(): boolean {\n return SettingsService.getInstance().dataCollectionEnabled;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { StorageCache } from '../storage/storage_cache';\nimport {\n FetchResponse,\n RemoteConfigFetchClient,\n FetchRequest\n} from './remote_config_fetch_client';\nimport { Storage } from '../storage/storage';\nimport { Logger } from '@firebase/logger';\n\n/**\n * Implements the {@link RemoteConfigClient} abstraction with success response caching.\n *\n *

Comparable to the browser's Cache API for responses, but the Cache API requires a Service\n * Worker, which requires HTTPS, which would significantly complicate SDK installation. Also, the\n * Cache API doesn't support matching entries by time.\n */\nexport class CachingClient implements RemoteConfigFetchClient {\n constructor(\n private readonly client: RemoteConfigFetchClient,\n private readonly storage: Storage,\n private readonly storageCache: StorageCache,\n private readonly logger: Logger\n ) {}\n\n /**\n * Returns true if the age of the cached fetched configs is less than or equal to\n * {@link Settings#minimumFetchIntervalInSeconds}.\n *\n *

This is comparable to passing `headers = { 'Cache-Control': max-age }` to the\n * native Fetch API.\n *\n *

Visible for testing.\n */\n isCachedDataFresh(\n cacheMaxAgeMillis: number,\n lastSuccessfulFetchTimestampMillis: number | undefined\n ): boolean {\n // Cache can only be fresh if it's populated.\n if (!lastSuccessfulFetchTimestampMillis) {\n this.logger.debug('Config fetch cache check. Cache unpopulated.');\n return false;\n }\n\n // Calculates age of cache entry.\n const cacheAgeMillis = Date.now() - lastSuccessfulFetchTimestampMillis;\n\n const isCachedDataFresh = cacheAgeMillis <= cacheMaxAgeMillis;\n\n this.logger.debug(\n 'Config fetch cache check.' +\n ` Cache age millis: ${cacheAgeMillis}.` +\n ` Cache max age millis (minimumFetchIntervalMillis setting): ${cacheMaxAgeMillis}.` +\n ` Is cache hit: ${isCachedDataFresh}.`\n );\n\n return isCachedDataFresh;\n }\n\n async fetch(request: FetchRequest): Promise {\n // Reads from persisted storage to avoid cache miss if callers don't wait on initialization.\n const [\n lastSuccessfulFetchTimestampMillis,\n lastSuccessfulFetchResponse\n ] = await Promise.all([\n this.storage.getLastSuccessfulFetchTimestampMillis(),\n this.storage.getLastSuccessfulFetchResponse()\n ]);\n\n // Exits early on cache hit.\n if (\n lastSuccessfulFetchResponse &&\n this.isCachedDataFresh(\n request.cacheMaxAgeMillis,\n lastSuccessfulFetchTimestampMillis\n )\n ) {\n return lastSuccessfulFetchResponse;\n }\n\n // Deviates from pure decorator by not honoring a passed ETag since we don't have a public API\n // that allows the caller to pass an ETag.\n request.eTag =\n lastSuccessfulFetchResponse && lastSuccessfulFetchResponse.eTag;\n\n // Falls back to service on cache miss.\n const response = await this.client.fetch(request);\n\n // Fetch throws for non-success responses, so success is guaranteed here.\n\n const storageOperations = [\n // Uses write-through cache for consistency with synchronous public API.\n this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())\n ];\n\n if (response.status === 200) {\n // Caches response only if it has changed, ie non-304 responses.\n storageOperations.push(\n this.storage.setLastSuccessfulFetchResponse(response)\n );\n }\n\n await Promise.all(storageOperations);\n\n return response;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { FirebaseInstallations } from '@firebase/installations-types';\nimport {\n FetchResponse,\n RemoteConfigFetchClient,\n FirebaseRemoteConfigObject,\n FetchRequest\n} from './remote_config_fetch_client';\nimport { ERROR_FACTORY, ErrorCode } from '../errors';\nimport { getUserLanguage } from '../language';\n\n/**\n * Defines request body parameters required to call the fetch API:\n * https://firebase.google.com/docs/reference/remote-config/rest\n *\n *

Not exported because this file encapsulates REST API specifics.\n *\n *

Not passing User Properties because Analytics' source of truth on Web is server-side.\n */\ninterface FetchRequestBody {\n // Disables camelcase linting for request body params.\n /* eslint-disable camelcase*/\n sdk_version: string;\n app_instance_id: string;\n app_instance_id_token: string;\n app_id: string;\n language_code: string;\n /* eslint-enable camelcase */\n}\n\n/**\n * Implements the Client abstraction for the Remote Config REST API.\n */\nexport class RestClient implements RemoteConfigFetchClient {\n constructor(\n private readonly firebaseInstallations: FirebaseInstallations,\n private readonly sdkVersion: string,\n private readonly namespace: string,\n private readonly projectId: string,\n private readonly apiKey: string,\n private readonly appId: string\n ) {}\n\n /**\n * Fetches from the Remote Config REST API.\n *\n * @throws a {@link ErrorCode.FETCH_NETWORK} error if {@link GlobalFetch#fetch} can't\n * connect to the network.\n * @throws a {@link ErrorCode.FETCH_PARSE} error if {@link Response#json} can't parse the\n * fetch response.\n * @throws a {@link ErrorCode.FETCH_STATUS} error if the service returns an HTTP error status.\n */\n async fetch(request: FetchRequest): Promise {\n const [installationId, installationToken] = await Promise.all([\n this.firebaseInstallations.getId(),\n this.firebaseInstallations.getToken()\n ]);\n\n const urlBase =\n window.FIREBASE_REMOTE_CONFIG_URL_BASE ||\n 'https://firebaseremoteconfig.googleapis.com';\n\n const url = `${urlBase}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=${this.apiKey}`;\n\n const headers = {\n 'Content-Type': 'application/json',\n 'Content-Encoding': 'gzip',\n // Deviates from pure decorator by not passing max-age header since we don't currently have\n // service behavior using that header.\n 'If-None-Match': request.eTag || '*'\n };\n\n const requestBody: FetchRequestBody = {\n /* eslint-disable camelcase */\n sdk_version: this.sdkVersion,\n app_instance_id: installationId,\n app_instance_id_token: installationToken,\n app_id: this.appId,\n language_code: getUserLanguage()\n /* eslint-enable camelcase */\n };\n\n const options = {\n method: 'POST',\n headers,\n body: JSON.stringify(requestBody)\n };\n\n // This logic isn't REST-specific, but shimming abort logic isn't worth another decorator.\n const fetchPromise = fetch(url, options);\n const timeoutPromise = new Promise((_resolve, reject) => {\n // Maps async event listener to Promise API.\n request.signal.addEventListener(() => {\n // Emulates https://heycam.github.io/webidl/#aborterror\n const error = new Error('The operation was aborted.');\n error.name = 'AbortError';\n reject(error);\n });\n });\n\n let response;\n try {\n await Promise.race([fetchPromise, timeoutPromise]);\n response = await fetchPromise;\n } catch (originalError) {\n let errorCode = ErrorCode.FETCH_NETWORK;\n if (originalError.name === 'AbortError') {\n errorCode = ErrorCode.FETCH_TIMEOUT;\n }\n throw ERROR_FACTORY.create(errorCode, {\n originalErrorMessage: originalError.message\n });\n }\n\n let status = response.status;\n\n // Normalizes nullable header to optional.\n const responseEtag = response.headers.get('ETag') || undefined;\n\n let config: FirebaseRemoteConfigObject | undefined;\n let state: string | undefined;\n\n // JSON parsing throws SyntaxError if the response body isn't a JSON string.\n // Requesting application/json and checking for a 200 ensures there's JSON data.\n if (response.status === 200) {\n let responseBody;\n try {\n responseBody = await response.json();\n } catch (originalError) {\n throw ERROR_FACTORY.create(ErrorCode.FETCH_PARSE, {\n originalErrorMessage: originalError.message\n });\n }\n config = responseBody['entries'];\n state = responseBody['state'];\n }\n\n // Normalizes based on legacy state.\n if (state === 'INSTANCE_STATE_UNSPECIFIED') {\n status = 500;\n } else if (state === 'NO_CHANGE') {\n status = 304;\n } else if (state === 'NO_TEMPLATE' || state === 'EMPTY_CONFIG') {\n // These cases can be fixed remotely, so normalize to safe value.\n config = {};\n }\n\n // Normalize to exception-based control flow for non-success cases.\n // Encapsulates HTTP specifics in this class as much as possible. Status is still the best for\n // differentiating success states (200 from 304; the state body param is undefined in a\n // standard 304).\n if (status !== 304 && status !== 200) {\n throw ERROR_FACTORY.create(ErrorCode.FETCH_STATUS, {\n httpStatus: status\n });\n }\n\n return { status, eTag: responseEtag, config };\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Attempts to get the most accurate browser language setting.\n *\n *

Adapted from getUserLanguage in packages/auth/src/utils.js for TypeScript.\n *\n *

Defers default language specification to server logic for consistency.\n *\n * @param navigatorLanguage Enables tests to override read-only {@link NavigatorLanguage}.\n */\nexport function getUserLanguage(\n navigatorLanguage: NavigatorLanguage = navigator\n): string {\n return (\n // Most reliable, but only supported in Chrome/Firefox.\n (navigatorLanguage.languages && navigatorLanguage.languages[0]) ||\n // Supported in most browsers, but returns the language of the browser\n // UI, not the language set in browser settings.\n navigatorLanguage.language\n // Polyfill otherwise.\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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 * Defines a client, as in https://en.wikipedia.org/wiki/Client%E2%80%93server_model, for the\n * Remote Config server (https://firebase.google.com/docs/reference/remote-config/rest).\n *\n *

Abstracts throttle, response cache and network implementation details.\n *\n *

Modeled after the native {@link GlobalFetch} interface, which is relatively modern and\n * convenient, but simplified for Remote Config's use case.\n *\n * Disambiguation: {@link GlobalFetch} interface and the Remote Config service define \"fetch\"\n * methods. The RestClient uses the former to make HTTP calls. This interface abstracts the latter.\n */\nexport interface RemoteConfigFetchClient {\n /**\n * @throws if response status is not 200 or 304.\n */\n fetch(request: FetchRequest): Promise;\n}\n\n/**\n * Defines a self-descriptive reference for config key-value pairs.\n */\nexport interface FirebaseRemoteConfigObject {\n [key: string]: string;\n}\n\n/**\n * Shims a minimal AbortSignal.\n *\n *

AbortController's AbortSignal conveniently decouples fetch timeout logic from other aspects\n * of networking, such as retries. Firebase doesn't use AbortController enough to justify a\n * polyfill recommendation, like we do with the Fetch API, but this minimal shim can easily be\n * swapped out if/when we do.\n */\nexport class RemoteConfigAbortSignal {\n listeners: Array<() => void> = [];\n addEventListener(listener: () => void): void {\n this.listeners.push(listener);\n }\n abort(): void {\n this.listeners.forEach(listener => listener());\n }\n}\n\n/**\n * Defines per-request inputs for the Remote Config fetch request.\n *\n *

Modeled after the native {@link Request} interface, but simplified for Remote Config's\n * use case.\n */\nexport interface FetchRequest {\n /**\n * Uses cached config if it is younger than this age.\n *\n *

Required because it's defined by settings, which always have a value.\n *\n *

Comparable to passing `headers = { 'Cache-Control': max-age }` to the native\n * Fetch API.\n */\n cacheMaxAgeMillis: number;\n\n /**\n * An event bus for the signal to abort a request.\n *\n *

Required because all requests should be abortable.\n *\n *

Comparable to the native\n * Fetch API's \"signal\" field on its request configuration object\n * https://fetch.spec.whatwg.org/#dom-requestinit-signal.\n *\n *

Disambiguation: Remote Config commonly refers to API inputs as\n * \"signals\". See the private ConfigFetchRequestBody interface for those:\n * http://google3/firebase/remote_config/web/src/core/rest_client.ts?l=14&rcl=255515243.\n */\n signal: RemoteConfigAbortSignal;\n\n /**\n * The ETag header value from the last response.\n *\n *

Optional in case this is the first request.\n *\n *

Comparable to passing `headers = { 'If-None-Match': }` to the native Fetch API.\n */\n eTag?: string;\n}\n\n/**\n * Defines a successful response (200 or 304).\n *\n *

Modeled after the native {@link Response} interface, but simplified for Remote Config's\n * use case.\n */\nexport interface FetchResponse {\n /**\n * The HTTP status, which is useful for differentiating success responses with data from\n * those without.\n *\n *

{@link RemoteConfigClient} is modeled after the native {@link GlobalFetch} interface, so\n * HTTP status is first-class.\n *\n *

Disambiguation: the fetch response returns a legacy \"state\" value that is redundant with the\n * HTTP status code. The former is normalized into the latter.\n */\n status: number;\n\n /**\n * Defines the ETag response header value.\n *\n *

Only defined for 200 and 304 responses.\n */\n eTag?: string;\n\n /**\n * Defines the map of parameters returned as \"entries\" in the fetch response body.\n *\n *

Only defined for 200 responses.\n */\n config?: FirebaseRemoteConfigObject;\n\n // Note: we're not extracting experiment metadata until\n // ABT and Analytics have Web SDKs.\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { Value as ValueType, ValueSource } from '@firebase/remote-config-types';\n\nconst DEFAULT_VALUE_FOR_BOOLEAN = false;\nconst DEFAULT_VALUE_FOR_STRING = '';\nconst DEFAULT_VALUE_FOR_NUMBER = 0;\n\nconst BOOLEAN_TRUTHY_VALUES = ['1', 'true', 't', 'yes', 'y', 'on'];\n\nexport class Value implements ValueType {\n constructor(\n private readonly _source: ValueSource,\n private readonly _value: string = DEFAULT_VALUE_FOR_STRING\n ) {}\n\n asString(): string {\n return this._value;\n }\n\n asBoolean(): boolean {\n if (this._source === 'static') {\n return DEFAULT_VALUE_FOR_BOOLEAN;\n }\n return BOOLEAN_TRUTHY_VALUES.indexOf(this._value.toLowerCase()) >= 0;\n }\n\n asNumber(): number {\n if (this._source === 'static') {\n return DEFAULT_VALUE_FOR_NUMBER;\n }\n let num = Number(this._value);\n if (isNaN(num)) {\n num = DEFAULT_VALUE_FOR_NUMBER;\n }\n return num;\n }\n\n getSource(): ValueSource {\n return this._source;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { FirebaseApp } from '@firebase/app-types';\nimport {\n RemoteConfig as RemoteConfigType,\n FetchStatus,\n Settings,\n Value as ValueType,\n LogLevel as RemoteConfigLogLevel\n} from '@firebase/remote-config-types';\nimport { StorageCache } from './storage/storage_cache';\nimport {\n RemoteConfigFetchClient,\n RemoteConfigAbortSignal\n} from './client/remote_config_fetch_client';\nimport { Value } from './value';\nimport { ErrorCode, hasErrorCode } from './errors';\nimport { Storage } from './storage/storage';\nimport { Logger, LogLevel as FirebaseLogLevel } from '@firebase/logger';\n\nconst DEFAULT_FETCH_TIMEOUT_MILLIS = 60 * 1000; // One minute\nconst DEFAULT_CACHE_MAX_AGE_MILLIS = 12 * 60 * 60 * 1000; // Twelve hours.\n\n/**\n * Encapsulates business logic mapping network and storage dependencies to the public SDK API.\n *\n * See {@link https://github.com/FirebasePrivate/firebase-js-sdk/blob/master/packages/firebase/index.d.ts|interface documentation} for method descriptions.\n */\nexport class RemoteConfig implements RemoteConfigType {\n // Tracks completion of initialization promise.\n private _isInitializationComplete = false;\n\n // De-duplicates initialization calls.\n private _initializePromise?: Promise;\n\n settings: Settings = {\n fetchTimeoutMillis: DEFAULT_FETCH_TIMEOUT_MILLIS,\n minimumFetchIntervalMillis: DEFAULT_CACHE_MAX_AGE_MILLIS\n };\n\n defaultConfig: { [key: string]: string | number | boolean } = {};\n\n // Based on packages/firestore/src/util/log.ts but not static because we need per-instance levels\n // to differentiate 2p and 3p use-cases.\n setLogLevel(logLevel: RemoteConfigLogLevel): void {\n switch (logLevel) {\n case 'debug':\n this._logger.logLevel = FirebaseLogLevel.DEBUG;\n break;\n case 'silent':\n this._logger.logLevel = FirebaseLogLevel.SILENT;\n break;\n default:\n this._logger.logLevel = FirebaseLogLevel.ERROR;\n }\n }\n\n get fetchTimeMillis(): number {\n return this._storageCache.getLastSuccessfulFetchTimestampMillis() || -1;\n }\n\n get lastFetchStatus(): FetchStatus {\n return this._storageCache.getLastFetchStatus() || 'no-fetch-yet';\n }\n\n constructor(\n // Required by FirebaseServiceFactory interface.\n readonly app: FirebaseApp,\n // JS doesn't support private yet\n // (https://github.com/tc39/proposal-class-fields#private-fields), so we hint using an\n // underscore prefix.\n private readonly _client: RemoteConfigFetchClient,\n private readonly _storageCache: StorageCache,\n private readonly _storage: Storage,\n private readonly _logger: Logger\n ) {}\n\n async activate(): Promise {\n const [lastSuccessfulFetchResponse, activeConfigEtag] = await Promise.all([\n this._storage.getLastSuccessfulFetchResponse(),\n this._storage.getActiveConfigEtag()\n ]);\n if (\n !lastSuccessfulFetchResponse ||\n !lastSuccessfulFetchResponse.config ||\n !lastSuccessfulFetchResponse.eTag ||\n lastSuccessfulFetchResponse.eTag === activeConfigEtag\n ) {\n // Either there is no successful fetched config, or is the same as current active\n // config.\n return false;\n }\n await Promise.all([\n this._storageCache.setActiveConfig(lastSuccessfulFetchResponse.config),\n this._storage.setActiveConfigEtag(lastSuccessfulFetchResponse.eTag)\n ]);\n return true;\n }\n\n ensureInitialized(): Promise {\n if (!this._initializePromise) {\n this._initializePromise = this._storageCache\n .loadFromStorage()\n .then(() => {\n this._isInitializationComplete = true;\n });\n }\n return this._initializePromise;\n }\n\n /**\n * @throws a {@link ErrorCode.FETCH_CLIENT_TIMEOUT} if the request takes longer than\n * {@link Settings.fetchTimeoutInSeconds} or\n * {@link DEFAULT_FETCH_TIMEOUT_SECONDS}.\n */\n async fetch(): Promise {\n // Aborts the request after the given timeout, causing the fetch call to\n // reject with an AbortError.\n //\n //

Aborting after the request completes is a no-op, so we don't need a\n // corresponding clearTimeout.\n //\n // Locating abort logic here because:\n // * it uses a developer setting (timeout)\n // * it applies to all retries (like curl's max-time arg)\n // * it is consistent with the Fetch API's signal input\n const abortSignal = new RemoteConfigAbortSignal();\n\n setTimeout(async () => {\n // Note a very low delay, eg < 10ms, can elapse before listeners are initialized.\n abortSignal.abort();\n }, this.settings.fetchTimeoutMillis);\n\n // Catches *all* errors thrown by client so status can be set consistently.\n try {\n await this._client.fetch({\n cacheMaxAgeMillis: this.settings.minimumFetchIntervalMillis,\n signal: abortSignal\n });\n\n await this._storageCache.setLastFetchStatus('success');\n } catch (e) {\n const lastFetchStatus = hasErrorCode(e, ErrorCode.FETCH_THROTTLE)\n ? 'throttle'\n : 'failure';\n await this._storageCache.setLastFetchStatus(lastFetchStatus);\n throw e;\n }\n }\n\n async fetchAndActivate(): Promise {\n await this.fetch();\n return this.activate();\n }\n\n getAll(): { [key: string]: ValueType } {\n return getAllKeys(\n this._storageCache.getActiveConfig(),\n this.defaultConfig\n ).reduce((allConfigs, key) => {\n allConfigs[key] = this.getValue(key);\n return allConfigs;\n }, {} as { [key: string]: ValueType });\n }\n\n getBoolean(key: string): boolean {\n return this.getValue(key).asBoolean();\n }\n\n getNumber(key: string): number {\n return this.getValue(key).asNumber();\n }\n\n getString(key: string): string {\n return this.getValue(key).asString();\n }\n\n getValue(key: string): ValueType {\n if (!this._isInitializationComplete) {\n this._logger.debug(\n `A value was requested for key \"${key}\" before SDK initialization completed.` +\n ' Await on ensureInitialized if the intent was to get a previously activated value.'\n );\n }\n const activeConfig = this._storageCache.getActiveConfig();\n if (activeConfig && activeConfig[key] !== undefined) {\n return new Value('remote', activeConfig[key]);\n } else if (this.defaultConfig && this.defaultConfig[key] !== undefined) {\n return new Value('default', String(this.defaultConfig[key]));\n }\n this._logger.debug(\n `Returning static value for key \"${key}\".` +\n ' Define a default or remote value if this is unintentional.'\n );\n return new Value('static');\n }\n}\n\n/**\n * Dedupes and returns an array of all the keys of the received objects.\n */\nfunction getAllKeys(obj1: {} = {}, obj2: {} = {}): string[] {\n return Object.keys({ ...obj1, ...obj2 });\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { FetchStatus } from '@firebase/remote-config-types';\nimport {\n FetchResponse,\n FirebaseRemoteConfigObject\n} from '../client/remote_config_fetch_client';\nimport { ERROR_FACTORY, ErrorCode } from '../errors';\nimport { FirebaseError } from '@firebase/util';\n\n/**\n * Converts an error event associated with a {@link IDBRequest} to a {@link FirebaseError}.\n */\nfunction toFirebaseError(event: Event, errorCode: ErrorCode): FirebaseError {\n const originalError = (event.target as IDBRequest).error || undefined;\n return ERROR_FACTORY.create(errorCode, {\n originalErrorMessage: originalError && originalError.message\n });\n}\n\n/**\n * A general-purpose store keyed by app + namespace + {@link\n * ProjectNamespaceKeyFieldValue}.\n *\n *

The Remote Config SDK can be used with multiple app installations, and each app can interact\n * with multiple namespaces, so this store uses app (ID + name) and namespace as common parent keys\n * for a set of key-value pairs. See {@link Storage#createCompositeKey}.\n *\n *

Visible for testing.\n */\nexport const APP_NAMESPACE_STORE = 'app_namespace_store';\n\nconst DB_NAME = 'firebase_remote_config';\nconst DB_VERSION = 1;\n\n/**\n * Encapsulates metadata concerning throttled fetch requests.\n */\nexport interface ThrottleMetadata {\n // The number of times fetch has backed off. Used for resuming backoff after a timeout.\n backoffCount: number;\n // The Unix timestamp in milliseconds when callers can retry a request.\n throttleEndTimeMillis: number;\n}\n\n/**\n * Provides type-safety for the \"key\" field used by {@link APP_NAMESPACE_STORE}.\n *\n *

This seems like a small price to avoid potentially subtle bugs caused by a typo.\n */\ntype ProjectNamespaceKeyFieldValue =\n | 'active_config'\n | 'active_config_etag'\n | 'last_fetch_status'\n | 'last_successful_fetch_timestamp_millis'\n | 'last_successful_fetch_response'\n | 'settings'\n | 'throttle_metadata';\n\n// Visible for testing.\nexport function openDatabase(): Promise {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(DB_NAME, DB_VERSION);\n request.onerror = event => {\n reject(toFirebaseError(event, ErrorCode.STORAGE_OPEN));\n };\n request.onsuccess = event => {\n resolve((event.target as IDBOpenDBRequest).result);\n };\n request.onupgradeneeded = event => {\n const db = (event.target as IDBOpenDBRequest).result;\n\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (event.oldVersion) {\n case 0:\n db.createObjectStore(APP_NAMESPACE_STORE, {\n keyPath: 'compositeKey'\n });\n }\n };\n });\n}\n\n/**\n * Abstracts data persistence.\n */\nexport class Storage {\n /**\n * @param appId enables storage segmentation by app (ID + name).\n * @param appName enables storage segmentation by app (ID + name).\n * @param namespace enables storage segmentation by namespace.\n */\n constructor(\n private readonly appId: string,\n private readonly appName: string,\n private readonly namespace: string,\n private readonly openDbPromise = openDatabase()\n ) {}\n\n getLastFetchStatus(): Promise {\n return this.get('last_fetch_status');\n }\n\n setLastFetchStatus(status: FetchStatus): Promise {\n return this.set('last_fetch_status', status);\n }\n\n // This is comparable to a cache entry timestamp. If we need to expire other data, we could\n // consider adding timestamp to all storage records and an optional max age arg to getters.\n getLastSuccessfulFetchTimestampMillis(): Promise {\n return this.get('last_successful_fetch_timestamp_millis');\n }\n\n setLastSuccessfulFetchTimestampMillis(timestamp: number): Promise {\n return this.set(\n 'last_successful_fetch_timestamp_millis',\n timestamp\n );\n }\n\n getLastSuccessfulFetchResponse(): Promise {\n return this.get('last_successful_fetch_response');\n }\n\n setLastSuccessfulFetchResponse(response: FetchResponse): Promise {\n return this.set('last_successful_fetch_response', response);\n }\n\n getActiveConfig(): Promise {\n return this.get('active_config');\n }\n\n setActiveConfig(config: FirebaseRemoteConfigObject): Promise {\n return this.set('active_config', config);\n }\n\n getActiveConfigEtag(): Promise {\n return this.get('active_config_etag');\n }\n\n setActiveConfigEtag(etag: string): Promise {\n return this.set('active_config_etag', etag);\n }\n\n getThrottleMetadata(): Promise {\n return this.get('throttle_metadata');\n }\n\n setThrottleMetadata(metadata: ThrottleMetadata): Promise {\n return this.set('throttle_metadata', metadata);\n }\n\n deleteThrottleMetadata(): Promise {\n return this.delete('throttle_metadata');\n }\n\n async get(key: ProjectNamespaceKeyFieldValue): Promise {\n const db = await this.openDbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([APP_NAMESPACE_STORE], 'readonly');\n const objectStore = transaction.objectStore(APP_NAMESPACE_STORE);\n const compositeKey = this.createCompositeKey(key);\n try {\n const request = objectStore.get(compositeKey);\n request.onerror = event => {\n reject(toFirebaseError(event, ErrorCode.STORAGE_GET));\n };\n request.onsuccess = event => {\n const result = (event.target as IDBRequest).result;\n if (result) {\n resolve(result.value);\n } else {\n resolve(undefined);\n }\n };\n } catch (e) {\n reject(\n ERROR_FACTORY.create(ErrorCode.STORAGE_GET, {\n originalErrorMessage: e && e.message\n })\n );\n }\n });\n }\n\n async set(key: ProjectNamespaceKeyFieldValue, value: T): Promise {\n const db = await this.openDbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([APP_NAMESPACE_STORE], 'readwrite');\n const objectStore = transaction.objectStore(APP_NAMESPACE_STORE);\n const compositeKey = this.createCompositeKey(key);\n try {\n const request = objectStore.put({\n compositeKey,\n value\n });\n request.onerror = (event: Event) => {\n reject(toFirebaseError(event, ErrorCode.STORAGE_SET));\n };\n request.onsuccess = () => {\n resolve();\n };\n } catch (e) {\n reject(\n ERROR_FACTORY.create(ErrorCode.STORAGE_SET, {\n originalErrorMessage: e && e.message\n })\n );\n }\n });\n }\n\n async delete(key: ProjectNamespaceKeyFieldValue): Promise {\n const db = await this.openDbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([APP_NAMESPACE_STORE], 'readwrite');\n const objectStore = transaction.objectStore(APP_NAMESPACE_STORE);\n const compositeKey = this.createCompositeKey(key);\n try {\n const request = objectStore.delete(compositeKey);\n request.onerror = (event: Event) => {\n reject(toFirebaseError(event, ErrorCode.STORAGE_DELETE));\n };\n request.onsuccess = () => {\n resolve();\n };\n } catch (e) {\n reject(\n ERROR_FACTORY.create(ErrorCode.STORAGE_DELETE, {\n originalErrorMessage: e && e.message\n })\n );\n }\n });\n }\n\n // Facilitates composite key functionality (which is unsupported in IE).\n createCompositeKey(key: ProjectNamespaceKeyFieldValue): string {\n return [this.appId, this.appName, this.namespace, key].join();\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport { FetchStatus } from '@firebase/remote-config-types';\nimport { FirebaseRemoteConfigObject } from '../client/remote_config_fetch_client';\nimport { Storage } from './storage';\n\n/**\n * A memory cache layer over storage to support the SDK's synchronous read requirements.\n */\nexport class StorageCache {\n constructor(private readonly storage: Storage) {}\n\n /**\n * Memory caches.\n */\n private lastFetchStatus?: FetchStatus;\n private lastSuccessfulFetchTimestampMillis?: number;\n private activeConfig?: FirebaseRemoteConfigObject;\n\n /**\n * Memory-only getters\n */\n getLastFetchStatus(): FetchStatus | undefined {\n return this.lastFetchStatus;\n }\n\n getLastSuccessfulFetchTimestampMillis(): number | undefined {\n return this.lastSuccessfulFetchTimestampMillis;\n }\n\n getActiveConfig(): FirebaseRemoteConfigObject | undefined {\n return this.activeConfig;\n }\n\n /**\n * Read-ahead getter\n */\n async loadFromStorage(): Promise {\n const lastFetchStatusPromise = this.storage.getLastFetchStatus();\n const lastSuccessfulFetchTimestampMillisPromise = this.storage.getLastSuccessfulFetchTimestampMillis();\n const activeConfigPromise = this.storage.getActiveConfig();\n\n // Note:\n // 1. we consistently check for undefined to avoid clobbering defined values\n // in memory\n // 2. we defer awaiting to improve readability, as opposed to destructuring\n // a Promise.all result, for example\n\n const lastFetchStatus = await lastFetchStatusPromise;\n if (lastFetchStatus) {\n this.lastFetchStatus = lastFetchStatus;\n }\n\n const lastSuccessfulFetchTimestampMillis = await lastSuccessfulFetchTimestampMillisPromise;\n if (lastSuccessfulFetchTimestampMillis) {\n this.lastSuccessfulFetchTimestampMillis = lastSuccessfulFetchTimestampMillis;\n }\n\n const activeConfig = await activeConfigPromise;\n if (activeConfig) {\n this.activeConfig = activeConfig;\n }\n }\n\n /**\n * Write-through setters\n */\n setLastFetchStatus(status: FetchStatus): Promise {\n this.lastFetchStatus = status;\n return this.storage.setLastFetchStatus(status);\n }\n\n setLastSuccessfulFetchTimestampMillis(\n timestampMillis: number\n ): Promise {\n this.lastSuccessfulFetchTimestampMillis = timestampMillis;\n return this.storage.setLastSuccessfulFetchTimestampMillis(timestampMillis);\n }\n\n setActiveConfig(activeConfig: FirebaseRemoteConfigObject): Promise {\n this.activeConfig = activeConfig;\n return this.storage.setActiveConfig(activeConfig);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport {\n RemoteConfigAbortSignal,\n RemoteConfigFetchClient,\n FetchResponse,\n FetchRequest\n} from './remote_config_fetch_client';\nimport { ThrottleMetadata, Storage } from '../storage/storage';\nimport { ErrorCode, ERROR_FACTORY } from '../errors';\nimport { FirebaseError, calculateBackoffMillis } from '@firebase/util';\n\n/**\n * Supports waiting on a backoff by:\n *\n *

    \n *
  • Promisifying setTimeout, so we can set a timeout in our Promise chain
  • \n *
  • Listening on a signal bus for abort events, just like the Fetch API
  • \n *
  • Failing in the same way the Fetch API fails, so timing out a live request and a throttled\n * request appear the same.
  • \n *
\n *\n *

Visible for testing.\n */\nexport function setAbortableTimeout(\n signal: RemoteConfigAbortSignal,\n throttleEndTimeMillis: number\n): Promise {\n return new Promise((resolve, reject) => {\n // Derives backoff from given end time, normalizing negative numbers to zero.\n const backoffMillis = Math.max(throttleEndTimeMillis - Date.now(), 0);\n\n const timeout = setTimeout(resolve, backoffMillis);\n\n // Adds listener, rather than sets onabort, because signal is a shared object.\n signal.addEventListener(() => {\n clearTimeout(timeout);\n\n // If the request completes before this timeout, the rejection has no effect.\n reject(\n ERROR_FACTORY.create(ErrorCode.FETCH_THROTTLE, {\n throttleEndTimeMillis\n })\n );\n });\n });\n}\n\ntype RetriableError = FirebaseError & { customData: { httpStatus: string } };\n/**\n * Returns true if the {@link Error} indicates a fetch request may succeed later.\n */\nfunction isRetriableError(e: Error): e is RetriableError {\n if (!(e instanceof FirebaseError) || !e.customData) {\n return false;\n }\n\n // Uses string index defined by ErrorData, which FirebaseError implements.\n const httpStatus = Number(e.customData['httpStatus']);\n\n return (\n httpStatus === 429 ||\n httpStatus === 500 ||\n httpStatus === 503 ||\n httpStatus === 504\n );\n}\n\n/**\n * Decorates a Client with retry logic.\n *\n *

Comparable to CachingClient, but uses backoff logic instead of cache max age and doesn't cache\n * responses (because the SDK has no use for error responses).\n */\nexport class RetryingClient implements RemoteConfigFetchClient {\n constructor(\n private readonly client: RemoteConfigFetchClient,\n private readonly storage: Storage\n ) {}\n\n async fetch(request: FetchRequest): Promise {\n const throttleMetadata = (await this.storage.getThrottleMetadata()) || {\n backoffCount: 0,\n throttleEndTimeMillis: Date.now()\n };\n\n return this.attemptFetch(request, throttleMetadata);\n }\n\n /**\n * A recursive helper for attempting a fetch request repeatedly.\n *\n * @throws any non-retriable errors.\n */\n async attemptFetch(\n request: FetchRequest,\n { throttleEndTimeMillis, backoffCount }: ThrottleMetadata\n ): Promise {\n // Starts with a (potentially zero) timeout to support resumption from stored state.\n // Ensures the throttle end time is honored if the last attempt timed out.\n // Note the SDK will never make a request if the fetch timeout expires at this point.\n await setAbortableTimeout(request.signal, throttleEndTimeMillis);\n\n try {\n const response = await this.client.fetch(request);\n\n // Note the SDK only clears throttle state if response is success or non-retriable.\n await this.storage.deleteThrottleMetadata();\n\n return response;\n } catch (e) {\n if (!isRetriableError(e)) {\n throw e;\n }\n\n // Increments backoff state.\n const throttleMetadata = {\n throttleEndTimeMillis:\n Date.now() + calculateBackoffMillis(backoffCount),\n backoffCount: backoffCount + 1\n };\n\n // Persists state.\n await this.storage.setThrottleMetadata(throttleMetadata);\n\n return this.attemptFetch(request, throttleMetadata);\n }\n }\n}\n","/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file 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\nimport firebase from '@firebase/app';\nimport { name, version } from '../package.json';\n\nfirebase.registerVersion(name, version, 'app');\nfirebase.SDK_VERSION = version;\n\nexport default firebase;\n","/**\n * Copyright 2023 Design Barn Inc.\n */\n\nexport * from '@dotlottie/common';\nexport * from './react-player';\nexport * from './controls';\nexport * from './providers';\nexport * from './hooks';\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_1 = require(\"./node\");\n__exportStar(require(\"./node\"), exports);\nvar reWhitespace = /\\s+/g;\n// Default options\nvar defaultOpts = {\n normalizeWhitespace: false,\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var normalizeWhitespace = this.options.normalizeWhitespace;\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n if (normalizeWhitespace) {\n lastNode.data = (lastNode.data + data).replace(reWhitespace, \" \");\n }\n else {\n lastNode.data += data;\n }\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n if (normalizeWhitespace) {\n data = data.replace(reWhitespace, \" \");\n }\n var node = new node_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_1.Text(\"\");\n var node = new node_1.NodeWithChildren(domelementtype_1.ElementType.CDATA, [text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","var _isPlaceholder =\n/*#__PURE__*/\nrequire(\"./_isPlaceholder\");\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n\nmodule.exports = _curry1;","import React, { PropsWithChildren, useCallback, useMemo } from 'react';\nimport defaultListStyleSpecs from '../elements/defaultListStyleSpecs';\nimport selectSharedProps from '../helpers/selectSharedProps';\nimport { RenderHTMLSharedProps, RendererBaseProps } from '../shared-types';\nimport defaultSharedProps from './defaultSharedProps';\n\nconst SharedPropsContext = React.createContext(defaultSharedProps);\n\n/**\n * Use shared props. See {@link RenderHTMLSharedProps}.\n *\n * @public\n */\nexport function useSharedProps() {\n return React.useContext(SharedPropsContext);\n}\n\n/**\n * @internal\n */\nexport function useDefaultContainerProps(): Pick<\n RendererBaseProps,\n 'viewProps' | 'textProps'\n> {\n const sharedProps = useSharedProps();\n return {\n viewProps: {\n ...defaultSharedProps.defaultViewProps,\n ...sharedProps.defaultViewProps\n },\n textProps: {\n ...defaultSharedProps.defaultTextProps,\n ...sharedProps.defaultTextProps\n }\n };\n}\n\n/**\n * Compute max width for a given tag. Uses\n * {@link RenderHTMLProps.computeEmbeddedMaxWidth}\n * and {@link RenderHTMLProps.contentWidth} under the hood.\n *\n * @param tagName - The tag to target.\n *\n * @public\n */\nexport function useComputeMaxWidthForTag(tagName: string) {\n const { computeEmbeddedMaxWidth } = useSharedProps();\n return useCallback(\n (cw: number) => {\n return computeEmbeddedMaxWidth(cw, tagName);\n },\n [computeEmbeddedMaxWidth, tagName]\n );\n}\n\n/**\n * @internal\n */\nexport default function SharedPropsProvider(\n props: PropsWithChildren\n) {\n const memoizedSharedProps = useMemo(\n () => ({\n ...selectSharedProps(props),\n customListStyleSpecs: {\n ...defaultListStyleSpecs,\n ...props.customListStyleSpecs\n }\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(selectSharedProps(props))\n );\n return React.createElement(\n SharedPropsContext.Provider,\n { value: memoizedSharedProps },\n props.children\n );\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport Dimensions from '../../exports/Dimensions';\nimport findNodeHandle from '../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport Platform from '../../exports/Platform';\nimport TextInputState from '../TextInputState';\nimport UIManager from '../../exports/UIManager';\nimport warning from 'fbjs/lib/warning';\n/**\n * Mixin that can be integrated in order to handle scrolling that plays well\n * with `ResponderEventPlugin`. Integrate with your platform specific scroll\n * views, or even your custom built (every-frame animating) scroll views so that\n * all of these systems play well with the `ResponderEventPlugin`.\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 * `ScrollResponder` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. The `ScrollResponder` 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\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nvar ScrollResponderMixin = {\n // mixins: [Subscribable.Mixin],\n scrollResponderMixinGetInitialState: function scrollResponderMixinGetInitialState() {\n return {\n isTouching: false,\n lastMomentumScrollBeginTime: 0,\n lastMomentumScrollEndTime: 0,\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).\n observedScrollSinceBecomingResponder: false,\n becameResponderWhileAnimating: false\n };\n },\n\n /**\n * Invoke this from an `onScroll` event.\n */\n scrollResponderHandleScrollShouldSetResponder: function scrollResponderHandleScrollShouldSetResponder() {\n return this.state.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 scrollResponderHandleStartShouldSetResponder: function scrollResponderHandleStartShouldSetResponder() {\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 the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n scrollResponderHandleStartShouldSetResponderCapture: function scrollResponderHandleStartShouldSetResponderCapture(e) {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\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 scrollResponderHandleResponderReject: function scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\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 scrollResponderHandleTerminationRequest: function scrollResponderHandleTerminationRequest() {\n return !this.state.observedScrollSinceBecomingResponder;\n },\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n scrollResponderHandleTouchEnd: function scrollResponderHandleTouchEnd(e) {\n var nativeEvent = e.nativeEvent;\n this.state.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n },\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n scrollResponderHandleResponderRelease: function scrollResponderHandleResponderRelease(e) {\n this.props.onResponderRelease && this.props.onResponderRelease(e); // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.state.observedScrollSinceBecomingResponder && !this.state.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n },\n scrollResponderHandleScroll: function scrollResponderHandleScroll(e) {\n this.state.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n },\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n scrollResponderHandleResponderGrant: function scrollResponderHandleResponderGrant(e) {\n this.state.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.state.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\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 scrollResponderHandleScrollBeginDrag: function scrollResponderHandleScrollBeginDrag(e) {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n },\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n scrollResponderHandleScrollEndDrag: function scrollResponderHandleScrollEndDrag(e) {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n scrollResponderHandleMomentumScrollBegin: function scrollResponderHandleMomentumScrollBegin(e) {\n this.state.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n scrollResponderHandleMomentumScrollEnd: function scrollResponderHandleMomentumScrollEnd(e) {\n this.state.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(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 {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchStart: function scrollResponderHandleTouchStart(e) {\n this.state.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 {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchMove: function scrollResponderHandleTouchMove(e) {\n this.props.onTouchMove && this.props.onTouchMove(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 scrollResponderIsAnimating: function scrollResponderIsAnimating() {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.state.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.state.lastMomentumScrollEndTime < this.state.lastMomentumScrollBeginTime;\n return isAnimating;\n },\n\n /**\n * Returns the node that represents native view that can be scrolled.\n * Components can pass what node to use by defining a `getScrollableNode`\n * function otherwise `this` is used.\n */\n scrollResponderGetScrollableNode: function scrollResponderGetScrollableNode() {\n return this.getScrollableNode ? this.getScrollableNode() : findNodeHandle(this);\n },\n\n /**\n * A helper function to scroll to a specific point in the scrollview.\n * This is currently used to help focus on child textviews, but can also\n * be used to quickly scroll to any element we want to focus. Syntax:\n *\n * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollResponderScrollTo: function scrollResponderScrollTo(x, y, animated) {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n var node = this.scrollResponderGetScrollableNode();\n var left = x || 0;\n var top = y || 0;\n\n if (typeof node.scroll === 'function') {\n node.scroll({\n top: top,\n left: left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\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: function scrollResponderZoomTo(rect, animated) // deprecated, put this inside the rect argument instead\n {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n },\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators: function scrollResponderFlashScrollIndicators() {},\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 {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"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: function scrollResponderScrollNativeHandleToKeyboard(nodeHandle, additionalOffset, preventNegativeScrollOffset) {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\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 scrollResponderInputMeasureAndScrollToKeyboard: function scrollResponderInputMeasureAndScrollToKeyboard(left, top, width, height) {\n var keyboardScreenY = Dimensions.get('window').height;\n\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset; // 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\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n },\n scrollResponderTextInputFocusError: function scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n },\n\n /**\n * `componentWillMount` is the closest thing to a standard \"constructor\" for\n * React components.\n *\n * The `keyboardWillShow` is called before input focus.\n */\n UNSAFE_componentWillMount: function UNSAFE_componentWillMount() {\n this.keyboardWillOpenTo = null;\n this.additionalScrollOffset = 0; // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', this.scrollResponderKeyboardWillShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillHide', this.scrollResponderKeyboardWillHide);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidShow', this.scrollResponderKeyboardDidShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidHide', this.scrollResponderKeyboardDidHide);\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` providesModule 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 scrollResponderKeyboardWillShow: function scrollResponderKeyboardWillShow(e) {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n },\n scrollResponderKeyboardWillHide: function scrollResponderKeyboardWillHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n },\n scrollResponderKeyboardDidShow: function scrollResponderKeyboardDidShow(e) {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n },\n scrollResponderKeyboardDidHide: function scrollResponderKeyboardDidHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n }\n};\nvar ScrollResponder = {\n Mixin: ScrollResponderMixin\n};\nexport default ScrollResponder;","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 _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\n\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n\n get y() {\n return e.target.scrollTop;\n }\n\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n\n get width() {\n return e.target.scrollWidth;\n }\n\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n\n get width() {\n return e.target.offsetWidth;\n }\n\n }\n },\n timeStamp: Date.now()\n };\n}\n\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\n\n\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"]);\n\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollRef = React.useRef(null);\n\n function createPreventableScrollHandler(handler) {\n return function (e) {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n\n function handleScroll(e) {\n e.stopPropagation();\n\n if (e.target === scrollRef.current) {\n e.persist(); // A scroll happened, so the scroll resets the scrollend timeout.\n\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n\n scrollTimeout.current = setTimeout(function () {\n handleScrollEnd(e);\n }, 100);\n\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n}); // Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\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\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createReactClass from 'create-react-class';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport ScrollResponder from '../../modules/ScrollResponder';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React from 'react';\nvar emptyObject = {};\n/* eslint-disable react/prefer-es6-class */\n\nvar ScrollView = createReactClass({\n displayName: \"ScrollView\",\n mixins: [ScrollResponder.Mixin],\n getInitialState: function getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n flashScrollIndicators: function flashScrollIndicators() {\n this.scrollResponderFlashScrollIndicators();\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: function getScrollResponder() {\n return this;\n },\n getScrollableNode: function getScrollableNode() {\n return this._scrollNodeRef;\n },\n getInnerViewRef: function getInnerViewRef() {\n return this._innerViewRef;\n },\n getInnerViewNode: function getInnerViewNode() {\n return this._innerViewRef;\n },\n getNativeScrollRef: function getNativeScrollRef() {\n return this._scrollNodeRef;\n },\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n * Syntax:\n *\n * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: function scrollTo(y, x, animated) {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = y || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n this.getScrollResponder().scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\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: function scrollToEnd(options) {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponder = this.getScrollResponder();\n var scrollResponderNode = scrollResponder.scrollResponderGetScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n scrollResponder.scrollResponderScrollTo({\n x: x,\n y: y,\n animated: animated\n });\n },\n render: function render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n other = _objectWithoutPropertiesLoose(_this$props, [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\"]);\n\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(function (prop) {\n return style && style[prop] !== undefined;\n });\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n\n var contentSizeChangeProps = {};\n\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, function (child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild)\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: StyleSheet.compose(horizontal && styles.contentContainerHorizontal, contentContainerStyle)\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n var scrollView = /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n\n return scrollView;\n },\n _handleContentOnLayout: function _handleContentOnLayout(e) {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n },\n _handleScroll: function _handleScroll(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n\n this.scrollResponderHandleScroll(e);\n },\n _setInnerViewRef: function _setInnerViewRef(node) {\n this._innerViewRef = node;\n },\n _setScrollNodeRef: function _setScrollNodeRef(node) {\n this._scrollNodeRef = node; // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n }\n});\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: [{\n translateZ: 0\n }],\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { WINDOW } from '../../types';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\n if (event.type === 'pagehide' || WINDOW.document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport styleResolver from './styleResolver';\n/**\n * A simple (and dangerous) CSS system.\n * The order of CSS rule insertion is not guaranteed.\n * Avoiding combining 2 or more classes that modify the same property.\n */\n\nvar css = {\n /**\n * const classes = css.create({ base: {}, extra: {} })\n */\n create: function create(rules, group) {\n return styleResolver.createCSS(rules, group);\n }\n};\nexport default css;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 * \n */\nimport View from '../../exports/View';\nimport React from 'react';\n/**\n * Common implementation for a simple stubbed view.\n */\n\nvar UnimplementedView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(UnimplementedView, _React$Component);\n\n function UnimplementedView() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = UnimplementedView.prototype;\n\n _proto.setNativeProps = function setNativeProps() {// Do nothing.\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n };\n\n return UnimplementedView;\n}(React.Component);\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(function () {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\n\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport invariant from 'fbjs/lib/invariant';\nimport requestIdleCallback, { cancelIdleCallback } from '../../modules/requestIdleCallback';\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions: function runAfterInteractions(task) {\n var handle;\n var promise = new Promise(function (resolve) {\n handle = requestIdleCallback(function () {\n if (task) {\n resolve(task());\n } else {\n resolve();\n }\n });\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: function cancel() {\n cancelIdleCallback(handle);\n }\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle: function createInteractionHandle() {\n return 1;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle: function clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n addListener: function addListener() {}\n};\nexport default InteractionManager;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nvar assets = [];\nexport function registerAsset(asset) {\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}\nexport function getAssetByID(assetId) {\n return assets[assetId - 1];\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nvar dataUriPattern = /^data:/;\nexport var ImageUriCache = /*#__PURE__*/function () {\n function ImageUriCache() {}\n\n ImageUriCache.has = function has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n };\n\n ImageUriCache.add = function add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp: lastUsedTimestamp,\n refCount: 1\n };\n }\n };\n\n ImageUriCache.remove = function remove(uri) {\n var entries = ImageUriCache._entries;\n\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n } // Free up entries when the cache is \"full\"\n\n\n ImageUriCache._cleanUpIfNeeded();\n };\n\n ImageUriCache._cleanUpIfNeeded = function _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(function (uri) {\n var entry = entries[uri];\n\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n };\n\n return ImageUriCache;\n}();\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort: function abort(requestId) {\n var image = requests[\"\" + requestId];\n\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n getSize: function getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n\n function callback() {\n var image = requests[\"\" + requestId];\n\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n has: function has(uri) {\n return ImageUriCache.has(uri);\n },\n load: function load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n\n image.onload = function (e) {\n // avoid blocking the main thread\n var onDecode = function onDecode() {\n return onLoad({\n nativeEvent: e\n });\n };\n\n if (typeof image.decode === 'function') {\n // Safari currently throws exceptions when decoding svgs.\n // We want to catch that error and allow the load handler\n // to be forwarded to the onLoad handler in this case\n image.decode().then(onDecode, onDecode);\n } else {\n setTimeout(onDecode, 0);\n }\n };\n\n image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n prefetch: function prefetch(uri) {\n return new Promise(function (resolve, reject) {\n ImageLoader.load(uri, function () {\n // Add the uri to the cache so it can be immediately displayed when used\n // but also immediately remove it to correctly reflect that it has no active references\n ImageUriCache.add(uri);\n ImageUriCache.remove(uri);\n resolve();\n }, reject);\n });\n },\n queryCache: function queryCache(uris) {\n var result = {};\n uris.forEach(function (u) {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n};\nexport default ImageLoader;","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 _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport resolveShadowValue from '../StyleSheet/resolveShadowValue';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\n\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\n\nfunction getFlatStyle(style, blurRadius, filterId) {\n var flatStyle = _objectSpread({}, StyleSheet.flatten(style));\n\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor; // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n\n var filters = [];\n var _filter = null;\n\n if (filter) {\n filters.push(filter);\n }\n\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n\n if (shadowOffset) {\n var shadowString = resolveShadowValue(flatStyle);\n\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n\n if (tintColor && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n\n if (filters.length > 0) {\n _filter = filters.join(' ');\n } // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n\n\n delete flatStyle.blurRadius;\n delete flatStyle.shadowColor;\n delete flatStyle.shadowOpacity;\n delete flatStyle.shadowOffset;\n delete flatStyle.shadowRadius;\n delete flatStyle.tintColor; // These styles are not supported on View\n\n delete flatStyle.overlayColor;\n delete flatStyle.resizeMode;\n return [flatStyle, resizeMode, _filter, tintColor];\n}\n\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\n\n return {\n height: _height,\n width: _width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height2 = source.height,\n _width2 = source.width;\n return {\n height: _height2,\n width: _width2\n };\n }\n}\n\nfunction resolveAssetUri(source) {\n var uri = null;\n\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n var scale = asset.scales[0];\n\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get(); // Get the scale which is closest to the preferred scale\n\n scale = asset.scales.reduce(function (prev, curr) {\n return Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev;\n });\n }\n\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n\n if (uri) {\n var match = uri.match(svgDataUriPattern); // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n\n return uri;\n}\n\nvar Image = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var accessibilityLabel = props.accessibilityLabel,\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n\n var _React$useState = React.useState(function () {\n var uri = resolveAssetUri(source);\n\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n\n if (isLoaded) {\n return LOADED;\n }\n }\n\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hiddenImageRef = React.useRef(null);\n var filterRef = React.useRef(_filterId++);\n var requestRef = React.useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n\n var _getFlatStyle = getFlatStyle(style, blurRadius, filterRef.current),\n flatStyle = _getFlatStyle[0],\n _resizeMode = _getFlatStyle[1],\n filter = _getFlatStyle[2],\n tintColor = _getFlatStyle[3];\n\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize(); // Accessibility image allows users to trigger the browser's image context menu\n\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: accessibilityLabel || '',\n classList: [classes.accessibilityImage],\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var _height3 = layout.height,\n _width3 = layout.width;\n\n if (naturalHeight && naturalWidth && _height3 && _width3) {\n var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n var x = Math.ceil(scaleFactor * naturalWidth);\n var y = Math.ceil(scaleFactor * naturalHeight);\n return x + \"px \" + y + \"px\";\n }\n }\n }\n\n function handleLayout(e) {\n if (resizeMode === 'center' || resizeMode === 'repeat' || onLayout) {\n var _layout = e.nativeEvent.layout;\n onLayout && onLayout(e);\n updateLayout(_layout);\n }\n } // Image loading\n\n\n var uri = resolveAssetUri(source);\n React.useEffect(function () {\n abortPendingRequest();\n\n if (uri != null) {\n updateState(LOADING);\n\n if (onLoadStart) {\n onLoadStart();\n }\n\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n\n if (onLoad) {\n onLoad(e);\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityLabel: accessibilityLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, flatStyle]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage: backgroundImage,\n filter: filter\n }, backgroundSize != null && {\n backgroundSize: backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image'; // $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\n\nvar ImageWithStatics = Image;\n\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\n\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\n\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\n\nvar classes = css.create({\n accessibilityImage: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0 0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0 0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\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, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\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\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\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\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\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\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\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\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\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}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _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}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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 detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\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 proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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 // 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\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\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 * 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 * 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/** 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 infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\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 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\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 * 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 * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\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 `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\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 `_.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 `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\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 * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\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 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\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\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 * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\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 * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(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 * 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 a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\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 * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\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 = merge;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import * as React from 'react';\nimport {\n findNodeHandle as findNodeHandleRN,\n NativeModules,\n Platform,\n Touchable,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport deepEqual from 'fbjs/lib/areEqual';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\n\nimport {\n BaseGestureHandlerProps,\n GestureEvent,\n HandlerStateChangeEvent,\n} from './gestureHandlers';\nimport { ValueOf } from '../typeUtils';\n\nfunction findNodeHandle(\n node: null | number | React.Component | React.ComponentClass\n): null | number | React.Component | React.ComponentClass {\n if (Platform.OS === 'web') return node;\n return findNodeHandleRN(node);\n}\n\nconst { UIManager = {} } = NativeModules;\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\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.\nUIManager.genericDirectEventTypes = {\n ...UIManager.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 UIManager.getViewManagerConfig?.('getConstants') ??\n UIManager.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} = UIManager;\nUIManager.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManager.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet handlerTag = 1;\nconst handlerIDToTag: Record = {};\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))) &&\n name !== 'onHandlerStateChange' &&\n name !== 'onGestureEvent'\n );\n}\n\nfunction filterConfig(\n props: Record,\n validProps: string[],\n defaults: Record = {}\n) {\n const res = { ...defaults };\n validProps.forEach((key) => {\n const value = props[key];\n if (isConfigParam(value, key)) {\n let value = props[key];\n if (key === 'simultaneousHandlers' || key === 'waitFor') {\n value = transformIntoHandlerTags(props[key]);\n } else if (key === 'hitSlop') {\n if (typeof value !== 'object') {\n value = { top: value, left: value, bottom: value, right: value };\n }\n }\n res[key] = value;\n }\n });\n return res;\n}\n\nfunction transformIntoHandlerTags(handlerIDs: any) {\n if (!Array.isArray(handlerIDs)) {\n handlerIDs = [handlerIDs];\n }\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\ntype HandlerProps> = Readonly<\n React.PropsWithChildren>\n>;\nfunction hasUnresolvedRefs>(\n props: HandlerProps\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<\n HandlerPropsT extends Record\n> = Readonly<{\n name: string;\n allowedProps: Readonly[]>;\n config: Readonly>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly;\n}>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\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,\n U extends Record\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs): React.ComponentType> {\n class Handler extends React.Component {\n static displayName = name;\n\n private handlerTag: number;\n private config: Record;\n private propsRef: React.MutableRefObject;\n private viewNode: any;\n private viewTag?: number;\n private updateEnqueued: ReturnType | null = null;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = handlerTag++;\n this.config = {};\n this.propsRef = React.createRef();\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 = this.props;\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();\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();\n }\n\n componentWillUnmount() {\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\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) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n this.props.onGestureEvent?.(event);\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\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n this.props.onHandlerStateChange?.(event);\n\n const state: ValueOf = 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>\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 (RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler)(\n this.handlerTag,\n newViewTag,\n this.propsRef\n );\n } else {\n RNGestureHandlerModule.attachGestureHandler(\n this.handlerTag,\n newViewTag\n );\n }\n };\n\n private updateGestureHandler = (\n newConfig: Readonly>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n };\n\n private update() {\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 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['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const {\n onGestureEvent,\n onGestureHandlerEvent,\n }: OnGestureEventHandlers = 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['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: gestureEventHandler,\n onGestureHandlerStateChange: gestureStateEventHandler,\n };\n\n this.propsRef.current = events;\n\n const child: any = React.Children.only(this.props.children);\n let grandChildren = child.props.children;\n if (\n Touchable.TOUCH_TARGET_DEBUG &&\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 Touchable.renderDebugView({\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 ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var toRad=function toRad(value){return value*Math.PI/180};var _default=toRad;exports.default=_default;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\n\nexport function useControlledState(value: Exclude, defaultValue: Exclude | undefined, onChange?: (v: C, ...args: any[]) => void): [T, (value: T) => void];\nexport function useControlledState(value: Exclude | undefined, defaultValue: Exclude, onChange?: (v: C, ...args: any[]) => void): [T, (value: T) => void];\nexport function useControlledState(value: T, defaultValue: T, onChange?: (v: C, ...args: any[]) => void): [T, (value: T) => void] {\n let [stateValue, setStateValue] = useState(value || defaultValue);\n\n let isControlledRef = useRef(value !== undefined);\n let isControlled = value !== undefined;\n useEffect(() => {\n let wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n }\n isControlledRef.current = isControlled;\n }, [isControlled]);\n\n let currentValue = isControlled ? value : stateValue;\n let setValue = useCallback((value, ...args) => {\n let onChangeCaller = (value, ...onChangeArgs) => {\n if (onChange) {\n if (!Object.is(currentValue, value)) {\n onChange(value, ...onChangeArgs);\n }\n }\n if (!isControlled) {\n // If uncontrolled, mutate the currentValue local variable so that\n // calling setState multiple times with the same value only emits onChange once.\n // We do not use a ref for this because we specifically _do_ want the value to\n // reset every render, and assigning to a ref in render breaks aborted suspended renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n currentValue = value;\n }\n };\n\n if (typeof value === 'function') {\n console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs) => {\n let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) {\n return interceptedValue;\n }\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) {\n setStateValue(value);\n }\n onChangeCaller(value, ...args);\n }\n }, [isControlled, currentValue, onChange]);\n\n return [currentValue, setValue];\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { useEffect, useLayoutEffect } from 'react';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","const o=new WeakMap;let l=0;export default function i(t){const c=typeof t,s=t&&t.constructor,f=s==Date;let e,n;if(Object(t)===t&&!f&&s!=RegExp){if(e=o.get(t),e)return e;if(e=++l+\"~\",o.set(t,e),s==Array){for(e=\"@\",n=0;n({\n colorMode: {\n colorMode: 'light',\n toggleColorMode: () => {},\n setColorMode: () => {},\n accessibleColors: false,\n setAccessibleColors: () => {},\n },\n});\n","import type { PropagationContext, TraceparentData } from '@sentry/types';\n\nimport { baggageHeaderToDynamicSamplingContext } from './baggage';\nimport { uuid4 } from './misc';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent?: string): TraceparentData | undefined {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create tracing context from incoming headers.\n *\n * @deprecated Use `propagationContextFromHeaders` instead.\n */\n// TODO(v8): Remove this function\nexport function tracingContextFromHeaders(\n sentryTrace: Parameters[0],\n baggage: Parameters[0],\n): {\n traceparentData: ReturnType;\n dynamicSamplingContext: ReturnType;\n propagationContext: PropagationContext;\n} {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceparentData,\n dynamicSamplingContext: undefined,\n propagationContext: {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n },\n };\n } else {\n return {\n traceparentData,\n dynamicSamplingContext: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n propagationContext: {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n },\n };\n }\n}\n\n/**\n * Create a propagation context from incoming headers.\n */\nexport function propagationContextFromHeaders(\n sentryTrace: string | undefined,\n baggage: string | number | boolean | string[] | null | undefined,\n): PropagationContext {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n };\n } else {\n return {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n };\n }\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nexport function generateSentryTraceHeader(\n traceId: string = uuid4(),\n spanId: string = uuid4().substring(16),\n sampled?: boolean,\n): string {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport type { Metric, ReportCallback } from '../types';\n\nexport const bindReporter = (\n callback: ReportCallback,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n let delta: number;\n return (forceReport?: boolean) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n callback(metric);\n }\n }\n }\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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 * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = (): string => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { WINDOW } from '../../types';\nimport type { NavigationTimingPolyfillEntry } from '../types';\n\nconst getNavigationEntryFromPerformanceTiming = (): NavigationTimingPolyfillEntry => {\n // eslint-disable-next-line deprecation/deprecation\n const timing = WINDOW.performance.timing;\n // eslint-disable-next-line deprecation/deprecation\n const type = WINDOW.performance.navigation.type;\n\n const navigationEntry: { [key: string]: number | string } = {\n entryType: 'navigation',\n startTime: 0,\n type: type == 2 ? 'back_forward' : type === 1 ? 'reload' : 'navigate',\n };\n\n for (const key in timing) {\n if (key !== 'navigationStart' && key !== 'toJSON') {\n // eslint-disable-next-line deprecation/deprecation\n navigationEntry[key] = Math.max((timing[key as keyof PerformanceTiming] as number) - timing.navigationStart, 0);\n }\n }\n return navigationEntry as unknown as NavigationTimingPolyfillEntry;\n};\n\nexport const getNavigationEntry = (): PerformanceNavigationTiming | NavigationTimingPolyfillEntry | undefined => {\n if (WINDOW.__WEB_VITALS_POLYFILL__) {\n return (\n WINDOW.performance &&\n ((performance.getEntriesByType && performance.getEntriesByType('navigation')[0]) ||\n getNavigationEntryFromPerformanceTiming())\n );\n } else {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n }\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const getActivationStart = (): number => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { WINDOW } from '../../types';\nimport type { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\nimport { getActivationStart } from './getActivationStart';\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n const navEntry = getNavigationEntry();\n let navigationType: Metric['navigationType'] = 'navigate';\n\n if (navEntry) {\n if (WINDOW.document.prerendering || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else {\n navigationType = navEntry.type.replace(/_/g, '-') as Metric['navigationType'];\n }\n }\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good', // Will be updated if the value changes.\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n navigationType,\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport type { FirstInputPolyfillEntry, NavigationTimingPolyfillEntry, PerformancePaintTiming } from '../types';\n\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\ninterface PerformanceEntryMap {\n event: PerformanceEventTiming[];\n paint: PerformancePaintTiming[];\n 'layout-shift': LayoutShift[];\n 'largest-contentful-paint': LargestContentfulPaint[];\n 'first-input': PerformanceEventTiming[] | FirstInputPolyfillEntry[];\n navigation: PerformanceNavigationTiming[] | NavigationTimingPolyfillEntry[];\n resource: PerformanceResourceTiming[];\n longtask: PerformanceEntry[];\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = (\n type: K,\n callback: (entries: PerformanceEntryMap[K]) => void,\n opts?: PerformanceObserverInit,\n): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n callback(list.getEntries() as PerformanceEntryMap[K]);\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) as PerformanceObserverInit,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { CLSMetric, ReportCallback, StopListening } from './types';\n\n/**\n * Calculates the [CLS](https://web.dev/cls/) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/cls/#layout-shift-score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onCLS = (onReport: ReportCallback): StopListening | undefined => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n // const handleEntries = (entries: Metric['entries']) => {\n const handleEntries = (entries: LayoutShift[]): void => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n });\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = (): void => {\n handleEntries(po.takeRecords() as CLSMetric['entries']);\n report(true);\n };\n\n onHidden(stopListening);\n\n return stopListening;\n }\n\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { FIDMetric, PerformanceEventTiming, ReportCallback } from './types';\n\n/**\n * Calculates the [FID](https://web.dev/fid/) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nexport const onFID = (onReport: ReportCallback): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report: ReturnType;\n\n const handleEntry = (entry: PerformanceEventTiming): void => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries: FIDMetric['entries']): void => {\n (entries as PerformanceEventTiming[]).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric);\n\n if (po) {\n onHidden(() => {\n handleEntries(po.takeRecords() as FIDMetric['entries']);\n po.disconnect();\n }, true);\n }\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport type { Metric } from '../../types';\nimport { observe } from '../observe';\n\ndeclare global {\n interface Performance {\n interactionCount: number;\n }\n}\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries: Metric['entries']): void => {\n (entries as PerformanceEventTiming[]).forEach(e => {\n if (e.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n }\n });\n};\n\nlet po: PerformanceObserver | undefined;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport const getInteractionCount = (): number => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nexport const initInteractionCountPolyfill = (): void => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } as PerformanceObserverInit);\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { getInteractionCount, initInteractionCountPolyfill } from './lib/polyfills/interactionCountPolyfill';\nimport type { ReportCallback, ReportOpts } from './types';\nimport type { INPMetric } from './types/inp';\n\ninterface Interaction {\n id: number;\n latency: number;\n entries: PerformanceEventTiming[];\n}\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = (): number => {\n return getInteractionCount();\n};\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n// A list of longest interactions on the page (by latency) sorted so the\n// longest one is first. The list is as most MAX_INTERACTIONS_TO_CONSIDER long.\nconst longestInteractionList: Interaction[] = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap: { [interactionId: string]: Interaction } = {};\n\n/**\n * Takes a performance entry and adds it to the list of worst interactions\n * if its duration is long enough to make it among the worst. If the\n * entry is part of an existing interaction, it is merged and the latency\n * and entries list is updated as needed.\n */\nconst processEntry = (entry: PerformanceEventTiming): void => {\n // The least-long of the 10 longest interactions.\n const minLongestInteraction = longestInteractionList[longestInteractionList.length - 1];\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const existingInteraction = longestInteractionMap[entry.interactionId!];\n\n // Only process the entry if it's possibly one of the ten longest,\n // or if it's part of an existing interaction.\n if (\n existingInteraction ||\n longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n entry.duration > minLongestInteraction.latency\n ) {\n // If the interaction already exists, update it. Otherwise create one.\n if (existingInteraction) {\n existingInteraction.entries.push(entry);\n existingInteraction.latency = Math.max(existingInteraction.latency, entry.duration);\n } else {\n const interaction = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n id: entry.interactionId!,\n latency: entry.duration,\n entries: [entry],\n };\n longestInteractionMap[interaction.id] = interaction;\n longestInteractionList.push(interaction);\n }\n\n // Sort the entries by latency (descending) and keep only the top ten.\n longestInteractionList.sort((a, b) => b.latency - a.latency);\n longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER).forEach(i => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete longestInteractionMap[i.id];\n });\n }\n};\n\n/**\n * Returns the estimated p98 longest interaction based on the stored\n * interaction candidates and the interaction count for the current page.\n */\nconst estimateP98LongestInteraction = (): Interaction => {\n const candidateInteractionIndex = Math.min(\n longestInteractionList.length - 1,\n Math.floor(getInteractionCountForNavigation() / 50),\n );\n\n return longestInteractionList[candidateInteractionIndex];\n};\n\n/**\n * Calculates the [INP](https://web.dev/responsiveness/) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed to\n * control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 are\n * reported as 0. Note that this will not affect your 75th percentile INP value\n * unless that value is also less than 40 (well below the recommended\n * [good](https://web.dev/inp/#what-is-a-good-inp-score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onINP = (onReport: ReportCallback, opts?: ReportOpts): void => {\n // Set defaults\n // eslint-disable-next-line no-param-reassign\n opts = opts || {};\n\n // https://web.dev/inp/#what's-a-%22good%22-inp-value\n // const thresholds = [200, 500];\n\n // TODO(philipwalton): remove once the polyfill is no longer needed.\n initInteractionCountPolyfill();\n\n const metric = initMetric('INP');\n // eslint-disable-next-line prefer-const\n let report: ReturnType;\n\n const handleEntries = (entries: INPMetric['entries']): void => {\n entries.forEach(entry => {\n if (entry.interactionId) {\n processEntry(entry);\n }\n\n // Entries of type `first-input` don't currently have an `interactionId`,\n // so to consider them in INP we have to first check that an existing\n // entry doesn't match the `duration` and `startTime`.\n // Note that this logic assumes that `event` entries are dispatched\n // before `first-input` entries. This is true in Chrome but it is not\n // true in Firefox; however, Firefox doesn't support interactionId, so\n // it's not an issue at the moment.\n // TODO(philipwalton): remove once crbug.com/1325826 is fixed.\n if (entry.entryType === 'first-input') {\n const noMatchingEntry = !longestInteractionList.some(interaction => {\n return interaction.entries.some(prevEntry => {\n return entry.duration === prevEntry.duration && entry.startTime === prevEntry.startTime;\n });\n });\n if (noMatchingEntry) {\n processEntry(entry);\n }\n }\n });\n\n const inp = estimateP98LongestInteraction();\n\n if (inp && inp.latency !== metric.value) {\n metric.value = inp.latency;\n metric.entries = inp.entries;\n report();\n }\n };\n\n const po = observe('event', handleEntries, {\n // Event Timing entries have their durations rounded to the nearest 8ms,\n // so a duration of 40ms would be any event that spans 2.5 or more frames\n // at 60Hz. This threshold is chosen to strike a balance between usefulness\n // and performance. Running this callback for any interaction that spans\n // just one or two frames is likely not worth the insight that could be\n // gained.\n durationThreshold: opts.durationThreshold || 40,\n } as PerformanceObserverInit);\n\n report = bindReporter(onReport, metric, opts.reportAllChanges);\n\n if (po) {\n // Also observe entries of type `first-input`. This is useful in cases\n // where the first interaction is less than the `durationThreshold`.\n po.observe({ type: 'first-input', buffered: true });\n\n onHidden(() => {\n handleEntries(po.takeRecords() as INPMetric['entries']);\n\n // If the interaction count shows that there were interactions but\n // none were captured by the PerformanceObserver, report a latency of 0.\n if (metric.value < 0 && getInteractionCountForNavigation() > 0) {\n metric.value = 0;\n metric.entries = [];\n }\n\n report(true);\n });\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://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\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { LCPMetric, ReportCallback, StopListening } from './types';\n\nconst reportedMetricIDs: Record = {};\n\n/**\n * Calculates the [LCP](https://web.dev/lcp/) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n */\nexport const onLCP = (onReport: ReportCallback): StopListening | undefined => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType;\n\n const handleEntries = (entries: LCPMetric['entries']): void => {\n const lastEntry = entries[entries.length - 1] as LargestContentfulPaint;\n if (lastEntry) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered.\n const value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n\n // Only report if the page wasn't hidden prior to LCP.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() as LCPMetric['entries']);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n addEventListener(type, stopListening, { once: true, capture: true });\n });\n\n onHidden(stopListening, true);\n\n return stopListening;\n }\n\n return;\n};\n","import { getFunctionName, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { onCLS } from './web-vitals/getCLS';\nimport { onFID } from './web-vitals/getFID';\nimport { onINP } from './web-vitals/getINP';\nimport { onLCP } from './web-vitals/getLCP';\nimport { observe } from './web-vitals/lib/observe';\n\ntype InstrumentHandlerTypePerformanceObserver = 'longtask' | 'event' | 'navigation' | 'paint' | 'resource';\n\ntype InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'fid' | 'inp';\n\n// We provide this here manually instead of relying on a global, as this is not available in non-browser environements\n// And we do not want to expose such types\ninterface PerformanceEntry {\n readonly duration: number;\n readonly entryType: string;\n readonly name: string;\n readonly startTime: number;\n toJSON(): Record;\n}\ninterface PerformanceEventTiming extends PerformanceEntry {\n processingStart: number;\n processingEnd: number;\n duration: number;\n cancelable?: boolean;\n target?: unknown | null;\n interactionId?: number;\n}\n\ninterface Metric {\n /**\n * The name of the metric (in acronym form).\n */\n name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';\n\n /**\n * The current value of the metric.\n */\n value: number;\n\n /**\n * The rating as to whether the metric value is within the \"good\",\n * \"needs improvement\", or \"poor\" thresholds of the metric.\n */\n rating: 'good' | 'needs-improvement' | 'poor';\n\n /**\n * The delta between the current value and the last-reported value.\n * On the first report, `delta` and `value` will always be the same.\n */\n delta: number;\n\n /**\n * A unique ID representing this particular metric instance. This ID can\n * be used by an analytics tool to dedupe multiple values sent for the same\n * metric instance, or to group multiple deltas together and calculate a\n * total. It can also be used to differentiate multiple different metric\n * instances sent from the same page, which can happen if the page is\n * restored from the back/forward cache (in that case new metrics object\n * get created).\n */\n id: string;\n\n /**\n * Any performance entries relevant to the metric value calculation.\n * The array may also be empty if the metric value was not based on any\n * entries (e.g. a CLS value of 0 given no layout shifts).\n */\n entries: PerformanceEntry[];\n\n /**\n * The type of navigation\n *\n * Navigation Timing API (or `undefined` if the browser doesn't\n * support that API). For pages that are restored from the bfcache, this\n * value will be 'back-forward-cache'.\n */\n navigationType: 'navigate' | 'reload' | 'back-forward' | 'back-forward-cache' | 'prerender';\n}\n\ntype InstrumentHandlerType = InstrumentHandlerTypeMetric | InstrumentHandlerTypePerformanceObserver;\n\ntype StopListening = undefined | void | (() => void);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstrumentHandlerCallback = (data: any) => void;\n\ntype CleanupHandlerCallback = () => void;\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\nlet _previousCls: Metric | undefined;\nlet _previousFid: Metric | undefined;\nlet _previousLcp: Metric | undefined;\nlet _previousInp: Metric | undefined;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nexport function addClsInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nexport function addLcpInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addFidInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addInpInstrumentationHandler(\n callback: (data: { metric: Omit & { entries: PerformanceEventTiming[] } }) => void,\n): CleanupHandlerCallback {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\nexport function addPerformanceInstrumentationHandler(\n type: 'event',\n callback: (data: { entries: ((PerformanceEntry & { target?: unknown | null }) | PerformanceEventTiming)[] }) => void,\n): CleanupHandlerCallback;\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback;\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls(): StopListening {\n return onCLS(metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n });\n}\n\nfunction instrumentFid(): void {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp(): StopListening {\n return onLCP(metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n });\n}\n\nfunction instrumentInp(): void {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type: InstrumentHandlerTypeMetric,\n callback: InstrumentHandlerCallback,\n instrumentFn: () => StopListening,\n previousValue: Metric | undefined,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n let stopListening: StopListening | undefined;\n\n if (!instrumented[type]) {\n stopListening = instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type: InstrumentHandlerTypePerformanceObserver): void {\n const options: PerformanceObserverInit = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type: InstrumentHandlerType,\n callback: InstrumentHandlerCallback,\n stopListening: StopListening,\n): CleanupHandlerCallback {\n return () => {\n if (stopListening) {\n stopListening();\n }\n\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n","const borderWidths = {\n '0': 0,\n '1': '1px',\n '2': '2px',\n '4': '4px',\n '8': '8px',\n};\n\nexport type IBorderWidth = keyof typeof borderWidths;\n\nexport default borderWidths;\n","const breakpoints = {\n 'base': 0,\n 'sm': 480,\n 'md': 768,\n 'lg': 992,\n 'xl': 1280,\n '2xl': 1536,\n};\nexport type IBreakpoint = keyof typeof breakpoints;\n\nexport default breakpoints;\n","const radii = {\n 'none': 0,\n 'xs': 2,\n 'sm': 4,\n 'md': 6,\n 'lg': 8,\n 'xl': 12,\n '2xl': 16,\n '3xl': 24,\n 'full': 9999,\n};\n\nexport type IRadii = keyof typeof radii;\n\nexport default radii;\n","import colors from './colors';\nconst shadow = {\n 'none': {\n shadowColor: 'transparent',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0,\n shadowRadius: 0,\n elevation: 0,\n },\n '0': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n elevation: 1,\n },\n '1': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n '2': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n elevation: 3,\n },\n '3': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n elevation: 4,\n },\n '4': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n elevation: 5,\n },\n '5': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n elevation: 6,\n },\n '6': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.29,\n shadowRadius: 4.65,\n elevation: 7,\n },\n '7': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.3,\n shadowRadius: 4.65,\n elevation: 8,\n },\n '8': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.32,\n shadowRadius: 5.46,\n elevation: 9,\n },\n '9': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n elevation: 10,\n },\n};\n\nexport type IShadow = keyof typeof shadow;\nexport default shadow;\n","export const spacing = {\n 'px': '1px',\n '0': 0,\n '0.5': 2,\n '1': 4,\n '1.5': 6,\n '2': 8,\n '2.5': 10,\n '3': 12,\n '3.5': 14,\n '4': 16,\n '5': 20,\n '6': 24,\n '7': 28,\n '8': 32,\n '9': 36,\n '10': 40,\n '12': 48,\n '16': 64,\n '20': 80,\n '24': 96,\n '32': 128,\n '40': 160,\n '48': 192,\n '56': 224,\n '64': 256,\n '72': 288,\n '80': 320,\n '96': 384,\n '1/2': '50%',\n '1/3': '33.333%',\n '2/3': '66.666%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666%',\n '2/6': '33.333%',\n '3/6': '50%',\n '4/6': '66.666%',\n '5/6': '83.333%',\n 'full': '100%',\n};\n\nexport type ISpacing = keyof typeof spacing;\n","const typography = {\n letterSpacings: {\n 'xs': '-0.05em',\n 'sm': '-0.025em',\n 'md': 0,\n 'lg': '0.025em',\n 'xl': '0.05em',\n '2xl': '0.1em',\n },\n lineHeights: {\n '2xs': '1em',\n 'xs': '1.125em',\n 'sm': '1.25em',\n 'md': '1.375em',\n 'lg': '1.5em',\n 'xl': '1.75em',\n '2xl': '2em',\n '3xl': '2.5em',\n '4xl': '3em',\n '5xl': '4em',\n },\n fontConfig: {\n // Roboto: {\n // 100: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 200: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 300: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 400: {\n // normal: 'Roboto-Regular',\n // italic: 'Roboto-Italic',\n // },\n // 500: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 600: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 700: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 800: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 900: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // },\n // Montserrat: {\n // 100: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 200: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 300: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 400: {\n // normal: 'Montserrat-Regular',\n // italic: 'Montserrat-Italic',\n // },\n // 500: {\n // normal: 'Montserrat-Medium',\n // italic: 'Montserrat-MediumItalic',\n // },\n // 600: {\n // normal: 'Montserrat-SemiBold',\n // italic: 'Montserrat-SemiBoldItalic',\n // },\n // 700: {\n // normal: 'Montserrat-Bold',\n // italic: 'Montserrat-BoldItalic',\n // },\n // 800: {\n // normal: 'Montserrat-ExtraBold',\n // italic: 'Montserrat-ExtraBoldItalic',\n // },\n // 900: {\n // normal: 'Montserrat-Black',\n // italic: 'Montserrat-BlackItalic',\n // },\n // },\n },\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n extraBlack: 950,\n },\n fonts: {\n heading: undefined,\n body: undefined,\n mono: undefined,\n },\n fontSizes: {\n '2xs': 10,\n 'xs': 12,\n 'sm': 14,\n 'md': 16,\n 'lg': 18,\n 'xl': 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 60,\n '7xl': 72,\n '8xl': 96,\n '9xl': 128,\n },\n};\n\nexport type ITypography = typeof typography;\nexport type IFontSize = keyof typeof typography.fontSizes;\nexport type ILetterSpacing = keyof typeof typography.letterSpacings;\nexport type ILineHeight = keyof typeof typography.lineHeights;\nexport type IFontWeight = keyof typeof typography.fontWeights;\n// export type IFont = typeof typography.fonts;\nexport interface IFont {\n heading?: string;\n body?: string;\n mono?: string;\n}\n\nexport default typography;\n","import { spacing } from './space';\n\nconst container = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n};\n\nconst sizes = {\n ...spacing,\n ...{\n '3xs': 224,\n '2xs': 256,\n 'xs': 320,\n 'sm': 384,\n 'md': 448,\n 'lg': 512,\n 'xl': 576,\n '2xl': 672,\n },\n container,\n};\n\nexport type ISizes = keyof typeof sizes;\nexport default sizes;\n","const opacity = {\n 0: 0,\n 5: 0.05,\n 10: 0.1,\n 20: 0.2,\n 25: 0.25,\n 30: 0.3,\n 40: 0.4,\n 50: 0.5,\n 60: 0.6,\n 70: 0.7,\n 75: 0.75,\n 80: 0.8,\n 90: 0.9,\n 95: 0.95,\n 100: 1,\n};\nexport type IOpacity = keyof typeof opacity;\n\nexport default opacity;\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 * @format\n */\n'use strict';\n\nimport EventEmitter from './_EventEmitter';\nexport default EventEmitter;","/**\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 * @format\n */\nimport EventEmitter from '../emitter/EventEmitter'; // FIXME: use typed events\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();","import { GLOBAL_OBJ } from './worldwide';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nexport function dateTimestampInSeconds(): number {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc(): () => number {\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & { performance?: Performance };\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Re-exported with an old name for backwards-compatibility.\n * TODO (v8): Remove this\n *\n * @deprecated Use `timestampInSeconds` instead.\n */\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","import { GenericCSSPropertyValidator } from './GenericPropertyValidator';\nimport { CSSPropertyValidatorParams, CSSPropertyModel } from './types';\n\nexport abstract class LongCSSPropertyValidator<\n C extends CSSPropertyModel = any,\n N = any\n> extends GenericCSSPropertyValidator {\n constructor(params: CSSPropertyValidatorParams) {\n super(params, false);\n }\n\n /**\n * Normalize a rule value from inline CSS styles.\n *\n * @param value - The CSS property value to test.\n * @returns The normalized value, or null if normalization failed.\n */\n normalizeInlineCSSValue(value: N | string): N | null {\n if (typeof value !== 'string') {\n return value;\n }\n return this.normalizeRawInlineCSSValue(value);\n }\n\n abstract normalizeRawInlineCSSValue(value: string): N | null;\n\n /**\n * Normalize a mixed value from a @{link MixedStyleDeclaration}.\n *\n * @param value\n */\n normalizeNativeValue(value: N): N | null {\n return value;\n }\n}\n","var _curry1 =\n/*#__PURE__*/\nrequire(\"./_curry1\");\n\nvar _isPlaceholder =\n/*#__PURE__*/\nrequire(\"./_isPlaceholder\");\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n\nmodule.exports = _curry2;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {JSX, ReactNode, useContext, useLayoutEffect, useMemo, useRef, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n prefix: string,\n current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\n\nconst SSRContext = React.createContext(defaultContext);\nconst IsSSRContext = React.createContext(false);\n\nexport interface SSRProviderProps {\n /** Your application here. */\n children: ReactNode\n}\n\n// This is only used in React < 18.\nfunction LegacySSRProvider(props: SSRProviderProps): JSX.Element {\n let cur = useContext(SSRContext);\n let counter = useCounter(cur === defaultContext);\n let [isSSR, setIsSSR] = useState(true);\n let value: SSRContextValue = useMemo(() => ({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === defaultContext ? '' : `${cur.prefix}-${counter}`,\n current: 0\n }), [cur, counter]);\n\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof document !== 'undefined') {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n setIsSSR(false);\n }, []);\n }\n\n return (\n \n \n {props.children}\n \n \n );\n}\n\nlet warnedAboutSSRProvider = false;\n\n/**\n * When using SSR with React Aria in React 16 or 17, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n if (typeof React['useId'] === 'function') {\n if (process.env.NODE_ENV !== 'test' && !warnedAboutSSRProvider) {\n console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n warnedAboutSSRProvider = true;\n }\n return <>{props.children};\n }\n return ;\n}\n\nlet canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nlet componentIds = new WeakMap();\n\nfunction useCounter(isDisabled = false) {\n let ctx = useContext(SSRContext);\n let ref = useRef(null);\n // eslint-disable-next-line rulesdir/pure-render\n if (ref.current === null && !isDisabled) {\n // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n // This means our id counter will be incremented twice instead of once. This is a problem because on the\n // server, components are only rendered once and so ids generated on the server won't match the client.\n // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n // To ensure that we only increment the global counter once, we store the starting id for this component in\n // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n // Since React runs the second render immediately after the first, this is safe.\n // @ts-ignore\n let currentOwner = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?.ReactCurrentOwner?.current;\n if (currentOwner) {\n let prevComponentValue = componentIds.get(currentOwner);\n if (prevComponentValue == null) {\n // On the first render, and first call to useId, store the id and state in our weak map.\n componentIds.set(currentOwner, {\n id: ctx.current,\n state: currentOwner.memoizedState\n });\n } else if (currentOwner.memoizedState !== prevComponentValue.state) {\n // On the second render, the memoizedState gets reset by React.\n // Reset the counter, and remove from the weak map so we don't\n // do this for subsequent useId calls.\n ctx.current = prevComponentValue.id;\n componentIds.delete(currentOwner);\n }\n }\n\n // eslint-disable-next-line rulesdir/pure-render\n ref.current = ++ctx.current;\n }\n\n // eslint-disable-next-line rulesdir/pure-render\n return ref.current;\n}\n\nfunction useLegacySSRSafeId(defaultId?: string): string {\n let ctx = useContext(SSRContext);\n\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === defaultContext && !canUseDOM) {\n console.warn('When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.');\n }\n\n let counter = useCounter(!!defaultId);\n let prefix = ctx === defaultContext && process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${ctx.prefix}`;\n return defaultId || `${prefix}-${counter}`;\n}\n\nfunction useModernSSRSafeId(defaultId?: string): string {\n // @ts-ignore\n let id = React.useId();\n let [didSSR] = useState(useIsSSR());\n let prefix = didSSR || process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${defaultContext.prefix}`;\n return defaultId || `${prefix}-${id}`;\n}\n\n// Use React.useId in React 18 if available, otherwise fall back to our old implementation.\n/** @private */\nexport const useSSRSafeId = typeof React['useId'] === 'function' ? useModernSSRSafeId : useLegacySSRSafeId;\n\nfunction getSnapshot() {\n return false;\n}\n\nfunction getServerSnapshot() {\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction subscribe(onStoreChange: () => void): () => void {\n // noop\n return () => {};\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n if (typeof React['useSyncExternalStore'] === 'function') {\n return React['useSyncExternalStore'](subscribe, getSnapshot, getServerSnapshot);\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useContext(IsSSRContext);\n}\n","/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nfunction normalizeColor(color) {\n var match;\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 // 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 if (names.hasOwnProperty(color)) {\n return names[color];\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 if ((match = matchers.rgba.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16\n ) >>> 0;\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 parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16\n ) >>> 0;\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 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 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 var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var 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\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction toArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nfunction call() {\n return '\\\\(\\\\s*(' + toArray(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\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\nfunction parse255(str) {\n var 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 var int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n var 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 var int = parseFloat(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nvar names = {\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 rgba(colorInt) {\n var r = Math.round(((colorInt & 0xff000000) >>> 24));\n var g = Math.round(((colorInt & 0x00ff0000) >>> 16));\n var b = Math.round(((colorInt & 0x0000ff00) >>> 8));\n var a = ((colorInt & 0x000000ff) >>> 0) / 255;\n return {\n r: r,\n g: g,\n b: b,\n a: a,\n };\n};\n\nnormalizeColor.rgba = rgba;\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nexport default function pick(obj, list) {\n var nextObj = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true || // Temporary until ARIA is mapped to explicit props\n key.indexOf('aria-') === 0) {\n nextObj[key] = obj[key];\n }\n }\n }\n\n return nextObj;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This 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 */\nimport UIManager from '../../exports/UIManager';\nimport createDOMProps from '../createDOMProps';\nimport useStable from '../useStable';\nimport { useRef } from 'react';\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, classList, pointerEvents, style, previousStyleRef) {\n if (node != null && nativeProps) {\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents: pointerEvents\n }, nativeProps), {}, {\n classList: [classList, nativeProps.className],\n style: [style, nativeProps.style]\n }));\n var nextDomStyle = domProps.style;\n\n if (previousStyleRef.current != null) {\n if (domProps.style == null) {\n domProps.style = {};\n }\n\n for (var styleName in previousStyleRef.current) {\n if (domProps.style[styleName] == null) {\n domProps.style[styleName] = '';\n }\n }\n }\n\n previousStyleRef.current = nextDomStyle;\n UIManager.updateView(node, domProps);\n }\n}\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\n\n\nexport default function usePlatformMethods(_ref) {\n var classList = _ref.classList,\n pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n classList: classList,\n pointerEvents: pointerEvents,\n style: style\n }; // Avoid creating a new ref on every render. The props only need to be\n // available to 'setNativeProps' when it is called.\n\n var ref = useStable(function () {\n return function (hostNode) {\n if (hostNode != null) {\n hostNode.measure = function (callback) {\n return UIManager.measure(hostNode, callback);\n };\n\n hostNode.measureLayout = function (relativeToNode, success, failure) {\n return UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n };\n\n hostNode.measureInWindow = function (callback) {\n return UIManager.measureInWindow(hostNode, callback);\n };\n\n hostNode.setNativeProps = function (nativeProps) {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n classList = _ref2.classList,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, classList, pointerEvents, style, previousStyleRef);\n };\n }\n };\n });\n return ref;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar Text = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var dir = props.dir,\n hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable;\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var classList = [classes.text, hasTextAncestor === true && classes.textHasAncestor, numberOfLines === 1 && classes.textOneLine, numberOfLines != null && numberOfLines > 1 && classes.textMultiLine];\n var style = [props.style, numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(function (e) {\n if (onClick != null) {\n onClick(e);\n } else if (onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }, [onClick, onPress]);\n var component = hasTextAncestor ? 'span' : 'div';\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.dir = dir; // 'auto' by default allows browsers to infer writing direction (root elements only)\n\n if (!hasTextAncestor) {\n supportedProps.dir = dir != null ? dir : 'auto';\n }\n\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n\n supportedProps.style = style;\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps);\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar classes = css.create({\n text: {\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n margin: 0,\n padding: 0,\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n },\n textHasAncestor: {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit'\n },\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n }\n});\nvar styles = StyleSheet.create({\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\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 funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n 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/**\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/** 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/**\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 * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\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/** Used for built-in method references. */\nvar 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 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/** 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/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** 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 propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar 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\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\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 * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\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) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\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 * 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,\n// for data views in Edge < 14, and promises in Node.js.\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 = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\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 `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 `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\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 * 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 */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(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 * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' ||\n typeof value.splice == 'function' || isBuffer(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (nonEnumShadows || isPrototype(value)) {\n return !nativeKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\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 && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * 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 = isEmpty;\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 * @format\n */\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = function isActiveSignal(signal) {\n return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isButtonRole = function isButtonRole(element) {\n return element.getAttribute('role') === 'button';\n};\n\nvar isPressStartSignal = function isPressStartSignal(signal) {\n return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isTerminalSignal = function isTerminalSignal(signal) {\n return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n};\n\nvar isValidKeyPress = function isValidKeyPress(event) {\n var key = event.key,\n target = event.target;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return key === 'Enter' || isSpacebar && role === 'button';\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` 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 `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\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 * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` 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`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT 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_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\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 `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nvar PressResponder = /*#__PURE__*/function () {\n function PressResponder(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n var _proto = PressResponder.prototype;\n\n _proto.configure = function configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n ;\n\n _proto.reset = function reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n ;\n\n _proto.getEventHandlers = function getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n };\n\n _proto._createEventHandlers = function _createEventHandlers() {\n var _this = this;\n\n var start = function start(event, shouldDelay) {\n event.persist();\n\n _this._cancelPressOutDelayTimeout();\n\n _this._longPressDispatched = false;\n _this._selectionTerminated = false;\n _this._touchState = NOT_RESPONDER;\n _this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n _this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n _this._pressDelayTimeout = setTimeout(function () {\n _this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n _this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n _this._longPressDelayTimeout = setTimeout(function () {\n _this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = function end(event) {\n _this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = function keyupHandler(event) {\n var onPress = _this._config.onPress;\n var target = event.target;\n\n if (_this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = target.tagName.toLowerCase();\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n\n return {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n var disabled = _this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: function onKeyDown(event) {\n var disabled = _this._config.disabled;\n var key = event.key,\n target = event.target;\n\n if (!disabled && isValidKeyPress(event)) {\n if (_this._touchState === NOT_RESPONDER) {\n start(event, false); // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n\n document.addEventListener('keyup', keyupHandler);\n }\n\n var role = target.getAttribute('role');\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n\n var _isButtonRole = role === 'button' || role === 'menuitem';\n\n if (isSpacebarKey && _isButtonRole) {\n // Prevent spacebar scrolling the window\n event.preventDefault();\n }\n\n event.stopPropagation();\n }\n },\n onResponderGrant: function onResponderGrant(event) {\n return start(event);\n },\n onResponderMove: function onResponderMove(event) {\n if (_this._config.onPressMove != null) {\n _this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (_this._touchActivatePosition != null) {\n var deltaX = _this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = _this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n _this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: function onResponderRelease(event) {\n return end(event);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n if (event.nativeEvent.type === 'selectionchange') {\n _this._selectionTerminated = true;\n }\n\n _this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n var _this$_config = _this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: function onClick(event) {\n var _this$_config2 = _this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (_this._longPressDispatched || _this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: function onContextMenu(event) {\n var _this$_config3 = _this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && _this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\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 ;\n\n _proto._receiveSignal = function _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n ;\n\n _proto._performTransitionSideEffects = function _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n this._isPointerTouch = false;\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var 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 (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n };\n\n _proto._activate = function _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n };\n\n _proto._deactivate = function _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(function () {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n };\n\n _proto._handleLongPress = function _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n };\n\n _proto._cancelLongPressDelayTimeout = function _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressDelayTimeout = function _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressOutDelayTimeout = function _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n };\n\n return PressResponder;\n}();\n\nexport { PressResponder as default };\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\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 * @format\n */\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n\n var pressResponder = pressResponderRef.current; // Re-configure to use the current node and configuration.\n\n useEffect(function () {\n pressResponder.configure(config);\n }, [config, pressResponder]); // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n\n useEffect(function () {\n return function () {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","import type { Event, EventHint, EventProcessor } from '@sentry/types';\nimport { SyncPromise, getGlobalSingleton, isThenable, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\n\n/**\n * Returns the global event processors.\n * @deprecated Global event processors will be removed in v8.\n */\nexport function getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @deprecated Use `addEventProcessor` instead. Global event processors will be removed in v8.\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n // eslint-disable-next-line deprecation/deprecation\n getGlobalEventProcessors().push(callback);\n}\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nexport function notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n","import { Platform } from 'react-native';\nimport { forBottomSheetAndroid, forFadeFromBottomAndroid, forFadeFromCenter as forFadeCard, forHorizontalIOS, forModalPresentationIOS, forRevealFromBottomAndroid, forScaleFromCenterAndroid, forVerticalIOS } from './CardStyleInterpolators';\nimport { forFade } from './HeaderStyleInterpolators';\nimport { BottomSheetSlideInSpec, BottomSheetSlideOutSpec, FadeInFromBottomAndroidSpec, FadeOutToBottomAndroidSpec, RevealFromBottomAndroidSpec, ScaleFromCenterAndroidSpec, TransitionIOSSpec } from './TransitionSpecs';\nconst ANDROID_VERSION_PIE = 28;\nconst ANDROID_VERSION_10 = 29;\n\n/**\n * Standard iOS navigation transition.\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/**\n * Standard iOS navigation transition for modals.\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/**\n * Standard iOS modal presentation style (introduced in iOS 13).\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/**\n * Standard Android navigation transition when opening or closing an Activity on Android < 9 (Oreo).\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/**\n * Standard Android navigation transition when opening or closing an Activity on Android 9 (Pie).\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/**\n * Standard Android navigation transition when opening or closing an Activity on Android 10 (Q).\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/**\n * Standard bottom sheet slide transition for Android 10.\n */\nexport const BottomSheetAndroid = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: BottomSheetSlideInSpec,\n close: BottomSheetSlideOutSpec\n },\n cardStyleInterpolator: forBottomSheetAndroid,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Fade transition for transparent modals.\n */\nexport const ModalFadeTransition = {\n gestureDirection: 'vertical',\n transitionSpec: {\n open: BottomSheetSlideInSpec,\n close: BottomSheetSlideOutSpec\n },\n cardStyleInterpolator: forFadeCard,\n headerStyleInterpolator: forFade\n};\n\n/**\n * Default navigation transition for the current platform.\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/**\n * Default modal transition for the current platform.\n */\nexport const ModalTransition = Platform.select({\n ios: ModalPresentationIOS,\n default: BottomSheetAndroid\n});\n//# sourceMappingURL=TransitionPresets.js.map","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\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 * \n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\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 */\n\nvar Batchinator = /*#__PURE__*/function () {\n function Batchinator(callback, delayMS) {\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\n\n var _proto = Batchinator.prototype;\n\n _proto.dispose = function dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n\n if (this._taskHandle) {\n this._taskHandle.cancel();\n\n if (!options.abort) {\n this._callback();\n }\n\n this._taskHandle = null;\n }\n };\n\n _proto.schedule = function schedule() {\n var _this = this;\n\n if (this._taskHandle) {\n return;\n }\n\n var timeoutHandle = setTimeout(function () {\n _this._taskHandle = InteractionManager.runAfterInteractions(function () {\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\n _this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: function cancel() {\n return clearTimeout(timeoutHandle);\n }\n };\n };\n\n return Batchinator;\n}();\n\nexport default Batchinator;","/**\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 * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport invariant from 'fbjs/lib/invariant';\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 */\nvar ViewabilityHelper = /*#__PURE__*/function () {\n function ViewabilityHelper(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n\n\n var _proto = ViewabilityHelper.prototype;\n\n _proto.dispose = function dispose() {\n this._timers.forEach(clearTimeout);\n }\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n ;\n\n _proto.computeViewableItems = function computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange) {\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n\n if (itemCount === 0) {\n return viewableIndices;\n }\n\n var firstVisible = -1;\n\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange: renderRange,\n itemCount: itemCount\n }));\n return [];\n }\n\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx);\n\n if (!metrics) {\n continue;\n }\n\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n\n return viewableIndices;\n }\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n ;\n\n _proto.onUpdate = function onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange) {\n var _this = this;\n\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0)) {\n return;\n }\n\n var viewableIndices = [];\n\n if (itemCount) {\n viewableIndices = this.computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every(function (v, ii) {\n return 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\n this._viewableIndices = viewableIndices;\n\n if (this._config.minimumViewTime) {\n var handle = setTimeout(function () {\n _this._timers.delete(handle);\n\n _this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n\n this._timers.add(handle);\n } else {\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n ;\n\n _proto.resetViewableIndices = function resetViewableIndices() {\n this._viewableIndices = [];\n }\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n this._hasInteracted = true;\n };\n\n _proto._onUpdateSync = function _onUpdateSync( // $FlowFixMe\n viewableIndicesToCheck, // $FlowFixMe\n onViewableItemsChanged, // $FlowFixMe\n createViewToken) {\n var _this2 = this;\n\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(function (ii) {\n return _this2._viewableIndices.includes(ii);\n });\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(function (ii) {\n var viewable = createViewToken(ii, true);\n return [viewable.key, viewable];\n }));\n var changed = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed: changed,\n viewabilityConfig: this._config\n });\n }\n };\n\n return ViewabilityHelper;\n}();\n\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nexport default ViewabilityHelper;","/**\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'use strict';\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\n\nfunction infoLog() {\n var _console;\n\n return (_console = console).log.apply(_console, arguments);\n}\n\nexport default infoLog;","/**\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 * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\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 */\n\nfunction elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n\n return out;\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 */\n\n\nfunction newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\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 */\n\n\nfunction computeWindowedRenderLimits(props, prev, getFrameMetricsApprox, scrollMetrics) {\n var data = props.data,\n getItemCount = props.getItemCount,\n maxToRenderPerBatch = props.maxToRenderPerBatch,\n windowSize = props.windowSize;\n var itemCount = getItemCount(data);\n\n if (itemCount === 0) {\n return prev;\n }\n\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // 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\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength; // Considering velocity seems to introduce more churn than it's worth.\n\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n\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 } // Find the indices that correspond to the items at the render boundaries we're targeting.\n\n\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props.getItemCount(props.data), getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\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 = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first: first,\n last: last\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\n var 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\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n\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\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n\n first--;\n }\n\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n\n last++;\n }\n }\n\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first: first,\n last: last,\n itemCount: itemCount,\n overscanFirst: overscanFirst,\n overscanLast: overscanLast,\n visible: visible\n }));\n }\n\n return {\n first: first,\n last: last\n };\n}\n\nvar VirtualizeUtils = {\n computeWindowedRenderLimits: computeWindowedRenderLimits,\n elementsThatOverlapOffsets: elementsThatOverlapOffsets,\n newRangeCount: newRangeCount\n};\nexport { computeWindowedRenderLimits, elementsThatOverlapOffsets, newRangeCount };\nexport default VirtualizeUtils;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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/**\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 * @format\n */\nimport * as React from 'react';\nimport { useMemo, useContext } from 'react';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\n\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\n\n\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\n\nexport function VirtualizedListContextProvider(_ref2) {\n var children = _ref2.children,\n value = _ref2.value;\n // Avoid setting a newly created context object if the values are identical.\n var context = useMemo(function () {\n return {\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n getNestedChildState: value.getNestedChildState,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n debugInfo: {\n cellKey: value.debugInfo.cellKey,\n horizontal: value.debugInfo.horizontal,\n listKey: value.debugInfo.listKey,\n parent: value.debugInfo.parent\n }\n };\n }, [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.getNestedChildState, value.registerAsNestedChild, value.unregisterAsNestedChild, value.debugInfo.cellKey, value.debugInfo.horizontal, value.debugInfo.listKey, value.debugInfo.parent]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\n\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n var context = useContext(VirtualizedListContext);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context == null ? null : _objectSpread(_objectSpread({}, context), {}, {\n cellKey: cellKey\n })\n }, children);\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 * \n * @format\n */\nimport Batchinator from '../Batchinator';\nimport FillRateHelper from '../FillRateHelper';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport UIManager from '../../../exports/UIManager';\nimport View from '../../../exports/View';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nvar flattenStyle = StyleSheet.flatten;\nimport infoLog from '../infoLog';\nimport invariant from 'fbjs/lib/invariant';\nimport warning from 'fbjs/lib/warning';\nimport { computeWindowedRenderLimits } from '../VirtualizeUtils';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist.html)\n * and [``](https://reactnative.dev/docs/sectionlist.html) 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 *\n */\nvar VirtualizedList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(VirtualizedList, _React$PureComponent);\n\n var _proto = VirtualizedList.prototype;\n\n // scrollToEnd may be janky without getItemLayout prop\n _proto.scrollToEnd = function scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n\n var frame = this._getFrameMetricsApprox(veryLast);\n\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToIndex may be janky without getItemLayout prop\n ;\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0, \"scrollToIndex out of range: requested index \" + index + \" but minimum is 0\");\n invariant(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n invariant(index < getItemCount(data), \"scrollToIndex out of range: requested index \" + index + \" is out of 0 to \" + (getItemCount(data) - 1));\n\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index: index\n });\n return;\n }\n\n var frame = this._getFrameMetricsApprox(index);\n\n var offset = Math.max(0, frame.offset - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n ;\n\n _proto.scrollToItem = function scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\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 ;\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n };\n\n _proto.recordInteraction = function recordInteraction() {\n this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(function (t) {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\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 ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n };\n\n _proto.getScrollRef = function getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n };\n\n _proto._getCellKey = function _getCellKey() {\n var _this$context;\n\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n };\n\n _proto._getListKey = function _getListKey() {\n return this.props.listKey || this._getCellKey();\n };\n\n _proto._getDebugInfo = function _getDebugInfo() {\n var _this$context2;\n\n return {\n listKey: this._getListKey(),\n cellKey: this._getCellKey(),\n horizontal: !!this.props.horizontal,\n parent: (_this$context2 = this.context) == null ? void 0 : _this$context2.debugInfo\n };\n };\n\n _proto.hasMore = function hasMore() {\n return this._hasMore;\n };\n\n function VirtualizedList(_props) {\n var _this;\n\n _this = _React$PureComponent.call(this, _props) || this;\n\n _this._getScrollMetrics = function () {\n return _this._scrollMetrics;\n };\n\n _this._getOutermostParentListRef = function () {\n if (_this._isNestedWithSameOrientation()) {\n return _this.context.getOutermostParentListRef();\n } else {\n return _assertThisInitialized(_this);\n }\n };\n\n _this._getNestedChildState = function (key) {\n var existingChildData = _this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n _this._registerAsNestedChild = function (childList) {\n // Register the mapping between this child key and the cellKey for its cell\n var childListsInCell = _this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();\n childListsInCell.add(childList.key);\n\n _this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);\n\n var existingChildData = _this._nestedChildLists.get(childList.key);\n\n if (existingChildData && existingChildData.ref !== null) {\n console.error('A VirtualizedList contains a cell which itself contains ' + 'more than one VirtualizedList of the same orientation as the parent ' + 'list. You must pass a unique listKey prop to each sibling list.\\n\\n' + describeNestedLists(_objectSpread(_objectSpread({}, childList), {}, {\n // We're called from the child's componentDidMount, so it's safe to\n // read the child's props here (albeit weird).\n horizontal: !!childList.ref.props.horizontal\n })));\n }\n\n _this._nestedChildLists.set(childList.key, {\n ref: childList.ref,\n state: null\n });\n\n if (_this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _this._unregisterAsNestedChild = function (childList) {\n _this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n _this._onUpdateSeparators = function (keys, newProps) {\n keys.forEach(function (key) {\n var ref = key != null && _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _this._averageCellLength = 0;\n _this._cellKeysToChildListKeys = new Map();\n _this._cellRefs = {};\n _this._frames = {};\n _this._footerLength = 0;\n _this._hasDoneInitialScroll = false;\n _this._hasInteracted = false;\n _this._hasMore = false;\n _this._hasWarned = {};\n _this._headerLength = 0;\n _this._hiPriInProgress = false;\n _this._highestMeasuredFrameIndex = 0;\n _this._indicesToKeys = new Map();\n _this._nestedChildLists = new Map();\n _this._offsetFromParentVirtualizedList = 0;\n _this._prevParentOffset = 0;\n _this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0\n };\n _this._scrollRef = null;\n _this._sentEndForContentLength = 0;\n _this._totalCellLength = 0;\n _this._totalCellsMeasured = 0;\n _this._viewabilityTuples = [];\n\n _this._captureScrollRef = function (ref) {\n _this._scrollRef = ref;\n };\n\n _this._defaultRenderScrollComponent = function (props) {\n var onRefresh = props.onRefresh;\n\n if (_this._isNestedWithSameOrientation()) {\n // $FlowFixMe - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.111 was deployed. To see the error,\n * delete this comment and run Flow. */\n JSON.stringify(props.refreshing) + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe Invalid prop usage\n React.createElement(ScrollView, _extends({}, 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 );\n } else {\n // $FlowFixMe Invalid prop usage\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n\n _this._onCellUnmount = function (cellKey) {\n var curr = _this._frames[cellKey];\n\n if (curr) {\n _this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n\n _this._onLayout = function (e) {\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(e.nativeEvent.layout);\n }\n\n _this.props.onLayout && _this.props.onLayout(e);\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._onLayoutEmpty = function (e) {\n _this.props.onLayout && _this.props.onLayout(e);\n };\n\n _this._onLayoutFooter = function (e) {\n _this._triggerRemeasureForChildListsInCell(_this._getFooterCellKey());\n\n _this._footerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onLayoutHeader = function (e) {\n _this._headerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onContentSizeChange = function (width, height) {\n if (width > 0 && height > 0 && _this.props.initialScrollIndex != null && _this.props.initialScrollIndex > 0 && !_this._hasDoneInitialScroll) {\n _this._hasDoneInitialScroll = true;\n }\n\n if (_this.props.onContentSizeChange) {\n _this.props.onContentSizeChange(width, height);\n }\n\n _this._scrollMetrics.contentLength = _this._selectLength({\n height: height,\n width: width\n });\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._convertParentScrollMetrics = function (metrics) {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - _this._offsetFromParentVirtualizedList; // Child's visible length is the same as its parent's\n\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - _this._scrollMetrics.offset;\n var contentLength = _this._scrollMetrics.contentLength;\n return {\n visibleLength: visibleLength,\n contentLength: contentLength,\n offset: offset,\n dOffset: dOffset\n };\n };\n\n _this._onScroll = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScroll(e);\n });\n\n if (_this.props.onScroll) {\n _this.props.onScroll(e);\n }\n\n var timestamp = e.timeStamp;\n\n var visibleLength = _this._selectLength(e.nativeEvent.layoutMeasurement);\n\n var contentLength = _this._selectLength(e.nativeEvent.contentSize);\n\n var offset = _this._selectOffset(e.nativeEvent.contentOffset);\n\n var 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\n var _this$_convertParentS = _this._convertParentScrollMetrics({\n visibleLength: visibleLength,\n offset: offset\n });\n\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n\n var dt = _this._scrollMetrics.timestamp ? Math.max(1, timestamp - _this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n\n if (dt > 500 && _this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !_this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt: dt,\n prevDt: _this._scrollMetrics.dt,\n contentLength: contentLength\n });\n _this._hasWarned.perf = true;\n }\n\n _this._scrollMetrics = {\n contentLength: contentLength,\n dt: dt,\n dOffset: dOffset,\n offset: offset,\n timestamp: timestamp,\n velocity: velocity,\n visibleLength: visibleLength\n };\n\n _this._updateViewableItems(_this.props.data);\n\n if (!_this.props) {\n return;\n }\n\n _this._maybeCallOnEndReached();\n\n if (velocity !== 0) {\n _this._fillRateHelper.activate();\n }\n\n _this._computeBlankness();\n\n _this._scheduleCellsToRenderUpdate();\n };\n\n _this._onScrollBeginDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n _this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n _this._hasInteracted = true;\n _this.props.onScrollBeginDrag && _this.props.onScrollBeginDrag(e);\n };\n\n _this._onScrollEndDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollEndDrag(e);\n });\n\n var velocity = e.nativeEvent.velocity;\n\n if (velocity) {\n _this._scrollMetrics.velocity = _this._selectOffset(velocity);\n }\n\n _this._computeBlankness();\n\n _this.props.onScrollEndDrag && _this.props.onScrollEndDrag(e);\n };\n\n _this._onMomentumScrollBegin = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onMomentumScrollBegin(e);\n });\n\n _this.props.onMomentumScrollBegin && _this.props.onMomentumScrollBegin(e);\n };\n\n _this._onMomentumScrollEnd = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onMomentumScrollEnd(e);\n });\n\n _this._scrollMetrics.velocity = 0;\n\n _this._computeBlankness();\n\n _this.props.onMomentumScrollEnd && _this.props.onMomentumScrollEnd(e);\n };\n\n _this._updateCellsToRender = function () {\n var _this$props3 = _this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n\n var isVirtualizationDisabled = _this._isVirtualizationDisabled();\n\n _this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n _this.setState(function (state) {\n var newState;\n var _this$_scrollMetrics = _this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n\n if (!isVirtualizationDisabled) {\n // If we run this with bogus data, we'll force-render window {first: 0, last: 0},\n // and wipe out the initialNumToRender rendered elements.\n // So let's 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 // 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 if (!_this.props.initialScrollIndex || _this._scrollMetrics.offset) {\n newState = computeWindowedRenderLimits(_this.props, state, _this._getFrameMetricsApprox, _this._scrollMetrics);\n }\n }\n } else {\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n distanceFromEnd < onEndReachedThreshold * visibleLength ? _this.props.maxToRenderPerBatch : 0;\n newState = {\n first: 0,\n last: Math.min(state.last + renderAhead, getItemCount(data) - 1)\n };\n }\n\n if (newState && _this._nestedChildLists.size > 0) {\n var newFirst = newState.first;\n var newLast = newState.last; // 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 for (var ii = newFirst; ii <= newLast; ii++) {\n var cellKeyForIndex = _this._indicesToKeys.get(ii);\n\n var childListKeys = cellKeyForIndex && _this._cellKeysToChildListKeys.get(cellKeyForIndex);\n\n if (!childListKeys) {\n continue;\n }\n\n var someChildHasMore = false; // For each cell, need to check whether any child list in it has more elements to render\n\n for (var _iterator = _createForOfIteratorHelperLoose(childListKeys), _step; !(_step = _iterator()).done;) {\n var childKey = _step.value;\n\n var childList = _this._nestedChildLists.get(childKey);\n\n if (childList && childList.ref && childList.ref.hasMore()) {\n someChildHasMore = true;\n break;\n }\n }\n\n if (someChildHasMore && newState) {\n newState.last = ii;\n break;\n }\n }\n }\n\n if (newState != null && newState.first === state.first && newState.last === state.last) {\n newState = null;\n }\n\n return newState;\n });\n };\n\n _this._createViewToken = function (index, isViewable) {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem,\n keyExtractor = _this$props4.keyExtractor;\n var item = getItem(data, index);\n return {\n index: index,\n item: item,\n key: keyExtractor(item, index),\n isViewable: isViewable\n };\n };\n\n _this._getFrameMetricsApprox = function (index) {\n var frame = _this._getFrameMetrics(index);\n\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var getItemLayout = _this.props.getItemLayout;\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: _this._averageCellLength,\n offset: _this._averageCellLength * index\n };\n }\n };\n\n _this._getFrameMetrics = function (index) {\n var _this$props5 = _this.props,\n data = _this$props5.data,\n getItem = _this$props5.getItem,\n getItemCount = _this$props5.getItemCount,\n getItemLayout = _this$props5.getItemLayout,\n keyExtractor = _this$props5.keyExtractor;\n invariant(getItemCount(data) > index, 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n\n var frame = item && _this._frames[keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n }\n }\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n return frame;\n };\n\n invariant( // $FlowFixMe\n !_props.onScroll || !_props.onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(_props.windowSize > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n _this._fillRateHelper = new FillRateHelper(_this._getFrameMetrics);\n _this._updateCellsToRenderBatcher = new Batchinator(_this._updateCellsToRender, _this.props.updateCellsBatchingPeriod);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._viewabilityTuples = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n var onViewableItemsChanged = _this.props.onViewableItemsChanged;\n\n _this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(_this.props.viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged\n });\n }\n\n var initialState = {\n first: _this.props.initialScrollIndex || 0,\n last: Math.min(_this.props.getItemCount(_this.props.data), (_this.props.initialScrollIndex || 0) + _this.props.initialNumToRender) - 1\n };\n\n if (_this._isNestedWithSameOrientation()) {\n var storedState = _this.context.getNestedChildState(_this._getListKey());\n\n if (storedState) {\n initialState = storedState;\n _this.state = storedState;\n _this._frames = storedState.frames;\n }\n } // For issue https://github.com/necolas/react-native-web/issues/995\n\n\n _this.invertedWheelEventHandler = function (ev) {\n if (_this.props.inverted && _this._scrollRef && _this._scrollRef.getScrollableNode) {\n var node = _this._scrollRef.getScrollableNode();\n\n if (_this.props.horizontal) {\n node.scrollLeft -= ev.deltaX || ev.wheelDeltaX;\n } else {\n node.scrollTop -= ev.deltaY || ev.wheelDeltaY;\n }\n\n ev.preventDefault();\n }\n };\n\n _this.state = initialState;\n return _this;\n }\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n cellKey: this._getCellKey(),\n key: this._getListKey(),\n ref: this,\n // NOTE: When the child mounts (here) it's not necessarily safe to read\n // the parent's props. This is why we explicitly propagate debugInfo\n // \"down\" via context and \"up\" again via this method call on the\n // parent.\n parentDebugInfo: this.context.debugInfo\n });\n }\n\n this.setupWebWheelHandler();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n key: this._getListKey(),\n state: {\n first: this.state.first,\n last: this.state.last,\n frames: this._frames\n }\n });\n }\n\n this._updateViewableItems(null);\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush();\n\n this.teardownWebWheelHandler();\n };\n\n _proto.setupWebWheelHandler = function setupWebWheelHandler() {\n var _this2 = this;\n\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(function () {\n return _this2.setupWebWheelHandler();\n }, 50);\n return;\n }\n };\n\n _proto.teardownWebWheelHandler = function teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n };\n\n VirtualizedList.getDerivedStateFromProps = function getDerivedStateFromProps(newProps, prevState) {\n var data = newProps.data,\n getItemCount = newProps.getItemCount,\n maxToRenderPerBatch = newProps.maxToRenderPerBatch; // 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\n return {\n first: Math.max(0, Math.min(prevState.first, getItemCount(data) - 1 - maxToRenderPerBatch)),\n last: Math.max(0, Math.min(prevState.last, getItemCount(data) - 1))\n };\n };\n\n _proto._pushCells = function _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this3 = this;\n\n var _this$props6 = this.props,\n CellRendererComponent = _this$props6.CellRendererComponent,\n ItemSeparatorComponent = _this$props6.ItemSeparatorComponent,\n data = _this$props6.data,\n getItem = _this$props6.getItem,\n getItemCount = _this$props6.getItemCount,\n horizontal = _this$props6.horizontal,\n keyExtractor = _this$props6.keyExtractor;\n var stickyOffset = this.props.ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n\n var _loop = function _loop(ii) {\n var item = getItem(data, ii);\n var key = keyExtractor(item, ii);\n\n _this3._indicesToKeys.set(ii, key);\n\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, {\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n cellKey: key,\n fillRateHelper: _this3._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this3._onUpdateSeparators,\n onLayout: function onLayout(e) {\n return _this3._onCellLayout(e, key, ii);\n },\n onUnmount: _this3._onCellUnmount,\n parentProps: _this3.props,\n ref: function ref(_ref) {\n _this3._cellRefs[key] = _ref;\n }\n }));\n prevCellKey = key;\n };\n\n for (var ii = first; ii <= last; ii++) {\n _loop(ii);\n }\n };\n\n _proto._isVirtualizationDisabled = function _isVirtualizationDisabled() {\n return this.props.disableVirtualization || false;\n };\n\n _proto._isNestedWithSameOrientation = function _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === !!this.props.horizontal);\n };\n\n _proto.render = function render() {\n var _this4 = this;\n\n if (__DEV__) {\n var flatStyles = flattenStyle(this.props.contentContainerStyle);\n\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn('`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n }\n }\n\n var _this$props7 = this.props,\n ListEmptyComponent = _this$props7.ListEmptyComponent,\n ListFooterComponent = _this$props7.ListFooterComponent,\n ListHeaderComponent = _this$props7.ListHeaderComponent;\n var _this$props8 = this.props,\n data = _this$props8.data,\n horizontal = _this$props8.horizontal;\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n var inversionStyle = this.props.inverted ? this.props.horizontal ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n\n var element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: StyleSheet.compose(inversionStyle, this.props.ListHeaderComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n element)));\n }\n\n var itemCount = this.props.getItemCount(data);\n\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = !horizontal ? 'height' : 'width';\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : this.props.initialNumToRender - 1;\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last;\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);\n\n var firstAfterInitial = Math.max(lastInitialIndex + 1, first);\n\n if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {\n var insertedStickySpacer = false;\n\n if (stickyIndicesFromProps.size > 0) {\n var stickyOffset = ListHeaderComponent ? 1 : 0; // See if there are any sticky headers in the virtualized space that we need to render.\n\n for (var ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n var _ref2, _ref3;\n\n var initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var stickyBlock = this._getFrameMetricsApprox(ii);\n\n var leadSpace = stickyBlock.offset - initBlock.offset - (this.props.initialScrollIndex ? 0 : initBlock.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To\n * see the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$sticky_lead\",\n style: (_ref2 = {}, _ref2[spacerKey] = leadSpace, _ref2)\n }));\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, ii, ii, inversionStyle);\n\n var trailSpace = this._getFrameMetricsApprox(first).offset - (stickyBlock.offset + stickyBlock.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To\n * see the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$sticky_trail\",\n style: (_ref3 = {}, _ref3[spacerKey] = trailSpace, _ref3)\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _ref4;\n\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To see\n * the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$lead_spacer\",\n style: (_ref4 = {}, _ref4[spacerKey] = firstSpace, _ref4)\n }));\n }\n }\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, firstAfterInitial, last, inversionStyle);\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n\n if (!isVirtualizationDisabled && last < itemCount - 1) {\n var _ref5;\n\n var lastFrame = this._getFrameMetricsApprox(last); // 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\n\n var end = this.props.getItemLayout ? itemCount - 1 : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);\n\n var endFrame = this._getFrameMetricsApprox(end);\n\n var tailSpacerLength = endFrame.offset + endFrame.length - (lastFrame.offset + lastFrame.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.111 was deployed. To see the error,\n * delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$tail_spacer\",\n style: (_ref5 = {}, _ref5[spacerKey] = tailSpacerLength, _ref5)\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListEmptyComponent, null);\n\n cells.push( /*#__PURE__*/React.cloneElement(_element, {\n key: '$empty',\n onLayout: function onLayout(event) {\n _this4._onLayoutEmpty(event);\n\n if (_element.props.onLayout) {\n _element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, _element.props.style)\n }));\n }\n\n if (ListFooterComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListFooterComponent, null);\n\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getFooterCellKey(),\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: StyleSheet.compose(inversionStyle, this.props.ListFooterComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n _element2)));\n }\n\n var scrollProps = _objectSpread(_objectSpread({}, 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: this.props.scrollEventThrottle,\n // TODO: Android support\n stickyHeaderIndices: stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n\n this._hasMore = this.state.last < this.props.getItemCount(this.props.data) - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: this.props.horizontal,\n getOutermostParentListRef: this._getOutermostParentListRef,\n getNestedChildState: this._getNestedChildState,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild,\n debugInfo: this._getDebugInfo()\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n data = _this$props9.data,\n extraData = _this$props9.extraData;\n\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(function (tuple) {\n tuple.viewabilityHelper.resetViewableIndices();\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\n\n var hiPriInProgress = this._hiPriInProgress;\n\n this._scheduleCellsToRenderUpdate(); // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n\n\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n };\n\n _proto._computeBlankness = function _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n };\n\n _proto._onCellLayout = function _onCellLayout(e, cellKey, index) {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index: index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto._triggerRemeasureForChildListsInCell = function _triggerRemeasureForChildListsInCell(cellKey) {\n var childListKeys = this._cellKeysToChildListKeys.get(cellKey);\n\n if (childListKeys) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(childListKeys), _step2; !(_step2 = _iterator2()).done;) {\n var childKey = _step2.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n };\n\n _proto.measureLayoutRelativeToContainingList = function measureLayoutRelativeToContainingList() {\n var _this5 = this;\n\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 } // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n\n\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), function (x, y, width, height) {\n _this5._offsetFromParentVirtualizedList = _this5._selectOffset({\n x: x,\n y: y\n });\n _this5._scrollMetrics.contentLength = _this5._selectLength({\n width: width,\n height: height\n });\n\n var scrollMetrics = _this5._convertParentScrollMetrics(_this5.context.getScrollMetrics());\n\n _this5._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n _this5._scrollMetrics.offset = scrollMetrics.offset;\n }, function (error) {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n });\n } catch (error) {\n console.warn('measureLayoutRelativeToContainingList threw an error', error.stack);\n }\n };\n\n _proto._getFooterCellKey = function _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n };\n\n _proto._renderDebugOverlay = function _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this._getFrameMetricsApprox(ii);\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n\n var windowTop = this._getFrameMetricsApprox(this.state.first).offset;\n\n var frameLast = this._getFrameMetricsApprox(this.state.last);\n\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map(function (f, ii) {\n return /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n });\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n };\n\n _proto._selectLength = function _selectLength(metrics) {\n return !this.props.horizontal ? metrics.height : metrics.width;\n };\n\n _proto._selectOffset = function _selectOffset(metrics) {\n return !this.props.horizontal ? metrics.y : metrics.x;\n };\n\n _proto._maybeCallOnEndReached = function _maybeCallOnEndReached() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n getItemCount = _this$props10.getItemCount,\n onEndReached = _this$props10.onEndReached,\n onEndReachedThreshold = _this$props10.onEndReachedThreshold;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n var threshold = onEndReachedThreshold ? onEndReachedThreshold * visibleLength : 2;\n\n if (onEndReached && this.state.last === getItemCount(data) - 1 && distanceFromEnd < threshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n // Only call onEndReached once for a given content length\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd: distanceFromEnd\n });\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 _proto._scheduleCellsToRenderUpdate = function _scheduleCellsToRenderUpdate() {\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var scrollingThreshold =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete\n * this comment and run Flow. */\n this.props.onEndReachedThreshold * visibleLength / 2; // 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\n if (first > 0) {\n var distTop = offset - this._getFrameMetricsApprox(first).offset;\n\n hiPri = hiPri || distTop < 0 || velocity < -2 && distTop < scrollingThreshold;\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\n\n if (last < itemCount - 1) {\n var distBottom = this._getFrameMetricsApprox(last).offset - (offset + visibleLength);\n hiPri = hiPri || distBottom < 0 || velocity > 2 && distBottom < scrollingThreshold;\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\n\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true; // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._updateCellsToRender();\n\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n };\n\n _proto._updateViewableItems = function _updateViewableItems(data) {\n var _this6 = this;\n\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), _this6._scrollMetrics.offset, _this6._scrollMetrics.visibleLength, _this6._getFrameMetrics, _this6._createViewToken, tuple.onViewableItemsChanged, _this6.state);\n });\n };\n\n return VirtualizedList;\n}(React.PureComponent);\n\nVirtualizedList.contextType = VirtualizedListContext;\nVirtualizedList.defaultProps = {\n disableVirtualization: false,\n horizontal: false,\n initialNumToRender: 10,\n keyExtractor: function keyExtractor(item, index) {\n if (item.key != null) {\n return item.key;\n }\n\n if (item.id != null) {\n return item.id;\n }\n\n _usedIndexForKey = true;\n\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n\n return String(index);\n },\n maxToRenderPerBatch: 10,\n onEndReachedThreshold: 2,\n // multiples of length\n scrollEventThrottle: 50,\n updateCellsBatchingPeriod: 50,\n windowSize: 21 // multiples of length\n\n};\n\nvar CellRenderer = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CellRenderer, _React$Component);\n\n function CellRenderer() {\n var _this7;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this7 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this7.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this7.props.item\n }\n };\n _this7._separators = {\n highlight: function highlight() {\n var _this7$props = _this7.props,\n cellKey = _this7$props.cellKey,\n prevCellKey = _this7$props.prevCellKey;\n\n _this7.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: function unhighlight() {\n var _this7$props2 = _this7.props,\n cellKey = _this7$props2.cellKey,\n prevCellKey = _this7$props2.prevCellKey;\n\n _this7.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this7$props3 = _this7.props,\n cellKey = _this7$props3.cellKey,\n prevCellKey = _this7$props3.prevCellKey;\n\n _this7.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n return _this7;\n }\n\n CellRenderer.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\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 ;\n\n var _proto2 = CellRenderer.prototype;\n\n _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n };\n });\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n };\n\n _proto2._renderElement = function _renderElement(renderItem, ListItemComponent, item, index) {\n if (renderItem && ListItemComponent) {\n console.warn('VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' + ' precedence over renderItem.');\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe(>=0.108.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.108 was deployed. To see the error, delete\n * this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item: item,\n index: index,\n separators: this._separators\n });\n }\n\n if (renderItem) {\n return renderItem({\n item: item,\n index: index,\n separators: this._separators\n });\n }\n\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n };\n\n _proto2.render = function render() {\n var _this$props11 = this.props,\n CellRendererComponent = _this$props11.CellRendererComponent,\n ItemSeparatorComponent = _this$props11.ItemSeparatorComponent,\n fillRateHelper = _this$props11.fillRateHelper,\n horizontal = _this$props11.horizontal,\n item = _this$props11.item,\n index = _this$props11.index,\n inversionStyle = _this$props11.inversionStyle,\n parentProps = _this$props11.parentProps;\n var renderItem = parentProps.renderItem,\n getItemLayout = parentProps.getItemLayout,\n ListItemComponent = parentProps.ListItemComponent;\n\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n var onLayout =\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n getItemLayout && !parentProps.debug && !fillRateHelper.enabled() ? undefined : this.props.onLayout; // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n\n var itemSeparator = ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n var result = !CellRendererComponent ?\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.89.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete\n * this comment and run Flow. */\n React.createElement(View, {\n style: cellStyle,\n onLayout: onLayout\n }, element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({}, this.props, {\n style: cellStyle,\n onLayout: onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n };\n\n return CellRenderer;\n}(React.Component);\n\nfunction describeNestedLists(childList) {\n var trace = 'VirtualizedList trace:\\n' + (\" Child (\" + (childList.horizontal ? 'horizontal' : 'vertical') + \"):\\n\") + (\" listKey: \" + childList.key + \"\\n\") + (\" cellKey: \" + childList.cellKey);\n var debugInfo = childList.parentDebugInfo;\n\n while (debugInfo) {\n trace += \"\\n Parent (\" + (debugInfo.horizontal ? 'horizontal' : 'vertical') + \"):\\n\" + (\" listKey: \" + debugInfo.listKey + \"\\n\") + (\" cellKey: \" + debugInfo.cellKey);\n debugInfo = debugInfo.parent;\n }\n\n return trace;\n}\n\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{\n scaleY: -1\n }]\n },\n horizontallyInverted: {\n transform: [{\n scaleX: -1\n }]\n },\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\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});\nexport default VirtualizedList;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.idb = {}));\n}(this, function (exports) { 'use strict';\n\n function toArray(arr) {\n return Array.prototype.slice.call(arr);\n }\n\n function promisifyRequest(request) {\n return new Promise(function(resolve, reject) {\n request.onsuccess = function() {\n resolve(request.result);\n };\n\n request.onerror = function() {\n reject(request.error);\n };\n });\n }\n\n function promisifyRequestCall(obj, method, args) {\n var request;\n var p = new Promise(function(resolve, reject) {\n request = obj[method].apply(obj, args);\n promisifyRequest(request).then(resolve, reject);\n });\n\n p.request = request;\n return p;\n }\n\n function promisifyCursorRequestCall(obj, method, args) {\n var p = promisifyRequestCall(obj, method, args);\n return p.then(function(value) {\n if (!value) return;\n return new Cursor(value, p.request);\n });\n }\n\n function proxyProperties(ProxyClass, targetProp, properties) {\n properties.forEach(function(prop) {\n Object.defineProperty(ProxyClass.prototype, prop, {\n get: function() {\n return this[targetProp][prop];\n },\n set: function(val) {\n this[targetProp][prop] = val;\n }\n });\n });\n }\n\n function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function proxyMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return this[targetProp][prop].apply(this[targetProp], arguments);\n };\n });\n }\n\n function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyCursorRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function Index(index) {\n this._index = index;\n }\n\n proxyProperties(Index, '_index', [\n 'name',\n 'keyPath',\n 'multiEntry',\n 'unique'\n ]);\n\n proxyRequestMethods(Index, '_index', IDBIndex, [\n 'get',\n 'getKey',\n 'getAll',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(Index, '_index', IDBIndex, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n function Cursor(cursor, request) {\n this._cursor = cursor;\n this._request = request;\n }\n\n proxyProperties(Cursor, '_cursor', [\n 'direction',\n 'key',\n 'primaryKey',\n 'value'\n ]);\n\n proxyRequestMethods(Cursor, '_cursor', IDBCursor, [\n 'update',\n 'delete'\n ]);\n\n // proxy 'next' methods\n ['advance', 'continue', 'continuePrimaryKey'].forEach(function(methodName) {\n if (!(methodName in IDBCursor.prototype)) return;\n Cursor.prototype[methodName] = function() {\n var cursor = this;\n var args = arguments;\n return Promise.resolve().then(function() {\n cursor._cursor[methodName].apply(cursor._cursor, args);\n return promisifyRequest(cursor._request).then(function(value) {\n if (!value) return;\n return new Cursor(value, cursor._request);\n });\n });\n };\n });\n\n function ObjectStore(store) {\n this._store = store;\n }\n\n ObjectStore.prototype.createIndex = function() {\n return new Index(this._store.createIndex.apply(this._store, arguments));\n };\n\n ObjectStore.prototype.index = function() {\n return new Index(this._store.index.apply(this._store, arguments));\n };\n\n proxyProperties(ObjectStore, '_store', [\n 'name',\n 'keyPath',\n 'indexNames',\n 'autoIncrement'\n ]);\n\n proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'put',\n 'add',\n 'delete',\n 'clear',\n 'get',\n 'getAll',\n 'getKey',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n proxyMethods(ObjectStore, '_store', IDBObjectStore, [\n 'deleteIndex'\n ]);\n\n function Transaction(idbTransaction) {\n this._tx = idbTransaction;\n this.complete = new Promise(function(resolve, reject) {\n idbTransaction.oncomplete = function() {\n resolve();\n };\n idbTransaction.onerror = function() {\n reject(idbTransaction.error);\n };\n idbTransaction.onabort = function() {\n reject(idbTransaction.error);\n };\n });\n }\n\n Transaction.prototype.objectStore = function() {\n return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments));\n };\n\n proxyProperties(Transaction, '_tx', [\n 'objectStoreNames',\n 'mode'\n ]);\n\n proxyMethods(Transaction, '_tx', IDBTransaction, [\n 'abort'\n ]);\n\n function UpgradeDB(db, oldVersion, transaction) {\n this._db = db;\n this.oldVersion = oldVersion;\n this.transaction = new Transaction(transaction);\n }\n\n UpgradeDB.prototype.createObjectStore = function() {\n return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments));\n };\n\n proxyProperties(UpgradeDB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(UpgradeDB, '_db', IDBDatabase, [\n 'deleteObjectStore',\n 'close'\n ]);\n\n function DB(db) {\n this._db = db;\n }\n\n DB.prototype.transaction = function() {\n return new Transaction(this._db.transaction.apply(this._db, arguments));\n };\n\n proxyProperties(DB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(DB, '_db', IDBDatabase, [\n 'close'\n ]);\n\n // Add cursor iterators\n // TODO: remove this once browsers do the right thing with promises\n ['openCursor', 'openKeyCursor'].forEach(function(funcName) {\n [ObjectStore, Index].forEach(function(Constructor) {\n // Don't create iterateKeyCursor if openKeyCursor doesn't exist.\n if (!(funcName in Constructor.prototype)) return;\n\n Constructor.prototype[funcName.replace('open', 'iterate')] = function() {\n var args = toArray(arguments);\n var callback = args[args.length - 1];\n var nativeObject = this._store || this._index;\n var request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1));\n request.onsuccess = function() {\n callback(request.result);\n };\n };\n });\n });\n\n // polyfill getAll\n [Index, ObjectStore].forEach(function(Constructor) {\n if (Constructor.prototype.getAll) return;\n Constructor.prototype.getAll = function(query, count) {\n var instance = this;\n var items = [];\n\n return new Promise(function(resolve) {\n instance.iterateCursor(query, function(cursor) {\n if (!cursor) {\n resolve(items);\n return;\n }\n items.push(cursor.value);\n\n if (count !== undefined && items.length == count) {\n resolve(items);\n return;\n }\n cursor.continue();\n });\n });\n };\n });\n\n function openDb(name, version, upgradeCallback) {\n var p = promisifyRequestCall(indexedDB, 'open', [name, version]);\n var request = p.request;\n\n if (request) {\n request.onupgradeneeded = function(event) {\n if (upgradeCallback) {\n upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction));\n }\n };\n }\n\n return p.then(function(db) {\n return new DB(db);\n });\n }\n\n function deleteDb(name) {\n return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]);\n }\n\n exports.openDb = openDb;\n exports.deleteDb = deleteDb;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","// This file is autogenerated. It's used to publish CJS to npm.\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tinycolor = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _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 }, _typeof(obj);\n }\n\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n var trimLeft = /^\\s+/;\n var trimRight = /\\s+$/;\n function tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n }\n tinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n }\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // \n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // \n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n }\n\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b are contained in the set [0, 255] and\n // a in [0, 1]. Returns a 4 or 8 character rgba hex\n function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n }\n\n // `rgbaToArgbHex`\n // Converts an RGBA color to an ARGB Hex8 string\n // Rarely used, but required for \"toFilter()\"\n function rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n function _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n function _greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n function _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n function _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n function _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // \n\n function _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n function polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n }\n function _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n }\n function _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n function _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // false\n // tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n tinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // Optionally returns Black or White if the most readable color is unreadable.\n // *Example*\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\n tinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n\n // Big List of Colors\n // ------------------\n // \n var names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n };\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = tinycolor.hexNames = flip(names);\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // \n function isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n var matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n }();\n\n // `isValidCSSUnit`\n // Take in a single string / number and check to see if it looks like a CSS unit\n // (see `matchers` above for definition).\n function isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n }\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n }\n function validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n }\n\n return tinycolor;\n\n}));\n","import { useTheme } from './useTheme';\nimport get from 'lodash.get';\n\nexport function useToken(\n property: string,\n token: T | T[],\n fallback?: T | T[]\n) {\n const theme = useTheme();\n if (Array.isArray(token)) {\n let fallbackArr: T[] = [];\n if (fallback) {\n fallbackArr = Array.isArray(fallback) ? fallback : [fallback];\n }\n return token.map((innerToken, index) => {\n const path = `${property}.${innerToken}`;\n return get(theme, path, fallbackArr[index] ?? innerToken);\n });\n }\n\n const path = `${property}.${token}`;\n return get(theme, path, fallback ?? token);\n}\n","import type { Primitive } from '@sentry/types';\n\nimport { isNaN, isSyntheticEvent, isVueViewModel } from './is';\nimport type { MemoFunc } from './memo';\nimport { memoBuilder } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = 100, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))\n ) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value as ObjOrArray)['__sentry_skip_normalization__']) {\n return value as ObjOrArray;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value as ObjOrArray)['__sentry_override_normalization_depth__'] === 'number'\n ? ((value as ObjOrArray)['__sentry_override_normalization_depth__'] as number)\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value as ObjOrArray);\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * @deprecated This export will be removed in v8.\n */\nexport { visit as walk };\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value: unknown): string {\n const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nexport function normalizeUrlToBase(url: string, basePath: string): string {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n","'use strict';\n\nmodule.exports = Point;\n\n/**\n * A standalone point geometry with useful accessor, comparison, and\n * modification methods.\n *\n * @class Point\n * @param {Number} x the x-coordinate. this could be longitude or screen\n * pixels, or any other sort of unit.\n * @param {Number} y the y-coordinate. this could be latitude or screen\n * pixels, or any other sort of unit.\n * @example\n * var point = new Point(-77, 38);\n */\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n}\n\nPoint.prototype = {\n\n /**\n * Clone this point, returning a new point that can be modified\n * without affecting the old one.\n * @return {Point} the clone\n */\n clone: function() { return new Point(this.x, this.y); },\n\n /**\n * Add this point's x & y coordinates to another point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n add: function(p) { return this.clone()._add(p); },\n\n /**\n * Subtract this point's x & y coordinates to from point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n sub: function(p) { return this.clone()._sub(p); },\n\n /**\n * Multiply this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n multByPoint: function(p) { return this.clone()._multByPoint(p); },\n\n /**\n * Divide this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n divByPoint: function(p) { return this.clone()._divByPoint(p); },\n\n /**\n * Multiply this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n mult: function(k) { return this.clone()._mult(k); },\n\n /**\n * Divide this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n div: function(k) { return this.clone()._div(k); },\n\n /**\n * Rotate this point around the 0, 0 origin by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @return {Point} output point\n */\n rotate: function(a) { return this.clone()._rotate(a); },\n\n /**\n * Rotate this point around p point by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @param {Point} p Point to rotate around\n * @return {Point} output point\n */\n rotateAround: function(a,p) { return this.clone()._rotateAround(a,p); },\n\n /**\n * Multiply this point by a 4x1 transformation matrix\n * @param {Array} m transformation matrix\n * @return {Point} output point\n */\n matMult: function(m) { return this.clone()._matMult(m); },\n\n /**\n * Calculate this point but as a unit vector from 0, 0, meaning\n * that the distance from the resulting point to the 0, 0\n * coordinate will be equal to 1 and the angle from the resulting\n * point to the 0, 0 coordinate will be the same as before.\n * @return {Point} unit vector point\n */\n unit: function() { return this.clone()._unit(); },\n\n /**\n * Compute a perpendicular point, where the new y coordinate\n * is the old x coordinate and the new x coordinate is the old y\n * coordinate multiplied by -1\n * @return {Point} perpendicular point\n */\n perp: function() { return this.clone()._perp(); },\n\n /**\n * Return a version of this point with the x & y coordinates\n * rounded to integers.\n * @return {Point} rounded point\n */\n round: function() { return this.clone()._round(); },\n\n /**\n * Return the magitude of this point: this is the Euclidean\n * distance from the 0, 0 coordinate to this point's x and y\n * coordinates.\n * @return {Number} magnitude\n */\n mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n /**\n * Judge whether this point is equal to another point, returning\n * true or false.\n * @param {Point} other the other point\n * @return {boolean} whether the points are equal\n */\n equals: function(other) {\n return this.x === other.x &&\n this.y === other.y;\n },\n\n /**\n * Calculate the distance from this point to another point\n * @param {Point} p the other point\n * @return {Number} distance\n */\n dist: function(p) {\n return Math.sqrt(this.distSqr(p));\n },\n\n /**\n * Calculate the distance from this point to another point,\n * without the square root step. Useful if you're comparing\n * relative distances.\n * @param {Point} p the other point\n * @return {Number} distance\n */\n distSqr: function(p) {\n var dx = p.x - this.x,\n dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n\n /**\n * Get the angle from the 0, 0 coordinate to this point, in radians\n * coordinates.\n * @return {Number} angle\n */\n angle: function() {\n return Math.atan2(this.y, this.x);\n },\n\n /**\n * Get the angle from this point to another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleTo: function(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n\n /**\n * Get the angle between this point and another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleWith: function(b) {\n return this.angleWithSep(b.x, b.y);\n },\n\n /*\n * Find the angle of the two vectors, solving the formula for\n * the cross product a x b = |a||b|sin(θ) for θ.\n * @param {Number} x the x-coordinate\n * @param {Number} y the y-coordinate\n * @return {Number} the angle in radians\n */\n angleWithSep: function(x, y) {\n return Math.atan2(\n this.x * y - this.y * x,\n this.x * x + this.y * y);\n },\n\n _matMult: function(m) {\n var x = m[0] * this.x + m[1] * this.y,\n y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _add: function(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n\n _sub: function(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n\n _mult: function(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n\n _div: function(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n\n _multByPoint: function(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n\n _divByPoint: function(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n\n _unit: function() {\n this._div(this.mag());\n return this;\n },\n\n _perp: function() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n\n _rotate: function(angle) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = cos * this.x - sin * this.y,\n y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _rotateAround: function(angle, p) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = p.x + cos * (this.x - p.x) - sin * (this.y - p.y),\n y = p.y + sin * (this.x - p.x) + cos * (this.y - p.y);\n this.x = x;\n this.y = y;\n return this;\n },\n\n _round: function() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n};\n\n/**\n * Construct a point from an array if necessary, otherwise if the input\n * is already a Point, or an unknown type, return it unchanged\n * @param {Array|Point|*} a any kind of input value\n * @return {Point} constructed point, or passed-through value.\n * @example\n * // this\n * var point = Point.convert([0, 1]);\n * // is equivalent to\n * var point = new Point(0, 1);\n */\nPoint.convert = function (a) {\n if (a instanceof Point) {\n return a;\n }\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n return a;\n};\n","/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nlet assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n let output = Object(target);\n for (let index = 1; index < arguments.length; index++) {\n const source = arguments[index];\n if (source !== undefined && source !== null) {\n for (const nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\nexport default assign;","/* eslint-disable no-new-func, no-nested-ternary */\n\nlet win;\n\nif (typeof window === \"undefined\") {\n\t// window is undefined in node.js\n\twin = {};\n} else {\n\twin = window;\n}\n/* eslint-enable no-new-func, no-nested-ternary */\n\nexport {win as window};\n","\nconst VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nconst TEST_ELEMENT = typeof document === \"undefined\" ? {style: {}} : document.createElement('div');\n\nconst TYPE_FUNCTION = 'function';\n\nconst { round, abs } = Math;\nconst { now } = Date;\n\nexport {\n VENDOR_PREFIXES,\n TEST_ELEMENT,\n TYPE_FUNCTION,\n round,\n abs,\n now\n};\n","import { VENDOR_PREFIXES } from './utils-consts';\n/**\n * @private\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nexport default function prefixed(obj, property) {\n let prefix;\n let prop;\n let camelProp = property[0].toUpperCase() + property.slice(1);\n\n let i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n","import prefixed from '../utils/prefixed';\nimport { TEST_ELEMENT } from '../utils/utils-consts';\nimport {window} from '../browser';\n\nexport const PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nexport const NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\nexport default function getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n let touchMap = {};\n let cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach((val) => {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n return touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n","import getTouchActionProps from './get-touchaction-props';\n\n\n\n// magical touchAction value\nconst TOUCH_ACTION_COMPUTE = 'compute';\nconst TOUCH_ACTION_AUTO = 'auto';\nconst TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nconst TOUCH_ACTION_NONE = 'none';\nconst TOUCH_ACTION_PAN_X = 'pan-x';\nconst TOUCH_ACTION_PAN_Y = 'pan-y';\nconst TOUCH_ACTION_MAP = getTouchActionProps();\n\nexport {\n TOUCH_ACTION_AUTO,\n TOUCH_ACTION_COMPUTE,\n TOUCH_ACTION_MANIPULATION,\n TOUCH_ACTION_NONE,\n TOUCH_ACTION_PAN_X,\n TOUCH_ACTION_PAN_Y,\n TOUCH_ACTION_MAP\n};\n","import prefixed from '../utils/prefixed';\nimport {window} from \"../browser\";\n\nconst MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nconst SUPPORT_TOUCH = ('ontouchstart' in window);\nconst SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nconst SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nconst INPUT_TYPE_TOUCH = 'touch';\nconst INPUT_TYPE_PEN = 'pen';\nconst INPUT_TYPE_MOUSE = 'mouse';\nconst INPUT_TYPE_KINECT = 'kinect';\n\nconst COMPUTE_INTERVAL = 25;\n\nconst INPUT_START = 1;\nconst INPUT_MOVE = 2;\nconst INPUT_END = 4;\nconst INPUT_CANCEL = 8;\n\nconst DIRECTION_NONE = 1;\nconst DIRECTION_LEFT = 2;\nconst DIRECTION_RIGHT = 4;\nconst DIRECTION_UP = 8;\nconst DIRECTION_DOWN = 16;\n\nconst DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nconst DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nconst DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nconst PROPS_XY = ['x', 'y'];\nconst PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\nexport {\n MOBILE_REGEX,\n SUPPORT_ONLY_TOUCH,\n SUPPORT_POINTER_EVENTS,\n SUPPORT_TOUCH,\n INPUT_TYPE_KINECT,\n INPUT_TYPE_MOUSE,\n INPUT_TYPE_PEN,\n INPUT_TYPE_TOUCH,\n COMPUTE_INTERVAL,\n INPUT_START,\n INPUT_MOVE,\n INPUT_END,\n INPUT_CANCEL,\n DIRECTION_NONE,\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN,\n DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL,\n DIRECTION_ALL,\n PROPS_XY,\n PROPS_CLIENT_XY\n};\n","/**\n * @private\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nexport default function each(obj, iterator, context) {\n let i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n","import { TYPE_FUNCTION } from './utils-consts';\n/**\n * @private\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nexport default function boolOrFn(val, args) {\n if (typeof val === TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n","/**\n * @private\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nexport default function inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n","import {\n TOUCH_ACTION_COMPUTE,\n TOUCH_ACTION_MAP,\n TOUCH_ACTION_NONE,\n TOUCH_ACTION_PAN_X,\n TOUCH_ACTION_PAN_Y\n} from './touchaction-Consts';\nimport {\n NATIVE_TOUCH_ACTION,\n PREFIXED_TOUCH_ACTION,\n} from \"./get-touchaction-props\";\nimport {\n DIRECTION_VERTICAL,\n DIRECTION_HORIZONTAL\n} from '../inputjs/input-consts';\nimport each from '../utils/each';\nimport boolOrFn from '../utils/bool-or-fn';\nimport inStr from '../utils/in-str';\nimport cleanTouchActions from './clean-touch-actions';\n\n/**\n * @private\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nexport default class TouchAction {\n constructor(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n\n /**\n * @private\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set(value) {\n // find out the touch-action by the event handlers\n if (value === TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n }\n\n /**\n * @private\n * just re-set the touchAction value\n */\n update() {\n this.set(this.manager.options.touchAction);\n }\n\n /**\n * @private\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute() {\n let actions = [];\n each(this.manager.recognizers, (recognizer) => {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n }\n\n /**\n * @private\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults(input) {\n let { srcEvent } = input;\n let direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n let { actions } = this;\n let hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n let hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n let hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n // do not prevent defaults if this is a tap gesture\n let isTapPointer = input.pointers.length === 1;\n let isTapMovement = input.distance < 2;\n let isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n }\n\n /**\n * @private\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n}\n","import inStr from '../utils/in-str';\nimport {\n TOUCH_ACTION_NONE,\n TOUCH_ACTION_PAN_X,\n TOUCH_ACTION_PAN_Y,\n TOUCH_ACTION_MANIPULATION,\n TOUCH_ACTION_AUTO\n} from './touchaction-Consts';\n\n/**\n * @private\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nexport default function cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n let hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n let hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n","/**\n * @private\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nexport default function hasParent(node, parent) {\n while (node) {\n if (node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n","import { round } from '../utils/utils-consts';\n\n/**\n * @private\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nexport default function getCenter(pointers) {\n let pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n let x = 0;\n let y = 0;\n let i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n","import { now,round } from '../utils/utils-consts';\nimport getCenter from './get-center';\n\n/**\n * @private\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nexport default function simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n let pointers = [];\n let i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n","import { PROPS_XY } from './input-consts';\n\n/**\n * @private\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nexport default function getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n let x = p2[props[0]] - p1[props[0]];\n let y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n","import { PROPS_XY } from './input-consts';\n\n/**\n * @private\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nexport default function getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n let x = p2[props[0]] - p1[props[0]];\n let y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n","import { abs } from '../utils/utils-consts';\nimport { DIRECTION_NONE,DIRECTION_LEFT,DIRECTION_RIGHT,DIRECTION_UP,DIRECTION_DOWN } from './input-consts';\n\n/**\n * @private\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nexport default function getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n","/**\n * @private\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nexport default function getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n","import { now } from '../utils/utils-consts';\nimport { abs } from '../utils/utils-consts';\nimport hasParent from '../utils/has-parent';\nimport simpleCloneInputData from './simple-clone-input-data';\nimport getCenter from './get-center';\nimport getDistance from './get-distance';\nimport getAngle from './get-angle';\nimport getDirection from './get-direction';\nimport computeDeltaXY from './compute-delta-xy';\nimport getVelocity from './get-velocity';\nimport getScale from './get-scale';\nimport getRotation from './get-rotation';\nimport computeIntervalInputData from './compute-interval-input-data';\n\n/**\n* @private\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nexport default function computeInputData(manager, input) {\n let { session } = manager;\n let { pointers } = input;\n let { length:pointersLength } = pointers;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n let { firstInput, firstMultiple } = session;\n let offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n let center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n let overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n let target = manager.element;\n const srcEvent = input.srcEvent;\n let srcEventTarget;\n\n if (srcEvent.composedPath) {\n srcEventTarget = srcEvent.composedPath()[0];\n } else if (srcEvent.path) {\n srcEventTarget = srcEvent.path[0];\n } else {\n srcEventTarget = srcEvent.target;\n }\n\n if (hasParent(srcEventTarget, target)) {\n target = srcEventTarget;\n }\n input.target = target;\n}\n","import { INPUT_START, INPUT_END } from './input-consts';\n\nexport default function computeDeltaXY(session, input) {\n let { center } = input;\n // let { offsetDelta:offset = {}, prevDelta = {}, prevInput = {} } = session;\n // jscs throwing error on defalut destructured values and without defaults tests fail\n let offset = session.offsetDelta || {};\n let prevDelta = session.prevDelta || {};\n let prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n","import { PROPS_CLIENT_XY } from './input-consts';\nimport getDistance from './get-distance';\n/**\n * @private\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nexport default function getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n","import getAngle from './get-angle';\nimport { PROPS_CLIENT_XY } from './input-consts';\n\n/**\n * @private\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nexport default function getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n","import { INPUT_CANCEL,COMPUTE_INTERVAL } from './input-consts';\nimport { abs } from '../utils/utils-consts';\nimport getVelocity from './get-velocity';\nimport getDirection from './get-direction';\n\n/**\n * @private\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nexport default function computeIntervalInputData(session, input) {\n let last = session.lastInterval || input;\n let deltaTime = input.timeStamp - last.timeStamp;\n let velocity;\n let velocityX;\n let velocityY;\n let direction;\n\n if (input.eventType !== INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n let deltaX = input.deltaX - last.deltaX;\n let deltaY = input.deltaY - last.deltaY;\n\n let v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n","import { INPUT_START,INPUT_END,INPUT_CANCEL } from './input-consts';\nimport computeInputData from './compute-input-data';\n\n/**\n * @private\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nexport default function inputHandler(manager, eventType, input) {\n let pointersLen = input.pointers.length;\n let changedPointersLen = input.changedPointers.length;\n let isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n let isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n","/**\n * @private\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\n\nexport default function splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n","import each from './each';\nimport splitStr from './split-str';\n/**\n * @private\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nexport default function addEventListeners(target, types, handler) {\n each(splitStr(types), (type) => {\n target.addEventListener(type, handler, false);\n });\n}\n","import each from './each';\nimport splitStr from './split-str';\n/**\n * @private\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nexport default function removeEventListeners(target, types, handler) {\n each(splitStr(types), (type) => {\n target.removeEventListener(type, handler, false);\n });\n}\n","/**\n * @private\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nexport default function getWindowForElement(element) {\n let doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n","import boolOrFn from '../utils/bool-or-fn';\nimport addEventListeners from '../utils/add-event-listeners';\nimport removeEventListeners from '../utils/remove-event-listeners';\nimport getWindowForElement from '../utils/get-window-for-element';\n\n/**\n * @private\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nexport default class Input {\n constructor(manager, callback) {\n let self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n }\n /**\n * @private\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler() { }\n\n /**\n * @private\n * bind the events\n */\n init() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n\n /**\n * @private\n * unbind the events\n */\n destroy() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n}\n","/**\n * @private\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nexport default function inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n let i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {// do not use === here, test fails\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n","import {\n INPUT_START,\n INPUT_END,\n INPUT_CANCEL,\n INPUT_MOVE,\n INPUT_TYPE_TOUCH,\n INPUT_TYPE_MOUSE,\n INPUT_TYPE_PEN,\n INPUT_TYPE_KINECT\n} from '../inputjs/input-consts';\nimport {window} from \"../browser\";\nimport Input from '../inputjs/input-constructor';\nimport inArray from '../utils/in-array';\n\nconst POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nconst IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nlet POINTER_ELEMENT_EVENTS = 'pointerdown';\nlet POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * @private\n * Pointer events input\n * @constructor\n * @extends Input\n */\nexport default class PointerEventInput extends Input {\n constructor() {\n var proto = PointerEventInput.prototype;\n\n proto.evEl = POINTER_ELEMENT_EVENTS;\n proto.evWin = POINTER_WINDOW_EVENTS;\n super(...arguments);\n this.store = (this.manager.session.pointerEvents = []);\n }\n\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n handler(ev) {\n let { store } = this;\n let removePointer = false;\n\n let eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n let eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n let pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n let isTouch = (pointerType === INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n let storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n}\n","/**\n * @private\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nexport default function toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n","import inArray from './in-array';\n\n/**\n * @private\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nexport default function uniqueArray(src, key, sort) {\n let results = [];\n let values = [];\n let i = 0;\n\n while (i < src.length) {\n let val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort((a, b) => {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n","import {\n INPUT_START,\n INPUT_MOVE,\n INPUT_END,\n INPUT_CANCEL,\n INPUT_TYPE_TOUCH\n} from '../inputjs/input-consts';\nimport Input from '../inputjs/input-constructor';\nimport toArray from '../utils/to-array';\nimport hasParent from '../utils/has-parent';\nimport uniqueArray from '../utils/unique-array';\n\nconst TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nconst TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * @private\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nexport default class TouchInput extends Input {\n constructor() {\n TouchInput.prototype.evTarget = TOUCH_TARGET_EVENTS;\n super(...arguments);\n this.targetIds = {};\n // this.evTarget = TOUCH_TARGET_EVENTS;\n }\n handler(ev) {\n let type = TOUCH_INPUT_MAP[ev.type];\n let touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n}\n\n/**\n * @private\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n let allTouches = toArray(ev.touches);\n let { targetIds } = this;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n let i;\n let targetTouches;\n let changedTouches = toArray(ev.changedTouches);\n let changedTargetTouches = [];\n let { target } = this;\n\n // get target touches from touches\n targetTouches = allTouches.filter((touch) => {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n","import {\n INPUT_START,\n INPUT_MOVE,\n INPUT_END,\n INPUT_TYPE_MOUSE\n} from '../inputjs/input-consts';\nimport Input from '../inputjs/input-constructor';\n\nconst MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nconst MOUSE_ELEMENT_EVENTS = 'mousedown';\nconst MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * @private\n * Mouse events input\n * @constructor\n * @extends Input\n */\nexport default class MouseInput extends Input {\n constructor() {\n var proto = MouseInput.prototype;\n proto.evEl = MOUSE_ELEMENT_EVENTS;\n proto.evWin = MOUSE_WINDOW_EVENTS;\n\n super(...arguments);\n this.pressed = false; // mousedown state\n }\n\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n handler(ev) {\n let eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n}\n","import Input from \"../inputjs/input-constructor\";\nimport TouchInput from \"./touch\";\nimport MouseInput from \"./mouse\";\nimport {\n\tINPUT_START,\n\tINPUT_END,\n\tINPUT_CANCEL,\n\tINPUT_TYPE_TOUCH,\n\tINPUT_TYPE_MOUSE,\n} from \"../inputjs/input-consts\";\n\n/**\n * @private\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nconst DEDUP_TIMEOUT = 2500;\nconst DEDUP_DISTANCE = 25;\n\nfunction setLastTouch(eventData) {\n\tconst { changedPointers: [touch] } = eventData;\n\n\tif (touch.identifier === this.primaryTouch) {\n\t\tconst lastTouch = { x: touch.clientX, y: touch.clientY };\n\t\tconst lts = this.lastTouches;\n\n\t\tthis.lastTouches.push(lastTouch);\n\n\n\t\tconst removeLastTouch = function() {\n\t\t\tconst i = lts.indexOf(lastTouch);\n\n\t\t\tif (i > -1) {\n\t\t\t\tlts.splice(i, 1);\n\t\t\t}\n\t\t};\n\n\t\tsetTimeout(removeLastTouch, DEDUP_TIMEOUT);\n\t}\n}\n\n\nfunction recordTouches(eventType, eventData) {\n\tif (eventType & INPUT_START) {\n\t\tthis.primaryTouch = eventData.changedPointers[0].identifier;\n\t\tsetLastTouch.call(this, eventData);\n\t} else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n\t\tsetLastTouch.call(this, eventData);\n\t}\n}\nfunction isSyntheticEvent(eventData) {\n\tconst x = eventData.srcEvent.clientX;\n\tconst y = eventData.srcEvent.clientY;\n\n\tfor (let i = 0; i < this.lastTouches.length; i++) {\n\t\tconst t = this.lastTouches[i];\n\t\tconst dx = Math.abs(x - t.x);\n\t\tconst dy = Math.abs(y - t.y);\n\n\t\tif (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\nexport default class TouchMouseInput extends Input {\n\tconstructor(manager, callback) {\n\t\tsuper(manager, callback);\n\n\t\tthis.touch = new TouchInput(this.manager, this.handler);\n\t\tthis.mouse = new MouseInput(this.manager, this.handler);\n\t\tthis.primaryTouch = null;\n\t\tthis.lastTouches = [];\n\t}\n\n\t/**\n\t * @private\n\t * handle mouse and touch events\n\t * @param {Hammer} manager\n\t * @param {String} inputEvent\n\t * @param {Object} inputData\n\t */\n\thandler = (manager, inputEvent, inputData) => {\n\t\tconst isTouch = (inputData.pointerType === INPUT_TYPE_TOUCH);\n\t\tconst isMouse = (inputData.pointerType === INPUT_TYPE_MOUSE);\n\n\t\tif (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n\t\t\treturn;\n\t\t}\n\n\t\t// when we're in a touch event, record touches to de-dupe synthetic mouse event\n\t\tif (isTouch) {\n\t\t\trecordTouches.call(this, inputEvent, inputData);\n\t\t} else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.callback(manager, inputEvent, inputData);\n\t}\n\n\t/**\n\t * @private\n\t * remove the event listeners\n\t */\n\tdestroy() {\n\t\tthis.touch.destroy();\n\t\tthis.mouse.destroy();\n\t}\n}\n","import each from './each';\n/**\n * @private\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nexport default function invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n","const STATE_POSSIBLE = 1;\nconst STATE_BEGAN = 2;\nconst STATE_CHANGED = 4;\nconst STATE_ENDED = 8;\nconst STATE_RECOGNIZED = STATE_ENDED;\nconst STATE_CANCELLED = 16;\nconst STATE_FAILED = 32;\n\nexport {\n STATE_POSSIBLE,\n STATE_BEGAN,\n STATE_CHANGED,\n STATE_ENDED,\n STATE_RECOGNIZED,\n STATE_CANCELLED,\n STATE_FAILED\n};\n","/**\n * @private\n * get a unique id\n * @returns {number} uniqueId\n */\nlet _uniqueId = 1;\nexport default function uniqueId() {\n return _uniqueId++;\n}\n","/**\n * @private\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nexport default function getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n let { manager } = recognizer;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n","import {\n STATE_CANCELLED,\n STATE_ENDED,\n STATE_CHANGED,\n STATE_BEGAN\n} from './recognizer-consts';\n\n/**\n * @private\n * get a usable string, used as event postfix\n * @param {constant} state\n * @returns {String} state\n */\nexport default function stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n","import {\n STATE_POSSIBLE,\n STATE_ENDED,\n STATE_FAILED,\n STATE_RECOGNIZED,\n STATE_CANCELLED,\n STATE_BEGAN,\n STATE_CHANGED\n} from './recognizer-consts';\nimport assign from '../utils/assign';\nimport uniqueId from '../utils/unique-id';\nimport invokeArrayArg from '../utils/invoke-array-arg';\nimport inArray from '../utils/in-array';\nimport boolOrFn from '../utils/bool-or-fn';\nimport getRecognizerByNameIfManager from './get-recognizer-by-name-if-manager';\nimport stateStr from './state-str';\n\n/**\n * @private\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n\n/**\n * @private\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nexport default class Recognizer {\n constructor(options = {}) {\n this.options = {\n enable: true,\n ...options,\n };\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n\n /**\n * @private\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n }\n\n /**\n * @private\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n let { simultaneous } = this;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n }\n\n /**\n * @private\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n }\n\n /**\n * @private\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n let { requireFail } = this;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n }\n\n /**\n * @private\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n let index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n }\n\n /**\n * @private\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures() {\n return this.requireFail.length > 0;\n }\n\n /**\n * @private\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n }\n\n /**\n * @private\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit(input) {\n let self = this;\n let { state } = this;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n }\n\n /**\n * @private\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n }\n\n /**\n * @private\n * can we emit?\n * @returns {boolean}\n */\n canEmit() {\n let i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n }\n\n /**\n * @private\n * update the recognizer\n * @param {Object} inputData\n */\n recognize(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n let inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n }\n\n /**\n * @private\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {constant} STATE\n */\n\n /* jshint ignore:start */\n process(inputData) { }\n /* jshint ignore:end */\n\n /**\n * @private\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction() { }\n\n /**\n * @private\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset() { }\n}","import Recognizer from '../recognizerjs/recognizer-constructor';\nimport { TOUCH_ACTION_MANIPULATION } from '../touchactionjs/touchaction-Consts';\nimport {INPUT_START,INPUT_END } from '../inputjs/input-consts';\nimport {\n STATE_RECOGNIZED,\n STATE_BEGAN,\n STATE_FAILED\n} from '../recognizerjs/recognizer-consts';\nimport getDistance from '../inputjs/get-distance';\n\n/**\n * @private\n * A tap is recognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nexport default class TapRecognizer extends Recognizer {\n constructor(options = {}) {\n super({\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10, // a multi-tap can be a bit off the initial position\n ...options,\n });\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n }\n\n getTouchAction() {\n return [TOUCH_ACTION_MANIPULATION];\n }\n\n process(input) {\n let { options } = this;\n\n let validPointers = input.pointers.length === options.pointers;\n let validMovement = input.distance < options.threshold;\n let validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType !== INPUT_END) {\n return this.failTimeout();\n }\n\n let validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n let validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n let tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeout(() => {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n }\n\n failTimeout() {\n this._timer = setTimeout(() => {\n this.state = STATE_FAILED;\n }, this.options.interval);\n return STATE_FAILED;\n }\n\n reset() {\n clearTimeout(this._timer);\n }\n\n emit() {\n if (this.state === STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n}\n","import Recognizer from '../recognizerjs/recognizer-constructor';\nimport {\n STATE_BEGAN,\n STATE_CHANGED,\n STATE_CANCELLED,\n STATE_ENDED,\n STATE_FAILED\n} from '../recognizerjs/recognizer-consts';\nimport {\n INPUT_CANCEL,\n INPUT_END\n} from '../inputjs/input-consts';\n\n/**\n * @private\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nexport default class AttrRecognizer extends Recognizer {\n constructor(options = {}) {\n super({\n pointers: 1,\n ...options,\n });\n }\n\n /**\n * @private\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest(input) {\n let optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n }\n\n /**\n * @private\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process(input) {\n let { state } = this;\n let { eventType } = input;\n\n let isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n let isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n}\n","import {\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN\n} from '../inputjs/input-consts';\n\n/**\n * @private\n * direction cons to string\n * @param {constant} direction\n * @returns {String}\n */\nexport default function directionStr(direction) {\n if (direction === DIRECTION_DOWN) {\n return 'down';\n } else if (direction === DIRECTION_UP) {\n return 'up';\n } else if (direction === DIRECTION_LEFT) {\n return 'left';\n } else if (direction === DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n","import AttrRecognizer from './attribute';\nimport {\n DIRECTION_ALL,\n DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL,\n DIRECTION_NONE,\n DIRECTION_UP,\n DIRECTION_DOWN,\n DIRECTION_LEFT,\n DIRECTION_RIGHT\n} from '../inputjs/input-consts';\nimport { STATE_BEGAN } from '../recognizerjs/recognizer-consts';\nimport { TOUCH_ACTION_PAN_X,TOUCH_ACTION_PAN_Y } from '../touchactionjs/touchaction-Consts';\nimport directionStr from '../recognizerjs/direction-str';\n\n/**\n * @private\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nexport default class PanRecognizer extends AttrRecognizer {\n constructor(options = {}) {\n super({\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL,\n ...options,\n });\n this.pX = null;\n this.pY = null;\n }\n\n getTouchAction() {\n let { options:{ direction } } = this;\n let actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n }\n\n directionTest(input) {\n let { options } = this;\n let hasMoved = true;\n let { distance } = input;\n let { direction } = input;\n let x = input.deltaX;\n let y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x !== this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y !== this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n }\n\n attrTest(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && // replace with a super call\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n }\n\n emit(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n let direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n super.emit(input);\n }\n}\n","import AttrRecognizer from '../recognizers/attribute';\nimport { abs } from '../utils/utils-consts';\nimport { DIRECTION_HORIZONTAL,DIRECTION_VERTICAL } from '../inputjs/input-consts';\nimport PanRecognizer from './pan';\nimport { INPUT_END } from '../inputjs/input-consts';\nimport directionStr from '../recognizerjs/direction-str';\n\n/**\n * @private\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nexport default class SwipeRecognizer extends AttrRecognizer {\n constructor(options = {}) {\n super({\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1,\n ...options,\n });\n }\n\n getTouchAction() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n }\n\n attrTest(input) {\n let { direction } = this.options;\n let velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return super.attrTest(input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers === this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n }\n\n emit(input) {\n let direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n}\n","import AttrRecognizer from './attribute';\nimport { TOUCH_ACTION_NONE } from '../touchactionjs/touchaction-Consts';\nimport { STATE_BEGAN } from '../recognizerjs/recognizer-consts';\n\n/**\n * @private\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nexport default class PinchRecognizer extends AttrRecognizer {\n constructor(options = {}) {\n super({\n event: 'pinch',\n threshold: 0,\n pointers: 2,\n ...options,\n });\n }\n\n getTouchAction() {\n return [TOUCH_ACTION_NONE];\n }\n\n attrTest(input) {\n return super.attrTest(input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n }\n\n emit(input) {\n if (input.scale !== 1) {\n let inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n super.emit(input);\n }\n}\n","import AttrRecognizer from './attribute';\nimport { TOUCH_ACTION_NONE } from '../touchactionjs/touchaction-Consts';\nimport { STATE_BEGAN } from '../recognizerjs/recognizer-consts';\n\n/**\n * @private\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nexport default class RotateRecognizer extends AttrRecognizer {\n constructor(options = {}) {\n super( {\n event: 'rotate',\n threshold: 0,\n pointers: 2,\n ...options,\n });\n }\n\n getTouchAction() {\n return [TOUCH_ACTION_NONE];\n }\n\n attrTest(input) {\n return super.attrTest(input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n}","import Recognizer from '../recognizerjs/recognizer-constructor';\nimport {\n STATE_RECOGNIZED,\n STATE_FAILED\n} from '../recognizerjs/recognizer-consts';\nimport { now } from '../utils/utils-consts';\nimport { TOUCH_ACTION_AUTO } from '../touchactionjs/touchaction-Consts';\nimport {\n INPUT_START,\n INPUT_END,\n INPUT_CANCEL\n} from '../inputjs/input-consts';\n\n/**\n * @private\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nexport default class PressRecognizer extends Recognizer {\n constructor(options = {}) {\n super({\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9, // a minimal movement is ok, but keep it low\n ...options,\n });\n this._timer = null;\n this._input = null;\n }\n\n getTouchAction() {\n return [TOUCH_ACTION_AUTO];\n }\n\n process(input) {\n let { options } = this;\n let validPointers = input.pointers.length === options.pointers;\n let validMovement = input.distance < options.threshold;\n let validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeout(() => {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n }\n\n reset() {\n clearTimeout(this._timer);\n }\n\n emit(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(`${this.options.event}up`, input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n}\n\n","import { TOUCH_ACTION_COMPUTE } from \"./touchactionjs/touchaction-Consts\";\nimport TapRecognizer from \"./recognizers/tap\";\nimport PanRecognizer from \"./recognizers/pan\";\nimport SwipeRecognizer from \"./recognizers/swipe\";\nimport PinchRecognizer from \"./recognizers/pinch\";\nimport RotateRecognizer from \"./recognizers/rotate\";\nimport PressRecognizer from \"./recognizers/press\";\nimport {DIRECTION_HORIZONTAL} from \"./inputjs/input-consts\";\n\nexport default {\n\t/**\n\t * @private\n\t * set if DOM events are being triggered.\n\t * But this is slower and unused by simple implementations, so disabled by default.\n\t * @type {Boolean}\n\t * @default false\n\t */\n\tdomEvents: false,\n\n\t/**\n\t * @private\n\t * The value for the touchAction property/fallback.\n\t * When set to `compute` it will magically set the correct value based on the added recognizers.\n\t * @type {String}\n\t * @default compute\n\t */\n\ttouchAction: TOUCH_ACTION_COMPUTE,\n\n\t/**\n\t * @private\n\t * @type {Boolean}\n\t * @default true\n\t */\n\tenable: true,\n\n\t/**\n\t * @private\n\t * EXPERIMENTAL FEATURE -- can be removed/changed\n\t * Change the parent input target element.\n\t * If Null, then it is being set the to main element.\n\t * @type {Null|EventTarget}\n\t * @default null\n\t */\n\tinputTarget: null,\n\n\t/**\n\t * @private\n\t * force an input class\n\t * @type {Null|Function}\n\t * @default null\n\t */\n\tinputClass: null,\n\n\t/**\n\t * @private\n\t * Some CSS properties can be used to improve the working of Hammer.\n\t * Add them to this method and they will be set when creating a new Manager.\n\t * @namespace\n\t */\n\tcssProps: {\n\t\t/**\n\t\t * @private\n\t\t * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n\t\t * @type {String}\n\t\t * @default 'none'\n\t\t */\n\t\tuserSelect: \"none\",\n\n\t\t/**\n\t\t * @private\n\t\t * Disable the Windows Phone grippers when pressing an element.\n\t\t * @type {String}\n\t\t * @default 'none'\n\t\t */\n\t\ttouchSelect: \"none\",\n\n\t\t/**\n\t\t * @private\n\t\t * Disables the default callout shown when you touch and hold a touch target.\n\t\t * On iOS, when you touch and hold a touch target such as a link, Safari displays\n\t\t * a callout containing information about the link. This property allows you to disable that callout.\n\t\t * @type {String}\n\t\t * @default 'none'\n\t\t */\n\t\ttouchCallout: \"none\",\n\n\t\t/**\n\t\t * @private\n\t\t * Specifies whether zooming is enabled. Used by IE10>\n\t\t * @type {String}\n\t\t * @default 'none'\n\t\t */\n\t\tcontentZooming: \"none\",\n\n\t\t/**\n\t\t * @private\n\t\t * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n\t\t * @type {String}\n\t\t * @default 'none'\n\t\t */\n\t\tuserDrag: \"none\",\n\n\t\t/**\n\t\t * @private\n\t\t * Overrides the highlight color shown when the user taps a link or a JavaScript\n\t\t * clickable element in iOS. This property obeys the alpha value, if specified.\n\t\t * @type {String}\n\t\t * @default 'rgba(0,0,0,0)'\n\t\t */\n\t\ttapHighlightColor: \"rgba(0,0,0,0)\",\n\t},\n};\n\n/**\n * @private\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * This is separated with other defaults because of tree-shaking.\n * @type {Array}\n */\nexport const preset = [\n [RotateRecognizer, { enable: false }],\n [PinchRecognizer, { enable: false }, ['rotate']],\n [SwipeRecognizer, { direction: DIRECTION_HORIZONTAL }],\n [PanRecognizer, { direction: DIRECTION_HORIZONTAL }, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, { event: 'doubletap', taps: 2 }, ['tap']],\n [PressRecognizer]\n];\n","import assign from \"./utils/assign\";\nimport TouchAction from \"./touchactionjs/touchaction-constructor\";\nimport createInputInstance from \"./inputjs/create-input-instance\";\nimport each from \"./utils/each\";\nimport inArray from \"./utils/in-array\";\nimport invokeArrayArg from \"./utils/invoke-array-arg\";\nimport splitStr from \"./utils/split-str\";\nimport prefixed from \"./utils/prefixed\";\nimport Recognizer from \"./recognizerjs/recognizer-constructor\";\nimport {\n STATE_BEGAN,\n STATE_ENDED,\n STATE_CHANGED,\n STATE_RECOGNIZED,\n} from \"./recognizerjs/recognizer-consts\";\nimport defaults from \"./defaults\";\n\nconst STOP = 1;\nconst FORCED_STOP = 2;\n\n\n/**\n * @private\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n const { element } = manager;\n\n if (!element.style) {\n return;\n }\n let prop;\n\n each(manager.options.cssProps, (value, name) => {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || \"\";\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * @private\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n const gestureEvent = document.createEvent(\"Event\");\n\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\n\n/**\n* @private\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nexport default class Manager {\n constructor(element, options) {\n this.options = assign({}, defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, item => {\n const recognizer = this.add(new (item[0])(item[1]));\n\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n\n\t/**\n\t * @private\n\t * set options\n\t * @param {Object} options\n\t * @returns {Manager}\n\t */\n set(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n }\n\n\t/**\n\t * @private\n\t * stop recognizing for this session.\n\t * This session will be discarded, when a new [input]start event is fired.\n\t * When forced, the recognizer cycle is stopped immediately.\n\t * @param {Boolean} [force]\n\t */\n stop(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n }\n\n\t/**\n\t * @private\n\t * run the recognizers!\n\t * called by the inputHandler function on every movement of the pointers (touches)\n\t * it walks through all the recognizers and tries to detect the gesture that is being made\n\t * @param {Object} inputData\n\t */\n recognize(inputData) {\n const { session } = this;\n\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n let recognizer;\n const { recognizers } = this;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n let { curRecognizer } = session;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n session.curRecognizer = null;\n curRecognizer = null;\n }\n\n let i = 0;\n\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && (// 1\n !curRecognizer || recognizer === curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n session.curRecognizer = recognizer;\n curRecognizer = recognizer;\n }\n i++;\n }\n }\n\n\t/**\n\t * @private\n\t * get a recognizer by its event name.\n\t * @param {Recognizer|String} recognizer\n\t * @returns {Recognizer|Null}\n\t */\n get(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n const { recognizers } = this;\n\n for (let i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event === recognizer) {\n return recognizers[i];\n }\n }\n return null;\n }\n\n\t/**\n\t * @private add a recognizer to the manager\n\t * existing recognizers with the same event name will be removed\n\t * @param {Recognizer} recognizer\n\t * @returns {Recognizer|Manager}\n\t */\n add(recognizer) {\n if (invokeArrayArg(recognizer, \"add\", this)) {\n return this;\n }\n\n // remove existing\n const existing = this.get(recognizer.options.event);\n\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n }\n\n\t/**\n\t * @private\n\t * remove a recognizer by name or instance\n\t * @param {Recognizer|String} recognizer\n\t * @returns {Manager}\n\t */\n remove(recognizer) {\n if (invokeArrayArg(recognizer, \"remove\", this)) {\n return this;\n }\n\n const targetRecognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n const { recognizers } = this;\n const index = inArray(recognizers, targetRecognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n }\n\n\t/**\n\t * @private\n\t * bind event\n\t * @param {String} events\n\t * @param {Function} handler\n\t * @returns {EventEmitter} this\n\t */\n on(events, handler) {\n if (events === undefined || handler === undefined) {\n return this;\n }\n\n const { handlers } = this;\n\n each(splitStr(events), event => {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n }\n\n\t/**\n\t * @private unbind event, leave emit blank to remove all handlers\n\t * @param {String} events\n\t * @param {Function} [handler]\n\t * @returns {EventEmitter} this\n\t */\n off(events, handler) {\n if (events === undefined) {\n return this;\n }\n\n const { handlers } = this;\n\n each(splitStr(events), event => {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n }\n\n\t/**\n\t * @private emit event to the listeners\n\t * @param {String} event\n\t * @param {Object} data\n\t */\n emit(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n const handlers = this.handlers[event] && this.handlers[event].slice();\n\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n\n let i = 0;\n\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n }\n\n\t/**\n\t * @private\n\t * destroy the manager and unbinds all events\n\t * it doesn't unbind dom events, that is the user own responsibility\n\t */\n destroy() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n}\n","import { SUPPORT_POINTER_EVENTS,SUPPORT_ONLY_TOUCH,SUPPORT_TOUCH } from './input-consts';\nimport inputHandler from './input-handler';\nimport PointerEventInput from '../input/pointerevent';\nimport TouchInput from '../input/touch';\nimport MouseInput from '../input/mouse';\nimport TouchMouseInput from '../input/touchmouse';\n\n/**\n * @private\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nexport default function createInputInstance(manager) {\n let Type;\n // let inputClass = manager.options.inputClass;\n let { options:{ inputClass } } = manager;\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n","import {\n INPUT_START,\n INPUT_MOVE,\n INPUT_END,\n INPUT_CANCEL,\n INPUT_TYPE_TOUCH\n} from '../inputjs/input-consts';\nimport Input from '../inputjs/input-constructor';\nimport toArray from '../utils/to-array';\nimport uniqueArray from '../utils/unique-array';\n\nconst SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nconst SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nconst SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * @private\n * Touch events input\n * @constructor\n * @extends Input\n */\nexport default class SingleTouchInput extends Input {\n constructor() {\n var proto = SingleTouchInput.prototype;\n proto.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n proto.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n\n super(...arguments);\n this.started = false;\n }\n\n handler(ev) {\n let type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n let touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n}\n\n/**\n * @private\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n let all = toArray(ev.touches);\n let changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n","/**\n * @private\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nexport default function deprecate(method, name, message) {\n let deprecationMessage = `DEPRECATED METHOD: ${name}\\n${message} AT \\n`;\n return function() {\n let e = new Error('get-stack-trace');\n let stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n let log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n","import deprecate from './deprecate';\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nconst extend = deprecate((dest, src, merge) => {\n let keys = Object.keys(src);\n let i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\nexport default extend;\n","import deprecate from './deprecate';\nimport extend from './extend';\n/**\n * @private\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nconst merge = deprecate((dest, src) => {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\nexport default merge;\n","import assign from './assign';\n/**\n * @private\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nexport default function inherit(child, base, properties) {\n let baseP = base.prototype;\n let childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n","/**\n * @private\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nexport default function bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n","import Manager from \"./manager\";\nimport defaults, { preset } from \"./defaults\";\nimport assign from './utils/assign';\nimport {\n INPUT_START,\n INPUT_MOVE,\n INPUT_END,\n INPUT_CANCEL,\n DIRECTION_NONE,\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN,\n DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL,\n DIRECTION_ALL,\n} from \"./inputjs/input-consts\";\nimport {\n STATE_POSSIBLE,\n STATE_BEGAN,\n STATE_CHANGED,\n STATE_ENDED,\n STATE_RECOGNIZED,\n STATE_CANCELLED,\n STATE_FAILED,\n} from \"./recognizerjs/recognizer-consts\";\n\nimport Input from \"./inputjs/input-constructor\";\nimport TouchAction from \"./touchactionjs/touchaction-constructor\";\nimport TouchInput from \"./input/touch\";\nimport MouseInput from \"./input/mouse\";\nimport PointerEventInput from \"./input/pointerevent\";\nimport SingleTouchInput from \"./input/singletouch\";\nimport TouchMouseInput from \"./input/touchmouse\";\n\nimport Recognizer from \"./recognizerjs/recognizer-constructor\";\nimport AttrRecognizer from \"./recognizers/attribute\";\nimport TapRecognizer from \"./recognizers/tap\";\nimport PanRecognizer from \"./recognizers/pan\";\nimport SwipeRecognizer from \"./recognizers/swipe\";\nimport PinchRecognizer from \"./recognizers/pinch\";\nimport RotateRecognizer from \"./recognizers/rotate\";\nimport PressRecognizer from \"./recognizers/press\";\n\nimport addEventListeners from \"./utils/add-event-listeners\";\nimport removeEventListeners from \"./utils/remove-event-listeners\";\nimport each from \"./utils/each\";\nimport merge from \"./utils/merge\";\nimport extend from \"./utils/extend\";\nimport inherit from \"./utils/inherit\";\nimport bindFn from \"./utils/bind-fn\";\nimport prefixed from \"./utils/prefixed\";\nimport toArray from \"./utils/to-array\";\nimport uniqueArray from \"./utils/unique-array\";\nimport splitStr from \"./utils/split-str\";\nimport inArray from \"./utils/in-array\";\nimport boolOrFn from \"./utils/bool-or-fn\";\nimport hasParent from \"./utils/has-parent\";\n/**\n * @private\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nexport default class Hammer {\n\t/**\n * @private\n * @const {string}\n */\n\tstatic VERSION = \"#__VERSION__#\";\n\tstatic DIRECTION_ALL = DIRECTION_ALL;\n\tstatic DIRECTION_DOWN = DIRECTION_DOWN;\n\tstatic DIRECTION_LEFT = DIRECTION_LEFT;\n\tstatic DIRECTION_RIGHT = DIRECTION_RIGHT;\n\tstatic DIRECTION_UP = DIRECTION_UP;\n\tstatic DIRECTION_HORIZONTAL = DIRECTION_HORIZONTAL;\n\tstatic DIRECTION_VERTICAL = DIRECTION_VERTICAL;\n\tstatic DIRECTION_NONE = DIRECTION_NONE;\n\tstatic DIRECTION_DOWN = DIRECTION_DOWN;\n\tstatic INPUT_START = INPUT_START;\n\tstatic INPUT_MOVE = INPUT_MOVE;\n static INPUT_END = INPUT_END;\n\tstatic INPUT_CANCEL = INPUT_CANCEL;\n\tstatic STATE_POSSIBLE = STATE_POSSIBLE;\n\tstatic STATE_BEGAN = STATE_BEGAN;\n\tstatic STATE_CHANGED = STATE_CHANGED;\n\tstatic STATE_ENDED = STATE_ENDED;\n\tstatic STATE_RECOGNIZED = STATE_RECOGNIZED;\n\tstatic STATE_CANCELLED = STATE_CANCELLED;\n\tstatic STATE_FAILED = STATE_FAILED;\n\tstatic Manager = Manager;\n\tstatic Input = Input;\n\tstatic TouchAction = TouchAction;\n\tstatic TouchInput = TouchInput;\n\tstatic MouseInput = MouseInput;\n\tstatic PointerEventInput = PointerEventInput;\n\tstatic TouchMouseInput = TouchMouseInput;\n\tstatic SingleTouchInput = SingleTouchInput;\n\tstatic Recognizer = Recognizer;\n\tstatic AttrRecognizer = AttrRecognizer;\n\tstatic Tap = TapRecognizer;\n\tstatic Pan = PanRecognizer;\n\tstatic Swipe = SwipeRecognizer;\n\tstatic Pinch = PinchRecognizer;\n\tstatic Rotate = RotateRecognizer;\n\tstatic Press = PressRecognizer;\n\tstatic on = addEventListeners;\n\tstatic off = removeEventListeners;\n\tstatic each = each;\n\tstatic merge = merge;\n\tstatic extend = extend;\n\tstatic bindFn = bindFn;\n\tstatic assign = assign;\n\tstatic inherit = inherit;\n\tstatic bindFn = bindFn;\n\tstatic prefixed = prefixed;\n\tstatic toArray = toArray;\n\tstatic inArray = inArray;\n\tstatic uniqueArray = uniqueArray;\n\tstatic splitStr = splitStr;\n\tstatic boolOrFn = boolOrFn;\n\tstatic hasParent = hasParent;\n\tstatic addEventListeners = addEventListeners;\n\tstatic removeEventListeners = removeEventListeners;\n\tstatic defaults = assign({}, defaults, { preset });\n\tconstructor(element, options = {}) {\n\t\treturn new Manager(element, {\n\t\t\trecognizers: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n ...preset\n\t\t\t],\n\t\t\t...options,\n\t\t});\n\t}\n}\n","/* @flow */\n\nimport createTheming from './createTheming';\n\nexport { createTheming };\nexport type { ThemingType } from './createTheming';\n","const DEFAULT_TEXT_COLOR = 'black';\nconst DEFAULT_PRESSABLE_RIPPLE_COLOR = 'rgba(38, 132, 240, 0.2)';\n\nconst constants = {\n DEFAULT_PRESSABLE_RIPPLE_COLOR,\n DEFAULT_TEXT_COLOR\n};\n\nexport { DEFAULT_TEXT_COLOR, DEFAULT_PRESSABLE_RIPPLE_COLOR };\n\nexport default constants;\n","export class GesturePropError extends Error {\n constructor(name: string, value: unknown, expectedType: string) {\n super(\n `Invalid property \\`${name}: ${value}\\` expected \\`${expectedType}\\``\n );\n }\n}\n","import { ValueOf } from '../typeUtils';\nimport { Gestures } from '../RNGestureHandlerModule.web';\n\nconst gestures: Record>> = {};\n\nexport function getHandler(tag: number) {\n if (tag in gestures) return gestures[tag];\n\n throw new Error(`No handler for tag ${tag}`);\n}\n\nexport function createGestureHandler(\n handlerTag: number,\n handler: InstanceType>\n) {\n if (handlerTag in gestures) {\n throw new Error(`Handler with tag ${handlerTag} already exists`);\n }\n gestures[handlerTag] = handler;\n // @ts-ignore no types for web handlers yet\n gestures[handlerTag].handlerTag = handlerTag;\n}\n\nexport function dropGestureHandler(handlerTag: number) {\n getHandler(handlerTag).destroy();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete gestures[handlerTag];\n}\n\nexport function getNodes() {\n return { ...gestures };\n}\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\nimport { findNodeHandle } from 'react-native';\n\nimport { State } from '../State';\nimport { EventMap } from './constants';\nimport * as NodeManager from './NodeManager';\n\n// TODO(TS) Replace with HammerInput if https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438/files is merged\nexport type HammerInputExt = Omit;\n\nexport type Config = Partial<{\n enabled: boolean;\n minPointers: number;\n maxPointers: number;\n minDist: number;\n minDistSq: number;\n minVelocity: number;\n minVelocitySq: number;\n maxDist: number;\n maxDistSq: number;\n failOffsetXStart: number;\n failOffsetYStart: number;\n failOffsetXEnd: number;\n failOffsetYEnd: number;\n activeOffsetXStart: number;\n activeOffsetXEnd: number;\n activeOffsetYStart: number;\n activeOffsetYEnd: number;\n waitFor: any[] | null;\n}>;\n\ntype NativeEvent = ReturnType;\n\nlet gestureInstances = 0;\n\nabstract class GestureHandler {\n public handlerTag: any;\n public isGestureRunning = false;\n public view: number | null = null;\n protected hasCustomActivationCriteria: boolean;\n protected hasGestureFailed = false;\n protected hammer: HammerManager | null = null;\n protected initialRotation: number | null = null;\n protected __initialX: any;\n protected __initialY: any;\n protected config: Config = {};\n protected previousState: State = State.UNDETERMINED;\n private pendingGestures: Record = {};\n private oldState: State = State.UNDETERMINED;\n private lastSentState: State | null = null;\n private gestureInstance: number;\n private _stillWaiting: any;\n private propsRef: any;\n private ref: any;\n\n abstract get name(): string;\n\n get id() {\n return `${this.name}${this.gestureInstance}`;\n }\n\n get isDiscrete() {\n return false;\n }\n\n get shouldEnableGestureOnSetup(): boolean {\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\n }\n\n constructor() {\n this.gestureInstance = gestureInstances++;\n this.hasCustomActivationCriteria = false;\n }\n\n getConfig() {\n return this.config;\n }\n\n onWaitingEnded(_gesture: this) {}\n\n removePendingGesture(id: string) {\n delete this.pendingGestures[id];\n }\n\n addPendingGesture(gesture: this) {\n this.pendingGestures[gesture.id] = gesture;\n }\n\n isGestureEnabledForEvent(\n _config: any,\n _recognizer: any,\n _event: any\n ): { failed?: boolean; success?: boolean } {\n return { success: true };\n }\n\n get NativeGestureClass(): RecognizerStatic {\n throw new Error('Must override GestureHandler.NativeGestureClass');\n }\n\n updateHasCustomActivationCriteria(_config: Config) {\n return true;\n }\n\n clearSelfAsPending = () => {\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.removePendingGesture(this.id);\n }\n }\n };\n\n updateGestureConfig({ enabled = true, ...props }) {\n this.clearSelfAsPending();\n\n this.config = ensureConfig({ enabled, ...props });\n this.hasCustomActivationCriteria = this.updateHasCustomActivationCriteria(\n this.config\n );\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.addPendingGesture(this);\n }\n }\n\n if (this.hammer) {\n this.sync();\n }\n return this.config;\n }\n\n destroy = () => {\n this.clearSelfAsPending();\n\n if (this.hammer) {\n this.hammer.stop(false);\n this.hammer.destroy();\n }\n this.hammer = null;\n };\n\n isPointInView = ({ x, y }: { x: number; y: number }) => {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n const pointerInside =\n x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n return pointerInside;\n };\n\n getState(type: keyof typeof EventMap): State {\n // @ts-ignore TODO(TS) check if this is needed\n if (type == 0) {\n return 0;\n }\n return EventMap[type];\n }\n\n transformEventData(event: HammerInputExt) {\n const { eventType, maxPointers: numberOfPointers } = event;\n // const direction = DirectionMap[ev.direction];\n const changedTouch = event.changedPointers[0];\n const pointerInside = this.isPointInView({\n x: changedTouch.clientX,\n y: changedTouch.clientY,\n });\n\n // TODO(TS) Remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50966 is merged.\n const state = this.getState(eventType as 1 | 2 | 4 | 8);\n if (state !== this.previousState) {\n this.oldState = this.previousState;\n this.previousState = state;\n }\n\n return {\n nativeEvent: {\n numberOfPointers,\n state,\n pointerInside,\n ...this.transformNativeEvent(event),\n // onHandlerStateChange only\n handlerTag: this.handlerTag,\n target: this.ref,\n oldState: this.oldState,\n },\n timeStamp: Date.now(),\n };\n }\n\n transformNativeEvent(_event: HammerInputExt) {\n return {};\n }\n\n sendEvent = (nativeEvent: HammerInputExt) => {\n const {\n onGestureHandlerEvent,\n onGestureHandlerStateChange,\n } = this.propsRef.current;\n\n const event = this.transformEventData(nativeEvent);\n\n invokeNullableMethod(onGestureHandlerEvent, event);\n if (this.lastSentState !== event.nativeEvent.state) {\n this.lastSentState = event.nativeEvent.state as State;\n invokeNullableMethod(onGestureHandlerStateChange, event);\n }\n };\n\n cancelPendingGestures(event: HammerInputExt) {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture && gesture.isGestureRunning) {\n gesture.hasGestureFailed = true;\n gesture.cancelEvent(event);\n }\n }\n }\n\n notifyPendingGestures() {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture) {\n gesture.onWaitingEnded(this);\n }\n }\n }\n\n // FIXME event is undefined in runtime when firstly invoked (see Draggable example), check other functions taking event as input\n onGestureEnded(event: HammerInputExt) {\n this.isGestureRunning = false;\n this.cancelPendingGestures(event);\n }\n\n forceInvalidate(event: HammerInputExt) {\n if (this.isGestureRunning) {\n this.hasGestureFailed = true;\n this.cancelEvent(event);\n }\n }\n\n cancelEvent(event: HammerInputExt) {\n this.notifyPendingGestures();\n this.sendEvent({\n ...event,\n eventType: Hammer.INPUT_CANCEL,\n isFinal: true,\n });\n this.onGestureEnded(event);\n }\n\n onRawEvent({ isFirst }: HammerInputExt) {\n if (isFirst) {\n this.hasGestureFailed = false;\n }\n }\n\n setView(ref: Parameters['0'], propsRef: any) {\n if (ref == null) {\n this.destroy();\n this.view = null;\n return;\n }\n\n this.propsRef = propsRef;\n this.ref = ref;\n\n this.view = findNodeHandle(ref);\n this.hammer = new Hammer.Manager(this.view as any);\n\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n\n const { NativeGestureClass } = this;\n // @ts-ignore TODO(TS)\n const gesture = new NativeGestureClass(this.getHammerConfig());\n this.hammer.add(gesture);\n\n this.hammer.on('hammer.input', (ev: HammerInput) => {\n if (!this.config.enabled) {\n this.hasGestureFailed = false;\n this.isGestureRunning = false;\n return;\n }\n\n this.onRawEvent((ev as unknown) as HammerInputExt);\n\n // TODO: Bacon: Check against something other than null\n // The isFirst value is not called when the first rotation is calculated.\n if (this.initialRotation === null && ev.rotation !== 0) {\n this.initialRotation = ev.rotation;\n }\n if (ev.isFinal) {\n // in favor of a willFail otherwise the last frame of the gesture will be captured.\n setTimeout(() => {\n this.initialRotation = null;\n this.hasGestureFailed = false;\n });\n }\n });\n\n this.setupEvents();\n this.sync();\n }\n\n setupEvents() {\n // TODO(TS) Hammer types aren't exactly that what we get in runtime\n if (!this.isDiscrete) {\n this.hammer!.on(`${this.name}start`, (event: HammerInput) =>\n this.onStart((event as unknown) as HammerInputExt)\n );\n this.hammer!.on(\n `${this.name}end ${this.name}cancel`,\n (event: HammerInput) => {\n this.onGestureEnded((event as unknown) as HammerInputExt);\n }\n );\n }\n this.hammer!.on(this.name, (ev: HammerInput) =>\n this.onGestureActivated((ev as unknown) as HammerInputExt)\n ); // TODO(TS) remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438 is merged\n }\n\n onStart({ deltaX, deltaY, rotation }: HammerInputExt) {\n // Reset the state for the next gesture\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n\n this.isGestureRunning = true;\n this.__initialX = deltaX;\n this.__initialY = deltaY;\n this.initialRotation = rotation;\n }\n\n onGestureActivated(ev: HammerInputExt) {\n this.sendEvent(ev);\n }\n\n onSuccess() {}\n\n _getPendingGestures() {\n if (Array.isArray(this.config.waitFor) && this.config.waitFor.length) {\n // Get the list of gestures that this gesture is still waiting for.\n // Use `=== false` in case a ref that isn't a gesture handler is used.\n const stillWaiting = this.config.waitFor.filter(\n ({ hasGestureFailed }) => hasGestureFailed === false\n );\n return stillWaiting;\n }\n return [];\n }\n\n getHammerConfig() {\n const pointers =\n this.config.minPointers === this.config.maxPointers\n ? this.config.minPointers\n : 0;\n return {\n pointers,\n };\n }\n\n sync = () => {\n const gesture = this.hammer!.get(this.name);\n if (!gesture) return;\n\n const enable = (recognizer: any, inputData: any) => {\n if (!this.config.enabled) {\n this.isGestureRunning = false;\n this.hasGestureFailed = false;\n return false;\n }\n\n // Prevent events before the system is ready.\n if (\n !inputData ||\n !recognizer.options ||\n typeof inputData.maxPointers === 'undefined'\n ) {\n return this.shouldEnableGestureOnSetup;\n }\n\n if (this.hasGestureFailed) {\n return false;\n }\n\n if (!this.isDiscrete) {\n if (this.isGestureRunning) {\n return true;\n }\n // The built-in hammer.js \"waitFor\" doesn't work across multiple views.\n // Only process if there are views to wait for.\n this._stillWaiting = this._getPendingGestures();\n // This gesture should continue waiting.\n if (this._stillWaiting.length) {\n // Check to see if one of the gestures you're waiting for has started.\n // If it has then the gesture should fail.\n for (const gesture of this._stillWaiting) {\n // When the target gesture has started, this gesture must force fail.\n if (!gesture.isDiscrete && gesture.isGestureRunning) {\n this.hasGestureFailed = true;\n this.isGestureRunning = false;\n return false;\n }\n }\n // This gesture shouldn't start until the others have finished.\n return false;\n }\n }\n\n // Use default behaviour\n if (!this.hasCustomActivationCriteria) {\n return true;\n }\n\n const deltaRotation =\n this.initialRotation == null\n ? 0\n : inputData.rotation - this.initialRotation;\n // @ts-ignore FIXME(TS)\n const { success, failed } = this.isGestureEnabledForEvent(\n this.getConfig(),\n recognizer,\n {\n ...inputData,\n deltaRotation,\n }\n );\n\n if (failed) {\n this.simulateCancelEvent(inputData);\n this.hasGestureFailed = true;\n }\n return success;\n };\n\n const params = this.getHammerConfig();\n // @ts-ignore FIXME(TS)\n gesture.set({ ...params, enable });\n };\n\n simulateCancelEvent(_inputData: any) {}\n}\n\n// TODO(TS) investigate this method\n// Used for sending data to a callback or AnimatedEvent\nfunction invokeNullableMethod(\n method:\n | ((event: NativeEvent) => void)\n | { __getHandler: () => (event: NativeEvent) => void }\n | { __nodeConfig: { argMapping: any } },\n event: NativeEvent\n) {\n if (method) {\n if (typeof method === 'function') {\n method(event);\n } else {\n // For use with reanimated's AnimatedEvent\n if (\n '__getHandler' in method &&\n typeof method.__getHandler === 'function'\n ) {\n const handler = method.__getHandler();\n invokeNullableMethod(handler, event);\n } else {\n if ('__nodeConfig' in method) {\n const { argMapping } = method.__nodeConfig;\n if (Array.isArray(argMapping)) {\n for (const index in argMapping) {\n const [key, value] = argMapping[index];\n if (key in event.nativeEvent) {\n // @ts-ignore fix method type\n const nativeValue = event.nativeEvent[key];\n if (value && value.setValue) {\n // Reanimated API\n value.setValue(nativeValue);\n } else {\n // RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\n// Validate the props\nfunction ensureConfig(config: Config): Required {\n const props = { ...config };\n\n // TODO(TS) We use ! to assert that if property is present then value is not empty (null, undefined)\n if ('minDist' in config) {\n props.minDist = config.minDist;\n props.minDistSq = props.minDist! * props.minDist!;\n }\n if ('minVelocity' in config) {\n props.minVelocity = config.minVelocity;\n props.minVelocitySq = props.minVelocity! * props.minVelocity!;\n }\n if ('maxDist' in config) {\n props.maxDist = config.maxDist;\n props.maxDistSq = config.maxDist! * config.maxDist!;\n }\n if ('waitFor' in config) {\n props.waitFor = asArray(config.waitFor)\n .map(({ handlerTag }: { handlerTag: number }) =>\n NodeManager.getHandler(handlerTag)\n )\n .filter((v) => v);\n } else {\n props.waitFor = null;\n }\n\n const configProps = [\n 'minPointers',\n 'maxPointers',\n 'minDist',\n 'maxDist',\n 'maxDistSq',\n 'minVelocitySq',\n 'minDistSq',\n 'minVelocity',\n 'failOffsetXStart',\n 'failOffsetYStart',\n 'failOffsetXEnd',\n 'failOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n ] as const;\n configProps.forEach((prop: typeof configProps[number]) => {\n if (typeof props[prop] === 'undefined') {\n props[prop] = Number.NaN;\n }\n });\n return props as Required; // TODO(TS) how to convince TS that props are filled?\n}\n\nfunction asArray(value: T | T[]) {\n // TODO(TS) use config.waitFor type\n return value == null ? [] : Array.isArray(value) ? value : [value];\n}\n\nexport default GestureHandler;\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport GestureHandler, { HammerInputExt } from './GestureHandler';\nimport { PixelRatio } from 'react-native';\n\nabstract class DraggingGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n transformNativeEvent({\n deltaX,\n deltaY,\n velocityX,\n velocityY,\n center: { x, y },\n }: HammerInputExt) {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n const ratio = PixelRatio.get();\n return {\n translationX: deltaX - (this.__initialX || 0),\n translationY: deltaY - (this.__initialY || 0),\n absoluteX: x,\n absoluteY: y,\n velocityX: velocityX * ratio,\n velocityY: velocityY * ratio,\n x: x - rect.left,\n y: y - rect.top,\n };\n }\n}\n\nexport default DraggingGestureHandler;\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\n\nimport { Direction } from './constants';\nimport { GesturePropError } from './Errors';\nimport DraggingGestureHandler from './DraggingGestureHandler';\nimport { isnan } from './utils';\nimport { HammerInputExt } from './GestureHandler';\n\nclass FlingGestureHandler extends DraggingGestureHandler {\n get name() {\n return 'swipe';\n }\n\n get NativeGestureClass() {\n return Hammer.Swipe;\n }\n\n onGestureActivated(event: HammerInputExt) {\n this.sendEvent({\n ...event,\n eventType: Hammer.INPUT_MOVE,\n isFinal: false,\n isFirst: true,\n });\n this.isGestureRunning = false;\n this.hasGestureFailed = false;\n this.sendEvent({\n ...event,\n eventType: Hammer.INPUT_END,\n isFinal: true,\n });\n }\n\n onRawEvent(ev: HammerInputExt) {\n super.onRawEvent(ev);\n if (this.hasGestureFailed) {\n return;\n }\n // Hammer doesn't send a `cancel` event for taps.\n // Manually fail the event.\n if (ev.isFinal) {\n setTimeout(() => {\n if (this.isGestureRunning) {\n this.cancelEvent(ev);\n }\n });\n } else if (!this.hasGestureFailed && !this.isGestureRunning) {\n // Tap Gesture start event\n const gesture = this.hammer!.get(this.name);\n // @ts-ignore FIXME(TS)\n if (gesture.options.enable(gesture, ev)) {\n this.onStart(ev);\n this.sendEvent(ev);\n }\n }\n }\n\n getHammerConfig() {\n return {\n // @ts-ignore FIXME(TS)\n pointers: this.config.numberOfPointers,\n direction: this.getDirection(),\n };\n }\n\n getTargetDirections(direction: number) {\n const directions = [];\n if (direction & Direction.RIGHT) {\n directions.push(Hammer.DIRECTION_RIGHT);\n }\n if (direction & Direction.LEFT) {\n directions.push(Hammer.DIRECTION_LEFT);\n }\n if (direction & Direction.UP) {\n directions.push(Hammer.DIRECTION_UP);\n }\n if (direction & Direction.DOWN) {\n directions.push(Hammer.DIRECTION_DOWN);\n }\n // const hammerDirection = directions.reduce((a, b) => a | b, 0);\n return directions;\n }\n\n getDirection() {\n // @ts-ignore FIXME(TS)\n const { direction } = this.getConfig();\n\n let directions = [];\n if (direction & Direction.RIGHT) {\n directions.push(Hammer.DIRECTION_HORIZONTAL);\n }\n if (direction & Direction.LEFT) {\n directions.push(Hammer.DIRECTION_HORIZONTAL);\n }\n if (direction & Direction.UP) {\n directions.push(Hammer.DIRECTION_VERTICAL);\n }\n if (direction & Direction.DOWN) {\n directions.push(Hammer.DIRECTION_VERTICAL);\n }\n directions = [...new Set(directions)];\n\n if (directions.length === 0) return Hammer.DIRECTION_NONE;\n if (directions.length === 1) return directions[0];\n return Hammer.DIRECTION_ALL;\n }\n\n isGestureEnabledForEvent(\n { numberOfPointers }: any,\n _recognizer: any,\n { maxPointers: pointerLength }: any\n ) {\n const validPointerCount = pointerLength === numberOfPointers;\n if (!validPointerCount && this.isGestureRunning) {\n return { failed: true };\n }\n return { success: validPointerCount };\n }\n\n updateGestureConfig({ numberOfPointers = 1, direction, ...props }: any) {\n if (isnan(direction) || typeof direction !== 'number') {\n throw new GesturePropError('direction', direction, 'number');\n }\n return super.updateGestureConfig({\n numberOfPointers,\n direction,\n ...props,\n });\n }\n}\n\nexport default FlingGestureHandler;\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport GestureHandler from './GestureHandler';\nimport { TEST_MAX_IF_NOT_NAN } from './utils';\n\nabstract class DiscreteGestureHandler extends GestureHandler {\n get isDiscrete() {\n return true;\n }\n\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n shouldFailUnderCustomCriteria(\n { x, y, deltaX, deltaY }: any,\n { maxDeltaX, maxDeltaY, maxDistSq, shouldCancelWhenOutside }: any\n ) {\n if (shouldCancelWhenOutside) {\n if (!this.isPointInView({ x, y })) {\n return true;\n }\n }\n return (\n TEST_MAX_IF_NOT_NAN(Math.abs(deltaX), maxDeltaX) ||\n TEST_MAX_IF_NOT_NAN(Math.abs(deltaY), maxDeltaY) ||\n TEST_MAX_IF_NOT_NAN(\n Math.abs(deltaY * deltaY + deltaX * deltaX),\n maxDistSq\n )\n );\n }\n\n transformNativeEvent({ center: { x, y } }: any) {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n\n return {\n absoluteX: x,\n absoluteY: y,\n x: x - rect.left,\n y: y - rect.top,\n };\n }\n\n isGestureEnabledForEvent(\n {\n minPointers,\n maxPointers,\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside,\n }: any,\n _recognizer: any,\n { maxPointers: pointerLength, center, deltaX, deltaY }: any\n ) {\n const validPointerCount =\n pointerLength >= minPointers && pointerLength <= maxPointers;\n\n if (\n this.shouldFailUnderCustomCriteria(\n { ...center, deltaX, deltaY },\n {\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside,\n }\n ) ||\n // A user probably won't land a multi-pointer tap on the first tick (so we cannot just cancel each time)\n // but if the gesture is running and the user adds or subtracts another pointer then it should fail.\n (!validPointerCount && this.isGestureRunning)\n ) {\n return { failed: true };\n }\n\n return { success: validPointerCount };\n }\n}\n\nexport default DiscreteGestureHandler;\n","import Hammer from '@egjs/hammerjs';\n\nimport { State } from '../State';\nimport {\n CONTENT_TOUCHES_DELAY,\n CONTENT_TOUCHES_QUICK_TAP_END_DELAY,\n HammerInputNames,\n} from './constants';\nimport DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { Config, HammerInputExt } from './GestureHandler';\nimport { fireAfterInterval, isValidNumber, isnan } from './utils';\n\nclass PressGestureHandler extends DiscreteGestureHandler {\n private visualFeedbackTimer: any;\n private initialEvent: HammerInputExt | null = null;\n get name() {\n return 'press';\n }\n\n get minDurationMs() {\n // @ts-ignore FIXME(TS)\n return isnan(this.config.minDurationMs) ? 5 : this.config.minDurationMs;\n }\n\n get maxDist() {\n return isnan(this.config.maxDist) ? 9 : this.config.maxDist;\n }\n\n get NativeGestureClass() {\n return Hammer.Press;\n }\n\n shouldDelayTouches = true;\n\n simulateCancelEvent(inputData: HammerInputExt) {\n // Long press never starts so we can't rely on the running event boolean.\n this.hasGestureFailed = true;\n this.cancelEvent(inputData);\n }\n\n updateHasCustomActivationCriteria({\n shouldCancelWhenOutside,\n maxDistSq,\n }: Config & { shouldCancelWhenOutside: boolean }) {\n return shouldCancelWhenOutside || !isValidNumber(maxDistSq);\n }\n\n getState(type: keyof typeof HammerInputNames): State {\n return {\n [Hammer.INPUT_START]: State.BEGAN,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.CANCELLED,\n }[type];\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n shouldCancelWhenOutside: true,\n maxDistSq: 10,\n };\n }\n return this.config;\n }\n\n getHammerConfig() {\n return {\n ...super.getHammerConfig(),\n // threshold: this.maxDist,\n time: this.minDurationMs,\n };\n }\n\n onGestureActivated(ev: HammerInputExt) {\n this.onGestureStart(ev);\n }\n\n shouldDelayTouchForEvent({ pointerType }: HammerInputExt) {\n // Don't disable event for mouse input\n return this.shouldDelayTouches && pointerType === 'touch';\n }\n\n onGestureStart(ev: HammerInputExt) {\n this.isGestureRunning = true;\n clearTimeout(this.visualFeedbackTimer);\n this.initialEvent = ev;\n this.visualFeedbackTimer = fireAfterInterval(() => {\n this.sendGestureStartedEvent(this.initialEvent as HammerInputExt);\n this.initialEvent = null;\n }, this.shouldDelayTouchForEvent(ev) && CONTENT_TOUCHES_DELAY);\n }\n\n sendGestureStartedEvent(ev: HammerInputExt) {\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFirst: true,\n });\n }\n\n forceInvalidate(event: HammerInputExt) {\n super.forceInvalidate(event);\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.initialEvent = null;\n }\n\n onRawEvent(ev: HammerInputExt) {\n super.onRawEvent(ev);\n if (this.isGestureRunning) {\n if (ev.isFinal) {\n let timeout;\n if (this.visualFeedbackTimer) {\n // Aesthetic timing for a quick tap.\n // We haven't activated the tap right away to emulate iOS `delaysContentTouches`\n // Now we must send the initial activation event and wait a set amount of time before firing the end event.\n timeout = CONTENT_TOUCHES_QUICK_TAP_END_DELAY;\n this.sendGestureStartedEvent(this.initialEvent as HammerInputExt);\n this.initialEvent = null;\n }\n fireAfterInterval(() => {\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_END,\n isFinal: true,\n });\n // @ts-ignore -- this should explicitly support undefined\n this.onGestureEnded();\n }, timeout);\n } else {\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFinal: false,\n });\n }\n }\n }\n\n updateGestureConfig({\n shouldActivateOnStart = false,\n disallowInterruption = false,\n shouldCancelWhenOutside = true,\n minDurationMs = Number.NaN,\n maxDist = Number.NaN,\n minPointers = 1,\n maxPointers = 1,\n ...props\n }) {\n return super.updateGestureConfig({\n shouldActivateOnStart,\n disallowInterruption,\n shouldCancelWhenOutside,\n minDurationMs,\n maxDist,\n minPointers,\n maxPointers,\n ...props,\n });\n }\n}\nexport default PressGestureHandler;\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\n\nimport { State } from '../State';\nimport PressGestureHandler from './PressGestureHandler';\nimport { isnan, isValidNumber } from './utils';\nimport { Config } from './GestureHandler';\nimport { HammerInputNames } from './constants';\n\nclass LongPressGestureHandler extends PressGestureHandler {\n get minDurationMs(): number {\n // @ts-ignore FIXNE(TS)\n return isnan(this.config.minDurationMs) ? 251 : this.config.minDurationMs;\n }\n\n get maxDist() {\n // @ts-ignore FIXNE(TS)\n return isnan(this.config.maxDist) ? 9 : this.config.maxDist;\n }\n\n updateHasCustomActivationCriteria({ maxDistSq }: Config) {\n return !isValidNumber(maxDistSq);\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n shouldCancelWhenOutside: true,\n maxDistSq: 10,\n };\n }\n return this.config;\n }\n\n getHammerConfig() {\n return {\n ...super.getHammerConfig(),\n // threshold: this.maxDist,\n time: this.minDurationMs,\n };\n }\n\n getState(type: keyof typeof HammerInputNames) {\n return {\n [Hammer.INPUT_START]: State.ACTIVE,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.FAILED,\n }[type];\n }\n}\n\nexport default LongPressGestureHandler;\n","import createHandler from './createHandler';\nimport { BaseGestureHandlerProps, baseProps } from './gestureHandlers';\n\nexport interface NativeViewGestureHandlerProps\n extends BaseGestureHandlerProps {\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n}\n\nexport type NativeViewGestureHandlerPayload = {\n pointerInside: boolean;\n};\n\nexport const nativeViewProps = [\n ...baseProps,\n 'shouldActivateOnStart',\n 'disallowInterruption',\n] as const;\n\nexport type NativeViewGestureHandler = typeof NativeViewGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlers.ts file\nexport const NativeViewGestureHandler = createHandler<\n NativeViewGestureHandlerProps,\n NativeViewGestureHandlerPayload\n>({\n name: 'NativeViewGestureHandler',\n allowedProps: nativeViewProps,\n config: {},\n});\n","import Hammer from '@egjs/hammerjs';\n\nimport {\n EventMap,\n MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD,\n MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD,\n} from './constants';\nimport DraggingGestureHandler from './DraggingGestureHandler';\nimport { isValidNumber, isnan, TEST_MIN_IF_NOT_NAN, VEC_LEN_SQ } from './utils';\nimport { State } from '../State';\n\nimport { Config, HammerInputExt } from './GestureHandler';\nclass PanGestureHandler extends DraggingGestureHandler {\n get name() {\n return 'pan';\n }\n\n get NativeGestureClass() {\n return Hammer.Pan;\n }\n\n getHammerConfig() {\n return {\n ...super.getHammerConfig(),\n direction: this.getDirection(),\n };\n }\n\n getState(type: keyof typeof EventMap) {\n const nextState = super.getState(type);\n // Ensure that the first state sent is `BEGAN` and not `ACTIVE`\n if (\n this.previousState === State.UNDETERMINED &&\n nextState === State.ACTIVE\n ) {\n return State.BEGAN;\n }\n return nextState;\n }\n\n getDirection() {\n const config = this.getConfig();\n const {\n activeOffsetXStart,\n activeOffsetXEnd,\n activeOffsetYStart,\n activeOffsetYEnd,\n minDist,\n } = config;\n let directions: number[] = [];\n let horizontalDirections = [];\n\n if (!isnan(minDist)) {\n return Hammer.DIRECTION_ALL;\n }\n\n if (!isnan(activeOffsetXStart))\n horizontalDirections.push(Hammer.DIRECTION_LEFT);\n if (!isnan(activeOffsetXEnd))\n horizontalDirections.push(Hammer.DIRECTION_RIGHT);\n if (horizontalDirections.length === 2)\n horizontalDirections = [Hammer.DIRECTION_HORIZONTAL];\n\n directions = directions.concat(horizontalDirections);\n let verticalDirections = [];\n\n if (!isnan(activeOffsetYStart))\n verticalDirections.push(Hammer.DIRECTION_UP);\n if (!isnan(activeOffsetYEnd))\n verticalDirections.push(Hammer.DIRECTION_DOWN);\n\n if (verticalDirections.length === 2)\n verticalDirections = [Hammer.DIRECTION_VERTICAL];\n\n directions = directions.concat(verticalDirections);\n\n if (!directions.length) {\n return Hammer.DIRECTION_NONE;\n }\n if (\n directions[0] === Hammer.DIRECTION_HORIZONTAL &&\n directions[1] === Hammer.DIRECTION_VERTICAL\n ) {\n return Hammer.DIRECTION_ALL;\n }\n if (horizontalDirections.length && verticalDirections.length) {\n return Hammer.DIRECTION_ALL;\n }\n\n return directions[0];\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n minDistSq: 10,\n };\n }\n return this.config;\n }\n\n shouldFailUnderCustomCriteria(\n { deltaX, deltaY }: HammerInputExt,\n criteria: any\n ) {\n return (\n (!isnan(criteria.failOffsetXStart) &&\n deltaX < criteria.failOffsetXStart) ||\n (!isnan(criteria.failOffsetXEnd) && deltaX > criteria.failOffsetXEnd) ||\n (!isnan(criteria.failOffsetYStart) &&\n deltaY < criteria.failOffsetYStart) ||\n (!isnan(criteria.failOffsetYEnd) && deltaY > criteria.failOffsetYEnd)\n );\n }\n\n shouldActivateUnderCustomCriteria(\n { deltaX, deltaY, velocity }: any,\n criteria: any\n ) {\n return (\n (!isnan(criteria.activeOffsetXStart) &&\n deltaX < criteria.activeOffsetXStart) ||\n (!isnan(criteria.activeOffsetXEnd) &&\n deltaX > criteria.activeOffsetXEnd) ||\n (!isnan(criteria.activeOffsetYStart) &&\n deltaY < criteria.activeOffsetYStart) ||\n (!isnan(criteria.activeOffsetYEnd) &&\n deltaY > criteria.activeOffsetYEnd) ||\n TEST_MIN_IF_NOT_NAN(\n VEC_LEN_SQ({ x: deltaX, y: deltaY }),\n criteria.minDistSq\n ) ||\n TEST_MIN_IF_NOT_NAN(velocity.x, criteria.minVelocityX) ||\n TEST_MIN_IF_NOT_NAN(velocity.y, criteria.minVelocityY) ||\n TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ(velocity), criteria.minVelocitySq)\n );\n }\n\n shouldMultiFingerPanFail({\n pointerLength,\n scale,\n deltaRotation,\n }: {\n deltaRotation: number;\n pointerLength: number;\n scale: number;\n }) {\n if (pointerLength <= 1) {\n return false;\n }\n\n // Test if the pan had too much pinching or rotating.\n const deltaScale = Math.abs(scale - 1);\n const absDeltaRotation = Math.abs(deltaRotation);\n if (deltaScale > MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD) {\n // > If the threshold doesn't seem right.\n // You can log the value which it failed at here:\n return true;\n }\n if (absDeltaRotation > MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD) {\n // > If the threshold doesn't seem right.\n // You can log the value which it failed at here:\n return true;\n }\n\n return false;\n }\n\n updateHasCustomActivationCriteria(\n criteria: Config & { minVelocityX?: number; minVelocityY?: number }\n ) {\n return (\n isValidNumber(criteria.minDistSq) ||\n isValidNumber(criteria.minVelocityX) ||\n isValidNumber(criteria.minVelocityY) ||\n isValidNumber(criteria.minVelocitySq) ||\n isValidNumber(criteria.activeOffsetXStart) ||\n isValidNumber(criteria.activeOffsetXEnd) ||\n isValidNumber(criteria.activeOffsetYStart) ||\n isValidNumber(criteria.activeOffsetYEnd)\n );\n }\n\n isGestureEnabledForEvent(\n props: any,\n _recognizer: any,\n inputData: HammerInputExt & { deltaRotation: number }\n ) {\n if (this.shouldFailUnderCustomCriteria(inputData, props)) {\n return { failed: true };\n }\n\n const velocity = { x: inputData.velocityX, y: inputData.velocityY };\n if (\n this.hasCustomActivationCriteria &&\n this.shouldActivateUnderCustomCriteria(\n { deltaX: inputData.deltaX, deltaY: inputData.deltaY, velocity },\n props\n )\n ) {\n if (\n this.shouldMultiFingerPanFail({\n pointerLength: inputData.maxPointers,\n scale: inputData.scale,\n deltaRotation: inputData.deltaRotation,\n })\n ) {\n return {\n failed: true,\n };\n }\n return { success: true };\n }\n return { success: false };\n }\n}\n\nexport default PanGestureHandler;\n","import GestureHandler from './GestureHandler';\n\n/**\n * The base class for **Rotation** and **Pinch** gesture handlers.\n */\nabstract class IndiscreteGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return false;\n }\n\n updateGestureConfig({ minPointers = 2, maxPointers = 2, ...props }) {\n return super.updateGestureConfig({\n minPointers,\n maxPointers,\n ...props,\n });\n }\n\n isGestureEnabledForEvent(\n { minPointers, maxPointers }: any,\n _recognizer: any,\n { maxPointers: pointerLength }: any\n ) {\n if (pointerLength > maxPointers) {\n return { failed: true };\n }\n const validPointerCount = pointerLength >= minPointers;\n return {\n success: validPointerCount,\n };\n }\n}\nexport default IndiscreteGestureHandler;\n","import Hammer from '@egjs/hammerjs';\nimport { HammerInputExt } from './GestureHandler';\n\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass PinchGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'pinch';\n }\n\n get NativeGestureClass() {\n return Hammer.Pinch;\n }\n\n transformNativeEvent({ scale, velocity, center }: HammerInputExt) {\n return {\n focalX: center.x,\n focalY: center.y,\n velocity,\n scale,\n };\n }\n}\n\nexport default PinchGestureHandler;\n","import Hammer from '@egjs/hammerjs';\n\nimport { DEG_RAD } from './constants';\nimport { HammerInputExt } from './GestureHandler';\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass RotationGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'rotate';\n }\n\n get NativeGestureClass() {\n return Hammer.Rotate;\n }\n\n transformNativeEvent({ rotation, velocity, center }: HammerInputExt) {\n return {\n rotation: (rotation - (this.initialRotation ?? 0)) * DEG_RAD,\n anchorX: center.x,\n anchorY: center.y,\n velocity,\n };\n }\n}\nexport default RotationGestureHandler;\n","import Hammer from '@egjs/hammerjs';\n\nimport DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { HammerInputExt } from './GestureHandler';\nimport { isnan } from './utils';\n\nclass TapGestureHandler extends DiscreteGestureHandler {\n private _shouldFireEndEvent: HammerInputExt | null = null;\n private _timer: any;\n private _multiTapTimer: any; // TODO unused?\n get name() {\n return 'tap';\n }\n\n get NativeGestureClass() {\n return Hammer.Tap;\n }\n\n get maxDelayMs() {\n // @ts-ignore TODO(TS) trace down config\n return isnan(this.config.maxDelayMs) ? 300 : this.config.maxDelayMs;\n }\n\n simulateCancelEvent(inputData: HammerInputExt) {\n if (this.isGestureRunning) {\n this.cancelEvent(inputData);\n }\n }\n\n onGestureActivated(ev: HammerInputExt) {\n if (this.isGestureRunning) {\n this.onSuccessfulTap(ev);\n }\n }\n\n onSuccessfulTap = (ev: HammerInputExt) => {\n if (this._getPendingGestures().length) {\n this._shouldFireEndEvent = ev;\n return;\n }\n if (ev.eventType === Hammer.INPUT_END) {\n this.sendEvent({ ...ev, eventType: Hammer.INPUT_MOVE });\n }\n // When handler gets activated it will turn into State.END immediately.\n this.sendEvent({ ...ev, isFinal: true });\n this.onGestureEnded(ev);\n };\n\n onRawEvent(ev: HammerInput) {\n super.onRawEvent(ev);\n\n // Attempt to create a touch-down event by checking if a valid tap hasn't started yet, then validating the input.\n if (\n !this.hasGestureFailed &&\n !this.isGestureRunning &&\n // Prevent multi-pointer events from misfiring.\n !ev.isFinal\n ) {\n // Tap Gesture start event\n const gesture = this.hammer!.get(this.name);\n // @ts-ignore TODO(TS) trace down config\n if (gesture.options.enable(gesture, ev)) {\n clearTimeout(this._multiTapTimer);\n\n this.onStart(ev);\n this.sendEvent(ev);\n }\n }\n if (ev.isFinal && ev.maxPointers > 1) {\n setTimeout(() => {\n // Handle case where one finger presses slightly\n // after the first finger on a multi-tap event\n if (this.isGestureRunning) {\n this.cancelEvent(ev);\n }\n });\n }\n\n if (this.hasGestureFailed) {\n return;\n }\n // Hammer doesn't send a `cancel` event for taps.\n // Manually fail the event.\n if (ev.isFinal) {\n // Handle case where one finger presses slightly\n // after the first finger on a multi-tap event\n if (ev.maxPointers > 1) {\n setTimeout(() => {\n if (this.isGestureRunning) {\n this.cancelEvent(ev);\n }\n });\n }\n\n // Clear last timer\n clearTimeout(this._timer);\n // Create time out for multi-taps.\n this._timer = setTimeout(() => {\n this.hasGestureFailed = true;\n this.cancelEvent(ev);\n }, this.maxDelayMs);\n } else if (!this.hasGestureFailed && !this.isGestureRunning) {\n // Tap Gesture start event\n const gesture = this.hammer!.get(this.name);\n // @ts-ignore TODO(TS) trace down config\n if (gesture.options.enable(gesture, ev)) {\n clearTimeout(this._multiTapTimer);\n\n this.onStart(ev);\n this.sendEvent(ev);\n }\n }\n }\n\n getHammerConfig() {\n return {\n ...super.getHammerConfig(),\n event: this.name,\n // @ts-ignore TODO(TS) trace down config\n taps: isnan(this.config.numberOfTaps) ? 1 : this.config.numberOfTaps,\n interval: this.maxDelayMs,\n time:\n // @ts-ignore TODO(TS) trace down config\n isnan(this.config.maxDurationMs) || this.config.maxDurationMs == null\n ? 250\n : // @ts-ignore TODO(TS) trace down config\n this.config.maxDurationMs,\n };\n }\n\n updateGestureConfig({\n shouldCancelWhenOutside = true,\n maxDeltaX = Number.NaN,\n maxDeltaY = Number.NaN,\n numberOfTaps = 1,\n minDurationMs = 525,\n maxDelayMs = Number.NaN,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- TODO possibly forgotten to use in updateGestureConfig?\n maxDurationMs = Number.NaN,\n maxDist = 2,\n minPointers = 1,\n maxPointers = 1,\n ...props\n }) {\n return super.updateGestureConfig({\n shouldCancelWhenOutside,\n numberOfTaps,\n maxDeltaX,\n maxDeltaY,\n minDurationMs,\n maxDelayMs,\n maxDist,\n minPointers,\n maxPointers,\n ...props,\n });\n }\n\n onGestureEnded(...props: any) {\n clearTimeout(this._timer);\n // @ts-ignore TODO(TS) check how onGestureEnded works\n super.onGestureEnded(...props);\n }\n\n onWaitingEnded(_gesture: any) {\n if (this._shouldFireEndEvent) {\n this.onSuccessfulTap(this._shouldFireEndEvent);\n this._shouldFireEndEvent = null;\n }\n }\n}\nexport default TapGestureHandler;\n","import { Direction } from './web/constants';\nimport FlingGestureHandler from './web/FlingGestureHandler';\nimport LongPressGestureHandler from './web/LongPressGestureHandler';\nimport NativeViewGestureHandler from './web/NativeViewGestureHandler';\nimport * as NodeManager from './web/NodeManager';\nimport PanGestureHandler from './web/PanGestureHandler';\nimport PinchGestureHandler from './web/PinchGestureHandler';\nimport RotationGestureHandler from './web/RotationGestureHandler';\nimport TapGestureHandler from './web/TapGestureHandler';\n\nexport const Gestures = {\n PanGestureHandler,\n RotationGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n NativeViewGestureHandler,\n LongPressGestureHandler,\n FlingGestureHandler,\n // ForceTouchGestureHandler,\n};\n\nexport default {\n Direction,\n handleSetJSResponder(tag: number, blockNativeResponder: boolean) {\n console.warn('handleSetJSResponder: ', tag, blockNativeResponder);\n },\n handleClearJSResponder() {\n console.warn('handleClearJSResponder: ');\n },\n createGestureHandler(\n handlerName: keyof typeof Gestures,\n handlerTag: number,\n config: T\n ) {\n //TODO(TS) extends config\n if (!(handlerName in Gestures))\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass());\n this.updateGestureHandler(handlerTag, config);\n },\n attachGestureHandler(\n handlerTag: number,\n newView: number,\n propsRef: React.RefObject\n ) {\n NodeManager.getHandler(handlerTag).setView(newView, propsRef);\n },\n updateGestureHandler(handlerTag: number, newConfig: any) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n },\n getGestureHandlerNode(handlerTag: number) {\n return NodeManager.getHandler(handlerTag);\n },\n dropGestureHandler(handlerTag: number) {\n NodeManager.dropGestureHandler(handlerTag);\n },\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _robustAcos=_interopRequireDefault(require(\"./robustAcos\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getDistance=function getDistance(from,to){var accuracy=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;accuracy=typeof accuracy!==\"undefined\"&&!isNaN(accuracy)?accuracy:1;var fromLat=(0,_getLatitude.default)(from);var fromLon=(0,_getLongitude.default)(from);var toLat=(0,_getLatitude.default)(to);var toLon=(0,_getLongitude.default)(to);var distance=Math.acos((0,_robustAcos.default)(Math.sin((0,_toRad.default)(toLat))*Math.sin((0,_toRad.default)(fromLat))+Math.cos((0,_toRad.default)(toLat))*Math.cos((0,_toRad.default)(fromLat))*Math.cos((0,_toRad.default)(fromLon)-(0,_toRad.default)(toLon))))*_constants.earthRadius;return Math.round(distance/accuracy)*accuracy};var _default=getDistance;exports.default=_default;","/**\n * The **content model** associated with a tag determines how this tag should\n * be translated in the Transient Render Tree.\n */\n// eslint-disable-next-line no-shadow\nexport enum HTMLContentModel {\n /**\n * Translatable to TBlock.\n */\n block = 'block',\n /**\n * Translatable to TPhrasing and TText\n */\n textual = 'textual',\n /**\n * Translatable to TBlock, TPhrasing and TText\n */\n mixed = 'mixed',\n /**\n * Translatable to TEmpty\n */\n none = 'none'\n}\n\nexport default HTMLContentModel;\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusWithoutScrolling, getOwnerDocument, runAfterTransition} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\n\n/**\n * A utility function that focuses an element while avoiding undesired side effects such\n * as page scrolling and screen reader issues with CSS transitions.\n */\nexport function focusSafely(element: FocusableElement) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n const ownerDocument = getOwnerDocument(element);\n if (getInteractionModality() === 'virtual') {\n let lastFocusedElement = ownerDocument.activeElement;\n runAfterTransition(() => {\n // If focus did not move and the element is still in the document, focus it.\n if (ownerDocument.activeElement === lastFocusedElement && element.isConnected) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getOwnerWindow} from '@react-aria/utils';\n\nfunction isStyleVisible(element: Element) {\n const windowObject = getOwnerWindow(element);\n if (!(element instanceof windowObject.HTMLElement) && !(element instanceof windowObject.SVGElement)) {\n return false;\n }\n\n let {display, visibility} = element.style;\n\n let isVisible = (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse'\n );\n\n if (isVisible) {\n const {getComputedStyle} = element.ownerDocument.defaultView as unknown as Window;\n let {display: computedDisplay, visibility: computedVisibility} = getComputedStyle(element);\n\n isVisible = (\n computedDisplay !== 'none' &&\n computedVisibility !== 'hidden' &&\n computedVisibility !== 'collapse'\n );\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n return (\n !element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' &&\n childElement &&\n childElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true)\n );\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and\n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */\nexport function isElementVisible(element: Element, childElement?: Element) {\n return (\n element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableElement} from '@react-types/shared';\nimport {focusSafely} from './focusSafely';\nimport {getOwnerDocument, useLayoutEffect} from '@react-aria/utils';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useMemo, useRef} from 'react';\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean,\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): FocusableElement | null,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): FocusableElement | null,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): FocusableElement | null,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): FocusableElement | null\n}\n\ntype ScopeRef = RefObject | null;\ninterface IFocusContext {\n focusManager: FocusManager,\n parentNode: TreeNode | null\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef(null);\n let endRef = useRef(null);\n let scopeRef = useRef([]);\n let {parentNode} = useContext(FocusContext) || {};\n\n // Create a tree node here so we can add children to it even before it is added to the tree.\n let node = useMemo(() => new TreeNode({scopeRef}), [scopeRef]);\n\n useLayoutEffect(() => {\n // If a new scope mounts outside the active scope, (e.g. DialogContainer launched from a menu),\n // use the active scope as the parent instead of the parent from context. Layout effects run bottom\n // up, so if the parent is not yet added to the tree, don't do this. Only the outer-most FocusScope\n // that is being added should get the activeScope as its parent.\n let parent = parentNode || focusScopeTree.root;\n if (focusScopeTree.getTreeNode(parent.scopeRef) && activeScope && !isAncestorScope(activeScope, parent.scopeRef)) {\n let activeNode = focusScopeTree.getTreeNode(activeScope);\n if (activeNode) {\n parent = activeNode;\n }\n }\n\n // Add the node to the parent, and to the tree.\n parent.addChild(node);\n focusScopeTree.addNode(node);\n }, [node, parentNode]);\n\n useLayoutEffect(() => {\n let node = focusScopeTree.getTreeNode(scopeRef);\n if (node) {\n node.contain = !!contain;\n }\n }, [contain]);\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current?.nextSibling!;\n let nodes: Element[] = [];\n while (node && node !== endRef.current) {\n nodes.push(node as Element);\n node = node.nextSibling as Element;\n }\n\n scopeRef.current = nodes;\n }, [children]);\n\n useActiveScopeTracker(scopeRef, restoreFocus, contain);\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n // This needs to be an effect so that activeScope is updated after the FocusScope tree is complete.\n // It cannot be a useLayoutEffect because the parent of this node hasn't been attached in the tree yet.\n useEffect(() => {\n const activeElement = getOwnerDocument(scopeRef.current ? scopeRef.current[0] : undefined).activeElement;\n let scope: TreeNode | null = null;\n\n if (isElementInScope(activeElement, scopeRef.current)) {\n // We need to traverse the focusScope tree and find the bottom most scope that\n // contains the active element and set that as the activeScope.\n for (let node of focusScopeTree.traverse()) {\n if (node.scopeRef && isElementInScope(activeElement, node.scopeRef.current)) {\n scope = node;\n }\n }\n\n if (scope === focusScopeTree.getTreeNode(scopeRef)) {\n activeScope = scope.scopeRef;\n }\n }\n }, [scopeRef]);\n\n // This layout effect cleanup is so that the tree node is removed synchronously with react before the RAF\n // in useRestoreFocus cleanup runs.\n useLayoutEffect(() => {\n return () => {\n // Scope may have been re-parented.\n let parentScope = focusScopeTree.getTreeNode(scopeRef)?.parent?.scopeRef ?? null;\n\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || focusScopeTree.getTreeNode(parentScope))\n ) {\n activeScope = parentScope;\n }\n focusScopeTree.removeTreeNode(scopeRef);\n };\n }, [scopeRef]);\n\n let focusManager = useMemo(() => createFocusManagerForScope(scopeRef), []);\n let value = useMemo(() => ({\n focusManager,\n parentNode: node\n }), [node, focusManager]);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager | undefined {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current!;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || getOwnerDocument(scope[0]).activeElement!;\n let sentinel = scope[0].previousElementSibling!;\n let scopeRoot = getScopeRoot(scope);\n let walker = getFocusableTreeWalker(scopeRoot, {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current!;\n let {from, tabbable, wrap, accept} = opts;\n let node = from || getOwnerDocument(scope[0]).activeElement!;\n let sentinel = scope[scope.length - 1].nextElementSibling!;\n let scopeRoot = getScopeRoot(scope);\n let walker = getFocusableTreeWalker(scopeRoot, {tabbable, accept}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as FocusableElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current!;\n let {tabbable, accept} = opts;\n let scopeRoot = getScopeRoot(scope);\n let walker = getFocusableTreeWalker(scopeRoot, {tabbable, accept}, scope);\n walker.currentNode = scope[0].previousElementSibling!;\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current!;\n let {tabbable, accept} = opts;\n let scopeRoot = getScopeRoot(scope);\n let walker = getFocusableTreeWalker(scopeRoot, {tabbable, accept}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling!;\n let previousNode = walker.previousNode() as FocusableElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: Element[]) {\n return scope[0].parentElement!;\n}\n\nfunction shouldContainFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.contain) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return true;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain?: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef>();\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = undefined;\n }\n return;\n }\n\n const ownerDocument = getOwnerDocument(scope ? scope[0] : undefined);\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) {\n return;\n }\n\n let focusedElement = ownerDocument.activeElement;\n let scope = scopeRef.current;\n if (!scope || !isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let scopeRoot = getScopeRoot(scope);\n let walker = getFocusableTreeWalker(scopeRoot, {tabbable: true}, scope);\n if (!focusedElement) {\n return;\n }\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling! : scope[0].previousElementSibling!;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!activeScope || isAncestorScope(activeScope, scopeRef)) && isElementInScope(e.target, scopeRef.current)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (shouldContainFocus(scopeRef) && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope && activeScope.current) {\n focusFirstInScope(activeScope.current);\n }\n } else if (shouldContainFocus(scopeRef)) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (ownerDocument.activeElement && shouldContainFocus(scopeRef) && !isElementInChildScope(ownerDocument.activeElement, scopeRef)) {\n activeScope = scopeRef;\n if (ownerDocument.body.contains(e.target)) {\n focusedNode.current = e.target;\n focusedNode.current?.focus();\n } else if (activeScope.current) {\n focusFirstInScope(activeScope.current);\n }\n }\n });\n };\n\n ownerDocument.addEventListener('keydown', onKeyDown, false);\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope?.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope?.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n ownerDocument.removeEventListener('keydown', onKeyDown, false);\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope?.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope?.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // This is a useLayoutEffect so it is guaranteed to run before our async synthetic blur\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n return () => {\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n };\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n return isElementInChildScope(element);\n}\n\nfunction isElementInScope(element?: Element | null, scope?: Element[] | null) {\n if (!element) {\n return false;\n }\n if (!scope) {\n return false;\n }\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null) {\n // If the element is within a top layer element (e.g. toasts), always allow moving focus there.\n if (element instanceof Element && element.closest('[data-react-aria-top-layer]')) {\n return true;\n }\n\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let {scopeRef: s} of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (s && isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\n/** @private */\nexport function isElementInChildOfActiveScope(element: Element) {\n return isElementInChildScope(element, activeScope);\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = focusScopeTree.getTreeNode(scope)?.parent;\n while (parent) {\n if (parent.scopeRef === ancestor) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n}\n\nfunction focusElement(element: FocusableElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: Element[], tabbable:boolean = true) {\n let sentinel = scope[0].previousElementSibling!;\n let scopeRoot = getScopeRoot(scope);\n let walker = getFocusableTreeWalker(scopeRoot, {tabbable}, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n scopeRoot = getScopeRoot(scope);\n walker = getFocusableTreeWalker(scopeRoot, {tabbable: false}, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n\n focusElement(nextNode as FocusableElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus?: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n const ownerDocument = getOwnerDocument(scopeRef.current ? scopeRef.current[0] : undefined);\n if (!isElementInScope(ownerDocument.activeElement, activeScope.current) && scopeRef.current) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, [scopeRef]);\n}\n\nfunction useActiveScopeTracker(scopeRef: RefObject, restore?: boolean, contain?: boolean) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n useLayoutEffect(() => {\n if (restore || contain) {\n return;\n }\n\n let scope = scopeRef.current;\n const ownerDocument = getOwnerDocument(scope ? scope[0] : undefined);\n\n let onFocus = (e) => {\n let target = e.target as Element;\n if (isElementInScope(target, scopeRef.current)) {\n activeScope = scopeRef;\n } else if (!isElementInAnyScope(target)) {\n activeScope = null;\n }\n };\n\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope?.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope?.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n }, [scopeRef, restore, contain]);\n}\n\nfunction shouldRestoreFocus(scopeRef: ScopeRef) {\n let scope = focusScopeTree.getTreeNode(activeScope);\n while (scope && scope.scopeRef !== scopeRef) {\n if (scope.nodeToRestore) {\n return false;\n }\n\n scope = scope.parent;\n }\n\n return scope?.scopeRef === scopeRef;\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus?: boolean, contain?: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n // eslint-disable-next-line no-restricted-globals\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? getOwnerDocument(scopeRef.current ? scopeRef.current[0] : undefined).activeElement as FocusableElement : null);\n\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n const ownerDocument = getOwnerDocument(scope ? scope[0] : undefined);\n if (!restoreFocus || contain) {\n return;\n }\n\n let onFocus = () => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!activeScope || isAncestorScope(activeScope, scopeRef)) &&\n isElementInScope(ownerDocument.activeElement, scopeRef.current)\n ) {\n activeScope = scopeRef;\n }\n };\n\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope?.forEach(element => element.addEventListener('focusin', onFocus, false));\n return () => {\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope?.forEach(element => element.removeEventListener('focusin', onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scopeRef, contain]);\n\n useLayoutEffect(() => {\n const ownerDocument = getOwnerDocument(scopeRef.current ? scopeRef.current[0] : undefined);\n\n if (!restoreFocus) {\n return;\n }\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !shouldContainFocus(scopeRef)) {\n return;\n }\n\n let focusedElement = ownerDocument.activeElement as FocusableElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n let treeNode = focusScopeTree.getTreeNode(scopeRef);\n if (!treeNode) {\n return;\n }\n let nodeToRestore = treeNode.nodeToRestore;\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(ownerDocument.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n\n if (!nodeToRestore || !ownerDocument.body.contains(nodeToRestore) || nodeToRestore === ownerDocument.body) {\n nodeToRestore = undefined;\n treeNode.nodeToRestore = undefined;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as FocusableElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n ownerDocument.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n ownerDocument.removeEventListener('keydown', onKeyDown, true);\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n const ownerDocument = getOwnerDocument(scopeRef.current ? scopeRef.current[0] : undefined);\n\n if (!restoreFocus) {\n return;\n }\n\n let treeNode = focusScopeTree.getTreeNode(scopeRef);\n if (!treeNode) {\n return;\n }\n treeNode.nodeToRestore = nodeToRestoreRef.current ?? undefined;\n return () => {\n let treeNode = focusScopeTree.getTreeNode(scopeRef);\n if (!treeNode) {\n return;\n }\n let nodeToRestore = treeNode.nodeToRestore;\n\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n if (\n restoreFocus\n && nodeToRestore\n && (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n isElementInScope(ownerDocument.activeElement, scopeRef.current)\n || (ownerDocument.activeElement === ownerDocument.body && shouldRestoreFocus(scopeRef))\n )\n ) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = focusScopeTree.clone();\n requestAnimationFrame(() => {\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (ownerDocument.activeElement === ownerDocument.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.nodeToRestore && treeNode.nodeToRestore.isConnected) {\n focusElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while (treeNode) {\n if (treeNode.scopeRef && treeNode.scopeRef.current && focusScopeTree.getTreeNode(treeNode.scopeRef)) {\n focusFirstInScope(treeNode.scopeRef.current, true);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [scopeRef, restoreFocus]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: Element, opts?: FocusManagerOptions, scope?: Element[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = getOwnerDocument(root).createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as Element).matches(selector)\n && isElementVisible(node as Element)\n && (!scope || isElementInScope(node as Element, scope))\n && (!opts?.accept || opts.accept(node as Element))\n ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject, defaultOptions: FocusManagerOptions = {}): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n if (!root) {\n return null;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || getOwnerDocument(root).activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node!;\n }\n let nextNode = walker.nextNode() as FocusableElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as FocusableElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return null;\n }\n let {from, tabbable = defaultOptions.tabbable, wrap = defaultOptions.wrap, accept = defaultOptions.accept} = opts;\n let node = from || getOwnerDocument(root).activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n if (root.contains(node)) {\n walker.currentNode = node!;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next ?? null;\n }\n let previousNode = walker.previousNode() as FocusableElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n let lastNode = last(walker);\n if (!lastNode) {\n // couldn't wrap\n return null;\n }\n previousNode = lastNode;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode ?? null;\n },\n focusFirst(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return null;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let nextNode = walker.nextNode() as FocusableElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = defaultOptions) {\n let root = ref.current;\n if (!root) {\n return null;\n }\n let {tabbable = defaultOptions.tabbable, accept = defaultOptions.accept} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable, accept});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next ?? null;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: FocusableElement | undefined = undefined;\n let last: FocusableElement;\n do {\n last = walker.lastChild() as FocusableElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n\n\nclass Tree {\n root: TreeNode;\n private fastMap = new Map();\n\n constructor() {\n this.root = new TreeNode({scopeRef: null});\n this.fastMap.set(null, this.root);\n }\n\n get size() {\n return this.fastMap.size;\n }\n\n getTreeNode(data: ScopeRef) {\n return this.fastMap.get(data);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef, nodeToRestore?: FocusableElement) {\n let parentNode = this.fastMap.get(parent ?? null);\n if (!parentNode) {\n return;\n }\n let node = new TreeNode({scopeRef});\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) {\n node.nodeToRestore = nodeToRestore;\n }\n }\n\n addNode(node: TreeNode) {\n this.fastMap.set(node.scopeRef, node);\n }\n\n removeTreeNode(scopeRef: ScopeRef) {\n // never remove the root\n if (scopeRef === null) {\n return;\n }\n let node = this.fastMap.get(scopeRef);\n if (!node) {\n return;\n }\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse()) {\n if (\n current !== node &&\n node.nodeToRestore &&\n current.nodeToRestore &&\n node.scopeRef &&\n node.scopeRef.current &&\n isElementInScope(current.nodeToRestore, node.scopeRef.current)\n ) {\n current.nodeToRestore = node.nodeToRestore;\n }\n }\n let children = node.children;\n if (parentNode) {\n parentNode.removeChild(node);\n if (children.size > 0) {\n children.forEach(child => parentNode && parentNode.addChild(child));\n }\n }\n\n this.fastMap.delete(node.scopeRef);\n }\n\n // Pre Order Depth First\n *traverse(node: TreeNode = this.root): Generator {\n if (node.scopeRef != null) {\n yield node;\n }\n if (node.children.size > 0) {\n for (let child of node.children) {\n yield* this.traverse(child);\n }\n }\n }\n\n clone(): Tree {\n let newTree = new Tree();\n for (let node of this.traverse()) {\n newTree.addTreeNode(node.scopeRef, node.parent?.scopeRef ?? null, node.nodeToRestore);\n }\n return newTree;\n }\n}\n\nclass TreeNode {\n public scopeRef: ScopeRef;\n public nodeToRestore?: FocusableElement;\n public parent?: TreeNode;\n public children: Set = new Set();\n public contain = false;\n\n constructor(props: {scopeRef: ScopeRef}) {\n this.scopeRef = props.scopeRef;\n }\n addChild(node: TreeNode) {\n this.children.add(node);\n node.parent = this;\n }\n removeChild(node: TreeNode) {\n this.children.delete(node);\n node.parent = undefined;\n }\n}\n\nexport let focusScopeTree = new Tree();\n","import {DOMAttributes} from '@react-types/shared';\nimport {isFocusVisible, useFocus, useFocusVisibleListener, useFocusWithin} from '@react-aria/interactions';\nimport {useCallback, useRef, useState} from 'react';\n\nexport interface AriaFocusRingProps {\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default 'false'\n */\n within?: boolean,\n\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusRingAria {\n /** Whether the element is currently focused. */\n isFocused: boolean,\n\n /** Whether keyboard focus should be visible. */\n isFocusVisible: boolean,\n\n /** Props to apply to the container element with the focus ring. */\n focusProps: DOMAttributes\n}\n\n/**\n * Determines whether a focus ring should be shown to indicate keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function useFocusRing(props: AriaFocusRingProps = {}): FocusRingAria {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || isFocusVisible()\n });\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n let updateState = useCallback(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n\n let onFocusChange = useCallback(isFocused => {\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [updateState]);\n\n useFocusVisibleListener((isFocusVisible) => {\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes, FocusableDOMProps, FocusableElement, FocusableProps} from '@react-types/shared';\nimport {focusSafely} from './';\nimport {mergeProps, useObjectRef, useSyncRef} from '@react-aria/utils';\nimport React, {ForwardedRef, MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\nexport interface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusableProviderProps extends DOMAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: ForwardedRef) {\n let {children, ...otherProps} = props;\n let objRef = useObjectRef(ref);\n let context = {\n ...otherProps,\n ref: objRef\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\nexport interface FocusableAria {\n /** Props for the focusable element. */\n focusableProps: DOMAttributes\n}\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject): FocusableAria {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n focusSafely(domRef.current);\n }\n autoFocusRef.current = false;\n }, [domRef]);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\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 * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\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.html\n */\n\nvar AnimatedValueXY = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValueXY, _AnimatedWithChildren);\n\n function AnimatedValueXY(valueIn) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n\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(value.x instanceof AnimatedValue && value.y instanceof AnimatedValue, 'AnimatedValueXY must be initialized with an object of numbers or ' + 'AnimatedValues.');\n _this.x = value.x;\n _this.y = value.y;\n }\n\n _this._listeners = {};\n return _this;\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.html#setvalue\n */\n\n\n var _proto = AnimatedValueXY.prototype;\n\n _proto.setValue = function setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\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.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\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.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\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.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n };\n\n _proto.__getValue = function __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\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.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\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.html#addlistener\n */\n ;\n\n _proto.addListener = function addListener(callback) {\n var _this2 = this;\n\n var id = String(_uniqueId++);\n\n var jointCallback = function jointCallback(_ref) {\n var number = _ref.value;\n callback(_this2.__getValue());\n };\n\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\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.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n */\n ;\n\n _proto.getLayout = function getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n */\n ;\n\n _proto.getTranslateTransform = function getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n };\n\n return AnimatedValueXY;\n}(AnimatedWithChildren);\n\nexport default AnimatedValueXY;","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","// For backward compatibility with 3.0 of props like non token string numbers `` => used to get applied as 39px. RN expects fontWeight to be string and crashes with numbers\n// https://reactnative.dev/docs/text-style-props#fontweight\nexport const convertStringNumberToNumber = (key: string, value: string) => {\n if (\n typeof value === 'string' &&\n key !== 'fontWeight' &&\n value &&\n !isNaN(Number(value))\n ) {\n return parseFloat(value);\n }\n\n return value;\n};\n","import { Platform } from 'react-native';\nimport get from 'lodash.get';\nimport { convertStringNumberToNumber } from './convertStringNumberToNumber';\nimport { resolveValueWithBreakpoint } from '../hooks/useThemeProps/utils';\n\n/**\n * Common Logic Sharing between useSx and useStyledSytem\n */\nexport const getRNKeyAndStyleValue = ({\n config,\n value,\n key,\n theme,\n styledSystemProps,\n currentBreakpoint,\n}: any) => {\n let style: any = {};\n if (config === true) {\n style = {\n ...style,\n [key]: convertStringNumberToNumber(key, value),\n };\n } else if (config) {\n //@ts-ignore\n const { property, scale, properties, transformer } = config;\n let val = value;\n\n if (transformer) {\n val = transformer(val, theme[scale], theme, styledSystemProps.fontSize);\n } else {\n // If a token is not found in the theme\n val = get(theme[scale], value, value);\n }\n\n if (typeof val === 'string') {\n if (val.endsWith('px')) {\n val = parseFloat(val);\n } else if (val.endsWith('em') && Platform.OS !== 'web') {\n const fontSize = resolveValueWithBreakpoint(\n styledSystemProps.fontSize,\n theme.breakpoints,\n currentBreakpoint,\n key\n );\n val =\n parseFloat(val) *\n parseFloat(get(theme.fontSizes, fontSize, fontSize));\n }\n }\n\n val = convertStringNumberToNumber(key, val);\n\n if (properties) {\n //@ts-ignore\n properties.forEach((property) => {\n style = {\n ...style,\n [property]: val,\n };\n });\n } else if (property) {\n style = {\n ...style,\n [property]: val,\n };\n } else {\n style = {\n ...style,\n ...val,\n };\n }\n }\n\n return style;\n};\n","import { StyleSheet } from 'react-native';\nimport get from 'lodash.get';\nimport { transparentize } from './tools';\nimport type { ITheme } from '.';\nimport type { UseResponsiveQueryParams } from '../utils/useResponsiveQuery';\nimport { getStyledFromProps } from '../utils/getStyledFromProps';\nimport { convertStringNumberToNumber } from '../utils/convertStringNumberToNumber';\nconst isNumber = (n: any) => typeof n === 'number' && !isNaN(n);\n\nexport const getColor = (rawValue: any, scale: any, theme: any) => {\n const alphaMatched =\n typeof rawValue === 'string' ? rawValue?.match(/:alpha\\.\\d\\d?\\d?/) : false;\n\n if (alphaMatched) {\n const colorMatched = rawValue?.match(/^.*?(?=:alpha)/);\n const color = colorMatched ? colorMatched[0] : colorMatched;\n const alphaValue = alphaMatched[0].split('.')[1];\n const alphaFromToken = get(theme.opacity, alphaValue, alphaValue);\n const alpha = alphaFromToken ? parseFloat(alphaFromToken) : 1;\n const newColor = transparentize(color, alpha)(theme);\n return newColor;\n } else {\n return get(scale, rawValue, rawValue);\n }\n};\n\n// To handle negative margins\nconst getMargin = (n: any, scale: any) => {\n n = convertStringNumberToNumber('margin', n);\n if (!isNumber(n)) {\n return get(scale, n, n);\n }\n\n const isNegative = n < 0;\n const absolute = Math.abs(n);\n const value = get(scale, absolute, absolute);\n if (!isNumber(value)) {\n return isNegative ? '-' + value : value;\n }\n return value * (isNegative ? -1 : 1);\n};\n\nexport const layout = {\n width: {\n property: 'width',\n scale: 'sizes',\n },\n w: {\n property: 'width',\n scale: 'sizes',\n },\n height: {\n property: 'height',\n scale: 'sizes',\n },\n h: {\n property: 'height',\n scale: 'sizes',\n },\n minWidth: {\n property: 'minWidth',\n scale: 'sizes',\n },\n minW: {\n property: 'minWidth',\n scale: 'sizes',\n },\n minHeight: {\n property: 'minHeight',\n scale: 'sizes',\n },\n minH: {\n property: 'minHeight',\n scale: 'sizes',\n },\n maxWidth: {\n property: 'maxWidth',\n scale: 'sizes',\n },\n maxW: {\n property: 'maxWidth',\n scale: 'sizes',\n },\n maxHeight: {\n property: 'maxHeight',\n scale: 'sizes',\n },\n maxH: {\n property: 'maxHeight',\n scale: 'sizes',\n },\n size: {\n properties: ['width', 'height'],\n scale: 'sizes',\n },\n boxSize: {\n properties: ['width', 'height'],\n scale: 'sizes',\n },\n overflow: true,\n overflowX: true,\n overflowY: true,\n display: true,\n verticalAlign: true,\n textAlign: true,\n} as const;\n\nexport const flexbox = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: true,\n flexDir: {\n property: 'flexDirection',\n scale: 'flexDirection',\n },\n // item\n flex: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: true,\n justifySelf: true,\n alignSelf: true,\n order: true,\n} as const;\n\nexport const position = {\n position: true,\n zIndex: {\n property: 'zIndex',\n },\n top: {\n property: 'top',\n scale: 'space',\n },\n right: {\n property: 'right',\n scale: 'space',\n },\n bottom: {\n property: 'bottom',\n scale: 'space',\n },\n left: {\n property: 'left',\n scale: 'space',\n },\n} as const;\n\nexport const color = {\n color: {\n property: 'color',\n scale: 'colors',\n transformer: getColor,\n },\n tintColor: {\n property: 'tintColor',\n scale: 'colors',\n transformer: getColor,\n },\n backgroundColor: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n opacity: {\n property: 'opacity',\n scale: 'opacity',\n },\n bg: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n bgColor: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n background: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n textDecorationColor: {\n property: 'textDecorationColor',\n scale: 'colors',\n transformer: getColor,\n },\n} as const;\n\nexport const border = {\n borderWidth: {\n property: 'borderWidth',\n scale: 'borderWidths',\n },\n borderStyle: {\n property: 'borderStyle',\n scale: 'borderStyles',\n },\n borderColor: {\n property: 'borderColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderRadius: {\n property: 'borderRadius',\n scale: 'radii',\n },\n borderTop: {\n property: 'borderTop',\n scale: 'borders',\n },\n borderTopRadius: {\n properties: ['borderTopLeftRadius', 'borderTopRightRadius'],\n scale: 'radii',\n },\n borderLeftRadius: {\n properties: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n scale: 'radii',\n },\n borderRightRadius: {\n properties: ['borderTopRightRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n borderTopLeftRadius: {\n property: 'borderTopLeftRadius',\n scale: 'radii',\n },\n borderTopRightRadius: {\n property: 'borderTopRightRadius',\n scale: 'radii',\n },\n borderRight: {\n property: 'borderRight',\n scale: 'borders',\n },\n borderBottom: {\n property: 'borderBottom',\n scale: 'borders',\n },\n borderBottomLeftRadius: {\n property: 'borderBottomLeftRadius',\n scale: 'radii',\n },\n borderBottomRightRadius: {\n property: 'borderBottomRightRadius',\n scale: 'radii',\n },\n borderLeft: {\n property: 'borderLeft',\n scale: 'borders',\n },\n borderX: {\n properties: ['borderLeft', 'borderRight'],\n scale: 'borders',\n },\n borderY: {\n properties: ['borderTop', 'borderBottom'],\n scale: 'borders',\n },\n borderTopWidth: {\n property: 'borderTopWidth',\n scale: 'borderWidths',\n },\n borderTopColor: {\n property: 'borderTopColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderTopStyle: {\n property: 'borderTopStyle',\n scale: 'borderStyles',\n },\n borderBottomWidth: {\n property: 'borderBottomWidth',\n scale: 'borderWidths',\n },\n borderBottomColor: {\n property: 'borderBottomColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderBottomStyle: {\n property: 'borderBottomStyle',\n scale: 'borderStyles',\n },\n borderLeftWidth: {\n property: 'borderLeftWidth',\n scale: 'borderWidths',\n },\n borderLeftColor: {\n property: 'borderLeftColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderLeftStyle: {\n property: 'borderLeftStyle',\n scale: 'borderStyles',\n },\n borderRightWidth: {\n property: 'borderRightWidth',\n scale: 'borderWidths',\n },\n borderRightColor: {\n property: 'borderRightColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderRightStyle: {\n property: 'borderRightStyle',\n scale: 'borderStyles',\n },\n rounded: {\n property: 'borderRadius',\n scale: 'radii',\n },\n\n roundedTopLeft: {\n property: 'borderTopLeftRadius',\n scale: 'radii',\n },\n\n roundedTopRight: {\n property: 'borderTopRightRadius',\n scale: 'radii',\n },\n\n roundedBottomLeft: {\n property: 'borderBottomLeftRadius',\n scale: 'radii',\n },\n\n roundedBottomRight: {\n property: 'borderBottomRightRadius',\n scale: 'radii',\n },\n\n roundedTop: {\n properties: ['borderTopLeftRadius', 'borderTopRightRadius'],\n scale: 'radii',\n },\n borderBottomRadius: {\n properties: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n roundedBottom: {\n properties: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n\n roundedLeft: {\n properties: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n scale: 'radii',\n },\n\n roundedRight: {\n properties: ['borderTopRightRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n} as const;\n\nexport const background = {\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundAttachment: true,\n backgroundBlendMode: true,\n bgImage: {\n property: 'backgroundImage',\n },\n bgImg: {\n property: 'backgroundImage',\n },\n bgBlendMode: {\n property: 'backgroundBlendMode',\n },\n bgSize: {\n property: 'backgroundSize',\n },\n bgPosition: {\n property: 'backgroundPosition',\n },\n bgPos: {\n property: 'backgroundPosition',\n },\n bgRepeat: {\n property: 'backgroundRepeat',\n },\n bgAttachment: {\n property: 'backgroundAttachment',\n },\n} as const;\n\nexport const space = {\n margin: {\n property: 'margin',\n scale: 'space',\n transformer: getMargin,\n },\n m: {\n property: 'margin',\n scale: 'space',\n transformer: getMargin,\n },\n marginTop: {\n property: 'marginTop',\n scale: 'space',\n transformer: getMargin,\n },\n mt: {\n property: 'marginTop',\n scale: 'space',\n transformer: getMargin,\n },\n marginRight: {\n property: 'marginRight',\n scale: 'space',\n transformer: getMargin,\n },\n mr: {\n property: 'marginRight',\n scale: 'space',\n transformer: getMargin,\n },\n marginBottom: {\n property: 'marginBottom',\n scale: 'space',\n transformer: getMargin,\n },\n mb: {\n property: 'marginBottom',\n scale: 'space',\n transformer: getMargin,\n },\n marginLeft: {\n property: 'marginLeft',\n scale: 'space',\n transformer: getMargin,\n },\n ml: {\n property: 'marginLeft',\n scale: 'space',\n transformer: getMargin,\n },\n marginX: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transformer: getMargin,\n },\n mx: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transformer: getMargin,\n },\n marginY: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transformer: getMargin,\n },\n my: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transformer: getMargin,\n },\n\n padding: {\n property: 'padding',\n scale: 'space',\n },\n p: {\n property: 'padding',\n scale: 'space',\n },\n paddingTop: {\n property: 'paddingTop',\n scale: 'space',\n },\n pt: {\n property: 'paddingTop',\n scale: 'space',\n },\n paddingRight: {\n property: 'paddingRight',\n scale: 'space',\n },\n pr: {\n property: 'paddingRight',\n scale: 'space',\n },\n paddingBottom: {\n property: 'paddingBottom',\n scale: 'space',\n },\n pb: {\n property: 'paddingBottom',\n scale: 'space',\n },\n paddingLeft: {\n property: 'paddingLeft',\n scale: 'space',\n },\n pl: {\n property: 'paddingLeft',\n scale: 'space',\n },\n paddingX: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n },\n px: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n },\n paddingY: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n },\n py: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n },\n gap: {\n property: 'gap',\n scale: 'space',\n },\n} as const;\n\nexport const typography = {\n fontFamily: {\n property: 'fontFamily',\n scale: 'fonts',\n // transformer: (val: any, scale: any) => {\n // const value = get(scale, val);\n // return value ? value.toString() : undefined;\n // },\n },\n fontSize: {\n property: 'fontSize',\n scale: 'fontSizes',\n },\n fontWeight: {\n property: 'fontWeight',\n scale: 'fontWeights',\n transformer: (val: any, scale: any) => {\n return val ? get(scale, val, val).toString() : val;\n },\n },\n lineHeight: {\n property: 'lineHeight',\n scale: 'lineHeights',\n },\n letterSpacing: {\n property: 'letterSpacing',\n scale: 'letterSpacings',\n },\n textAlign: true,\n fontStyle: true,\n wordBreak: true,\n overflowWrap: true,\n textOverflow: true,\n textTransform: true,\n whiteSpace: true,\n textDecoration: { property: 'textDecorationLine' },\n txtDecor: { property: 'textDecorationLine' },\n textDecorationLine: true,\n} as const;\n\nconst extraProps = {\n outline: true,\n outlineWidth: true,\n outlineColor: true,\n outlineStyle: true,\n shadow: {\n scale: 'shadows',\n },\n cursor: true,\n overflow: true,\n userSelect: { property: 'userSelect' },\n} as const;\n\nexport const propConfig = {\n ...color,\n ...space,\n ...layout,\n ...flexbox,\n ...border,\n ...position,\n ...typography,\n ...background,\n ...extraProps,\n} as const;\n\nexport const getStyleAndFilteredProps = ({\n style,\n theme,\n debug,\n currentBreakpoint,\n getResponsiveStyles,\n styledSystemProps,\n}: any) => {\n let dataSet: any = {};\n\n const orderedBreakPoints = Object.entries(\n theme.breakpoints as ITheme['breakpoints']\n ).sort((a, b) => a[1] - b[1]);\n\n let { styleFromProps, responsiveStyles }: any = getStyledFromProps(\n styledSystemProps,\n theme,\n currentBreakpoint,\n propConfig\n );\n\n if (responsiveStyles) {\n const query: UseResponsiveQueryParams = { query: [] };\n orderedBreakPoints.forEach((o) => {\n const key = o[0];\n if (key === 'base') {\n if (responsiveStyles) query.initial = responsiveStyles.base;\n } else {\n if (responsiveStyles)\n if (key in responsiveStyles) {\n query?.query?.push({\n minWidth: o[1],\n style: responsiveStyles[key],\n });\n }\n }\n });\n\n const { dataSet: newDataSet, styles } = getResponsiveStyles(query);\n dataSet = { ...dataSet, ...newDataSet };\n styleFromProps = { ...styleFromProps, ...StyleSheet.flatten(styles) };\n }\n\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log('style ', debug + ' :: ', {\n styleFromProps,\n style,\n styledSystemProps,\n });\n }\n\n return {\n styleSheet: StyleSheet.create({ box: styleFromProps }),\n styleFromProps,\n dataSet,\n };\n};\n\nexport type StyledPropConfig = typeof propConfig;\n","import { hasValidBreakpointFormat } from '../theme/tools';\nimport { getRNKeyAndStyleValue } from './getRNKeyAndStyleValue';\nimport type { ITheme } from '../theme';\n/**\n * Common Logic Sharing between useSx and useStyledSytem\n * @param styledSystemProps\n * @param theme\n * @param currentBreakpoint\n * @returns styleFromProps, responsiveStyles\n */\n\nexport const getStyledFromProps = (\n styledSystemProps: any,\n theme: any,\n currentBreakpoint: any,\n propConfig: any\n) => {\n let styleFromProps: any = {};\n let responsiveStyles: null | Record<\n keyof typeof theme.breakpoints,\n Array\n > = null;\n const orderedBreakPoints = Object.entries(\n theme.breakpoints as ITheme['breakpoints']\n ).sort((a, b) => a[1] - b[1]);\n for (const key in styledSystemProps) {\n const rawValue = styledSystemProps[key];\n\n const config = propConfig[key as keyof typeof propConfig];\n\n if (hasValidBreakpointFormat(rawValue, theme.breakpoints)) {\n if (!responsiveStyles) responsiveStyles = {};\n\n const value = rawValue;\n if (Array.isArray(value)) {\n value.forEach((v, i) => {\n //@ts-ignore\n if (!responsiveStyles[orderedBreakPoints[i][0]]) {\n //@ts-ignore\n responsiveStyles[orderedBreakPoints[i][0]] = [];\n }\n const newStyle = getRNKeyAndStyleValue({\n config,\n value: v,\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n //@ts-ignore\n responsiveStyles[orderedBreakPoints[i][0]].push(newStyle);\n });\n } else {\n for (const k in value) {\n const newStyle = getRNKeyAndStyleValue({\n config,\n value: value[k],\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n if (!responsiveStyles[k]) {\n responsiveStyles[k] = [];\n }\n responsiveStyles[k].push(newStyle);\n }\n }\n } else {\n const value = rawValue;\n const newStyle = getRNKeyAndStyleValue({\n config,\n value,\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n\n styleFromProps = {\n ...styleFromProps,\n ...newStyle,\n };\n }\n }\n\n return { styleFromProps, responsiveStyles };\n};\n","import type { Span } from '@sentry/types';\n\n/**\n * Returns the root span of a given span.\n *\n * As long as we use `Transaction`s internally, the returned root span\n * will be a `Transaction` but be aware that this might change in the future.\n *\n * If the given span has no root span or transaction, `undefined` is returned.\n */\nexport function getRootSpan(span: Span): Span | undefined {\n // TODO (v8): Remove this check and just return span\n // eslint-disable-next-line deprecation/deprecation\n return span.transaction;\n}\n","import type { Client, DynamicSamplingContext, Scope, Span, Transaction } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getClient, getCurrentScope } from '../exports';\nimport { getRootSpan } from '../utils/getRootSpan';\nimport { spanIsSampled, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nexport function getDynamicSamplingContextFromClient(\n trace_id: string,\n client: Client,\n scope?: Scope,\n): DynamicSamplingContext {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n // TODO(v8): Remove segment from User\n // eslint-disable-next-line deprecation/deprecation\n const { segment: user_segment } = (scope && scope.getUser()) || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n user_segment,\n public_key,\n trace_id,\n }) as DynamicSamplingContext;\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * A Span with a frozen dynamic sampling context.\n */\ntype TransactionWithV7FrozenDsc = Transaction & { _frozenDynamicSamplingContext?: DynamicSamplingContext };\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nexport function getDynamicSamplingContextFromSpan(span: Span): Readonly> {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n // passing emit=false here to only emit later once the DSC is actually populated\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client, getCurrentScope());\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n const txn = getRootSpan(span) as TransactionWithV7FrozenDsc | undefined;\n if (!txn) {\n return dsc;\n }\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n // For now we need to avoid breaking users who directly created a txn with a DSC, where this field is still set.\n // @see Transaction class constructor\n const v7FrozenDsc = txn && txn._frozenDynamicSamplingContext;\n if (v7FrozenDsc) {\n return v7FrozenDsc;\n }\n\n // TODO (v8): Replace txn.metadata with txn.attributes[]\n // We can't do this yet because attributes aren't always set yet.\n // eslint-disable-next-line deprecation/deprecation\n const { sampleRate: maybeSampleRate, source } = txn.metadata;\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const jsonSpan = spanToJSON(txn);\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n if (source && source !== 'url') {\n dsc.transaction = jsonSpan.description;\n }\n\n dsc.sampled = String(spanIsSampled(txn));\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport invariant from 'fbjs/lib/invariant';\n\nfunction getStyle(style) {\n if (typeof style === 'number') {\n return ReactNativePropRegistry.getByID(style);\n }\n\n return style;\n}\n\nfunction flattenStyle(style) {\n if (!style) {\n return undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(style !== true, 'style may be false but not true');\n }\n\n if (!Array.isArray(style)) {\n return getStyle(style);\n }\n\n var result = {};\n\n for (var i = 0, styleLength = style.length; i < styleLength; ++i) {\n var computedStyle = flattenStyle(style[i]);\n\n if (computedStyle) {\n for (var key in computedStyle) {\n var value = computedStyle[key];\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n\nexport default flattenStyle;","/**\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 */\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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 as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\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/** 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/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\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 * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\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 * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\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/** 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 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/** 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/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** 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 Symbol = root.Symbol,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\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 ? entries.length : 0;\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}\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 return this.has(key) && delete this.__data__[key];\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 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 ? entries.length : 0;\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}\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 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 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 ? entries.length : 0;\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.__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 return getMapData(this, key)['delete'](key);\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 getMapData(this, key).set(key, value);\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 ? values.length : 0;\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 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 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\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 methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\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 `_.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) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, props) {\n object = Object(object);\n return basePickBy(object, props, function(value, key) {\n return key in object;\n });\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * 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 getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\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 * Creates an array of the own enumerable symbol properties 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 ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Creates an array of the own and inherited enumerable symbol properties\n * of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\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 * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\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 */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\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 && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable string keyed properties of `object` that are\n * not omitted.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [props] The property identifiers to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = baseRest(function(object, props) {\n if (object == null) {\n return {};\n }\n props = arrayMap(baseFlatten(props, 1), toKey);\n return basePick(object, baseDifference(getAllKeysIn(object), props));\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\nmodule.exports = omit;\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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\nimport mergeOptions from \"merge-options\";\nimport type {\n AsyncStorageStatic,\n MultiCallback,\n MultiGetCallback,\n} from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype OnMultiResult = Function;\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype OnResult = Function;\n\nconst merge = mergeOptions.bind({\n concatArrays: true,\n ignoreUndefined: true,\n});\n\nfunction mergeLocalStorageItem(key: string, value: string) {\n const oldValue = window.localStorage.getItem(key);\n if (oldValue) {\n const oldObject = JSON.parse(oldValue);\n const newObject = JSON.parse(value);\n const nextValue = JSON.stringify(merge(oldObject, newObject));\n window.localStorage.setItem(key, nextValue);\n } else {\n window.localStorage.setItem(key, value);\n }\n}\n\nfunction createPromise(\n getValue: () => Result,\n callback?: Callback\n): Promise {\n return new Promise((resolve, reject) => {\n try {\n const value = getValue();\n callback?.(null, value);\n resolve(value);\n } catch (err) {\n callback?.(err);\n reject(err);\n }\n });\n}\n\nfunction createPromiseAll<\n ReturnType,\n Result,\n ResultProcessor extends OnMultiResult\n>(\n promises: Promise[],\n callback?: MultiCallback | MultiGetCallback,\n processResult?: ResultProcessor\n): Promise {\n return Promise.all(promises).then(\n (result) => {\n const value = processResult?.(result) ?? null;\n callback?.(null, value);\n return Promise.resolve(value);\n },\n (errors) => {\n callback?.(errors);\n return Promise.reject(errors);\n }\n );\n}\n\nconst AsyncStorage: AsyncStorageStatic = {\n /**\n * Fetches `key` value.\n */\n getItem: (key, callback) => {\n return createPromise(() => window.localStorage.getItem(key), callback);\n },\n\n /**\n * Sets `value` for `key`.\n */\n setItem: (key, value, callback) => {\n return createPromise(\n () => window.localStorage.setItem(key, value),\n callback\n );\n },\n\n /**\n * Removes a `key`\n */\n removeItem: (key, callback) => {\n return createPromise(() => window.localStorage.removeItem(key), callback);\n },\n\n /**\n * Merges existing value with input value, assuming they are stringified JSON.\n */\n mergeItem: (key, value, callback) => {\n return createPromise(() => mergeLocalStorageItem(key, value), callback);\n },\n\n /**\n * Erases *all* AsyncStorage for the domain.\n */\n clear: (callback) => {\n return createPromise(() => window.localStorage.clear(), callback);\n },\n\n /**\n * Gets *all* keys known to the app, for all callers, libraries, etc.\n */\n getAllKeys: (callback) => {\n return createPromise(() => {\n const numberOfKeys = window.localStorage.length;\n const keys: string[] = [];\n for (let i = 0; i < numberOfKeys; i += 1) {\n const key = window.localStorage.key(i) || \"\";\n keys.push(key);\n }\n return keys;\n }, callback);\n },\n\n /**\n * (stub) Flushes any pending requests using a single batch call to get the data.\n */\n flushGetRequests: () => undefined,\n\n /**\n * multiGet resolves to an array of key-value pair arrays that matches the\n * input format of multiSet.\n *\n * multiGet(['k1', 'k2']) -> [['k1', 'val1'], ['k2', 'val2']]\n */\n multiGet: (keys, callback) => {\n const promises = keys.map((key) => AsyncStorage.getItem(key));\n const processResult = (result: string[]) =>\n result.map((value, i) => [keys[i], value]);\n return createPromiseAll(promises, callback, processResult);\n },\n\n /**\n * Takes an array of key-value array pairs.\n * multiSet([['k1', 'val1'], ['k2', 'val2']])\n */\n multiSet: (keyValuePairs, callback) => {\n const promises = keyValuePairs.map((item) =>\n AsyncStorage.setItem(item[0], item[1])\n );\n return createPromiseAll(promises, callback);\n },\n\n /**\n * Delete all the keys in the `keys` array.\n */\n multiRemove: (keys, callback) => {\n const promises = keys.map((key) => AsyncStorage.removeItem(key));\n return createPromiseAll(promises, callback);\n },\n\n /**\n * Takes an array of key-value array pairs and merges them with existing\n * values, assuming they are stringified JSON.\n *\n * multiMerge([['k1', 'val1'], ['k2', 'val2']])\n */\n multiMerge: (keyValuePairs, callback) => {\n const promises = keyValuePairs.map((item) =>\n AsyncStorage.mergeItem(item[0], item[1])\n );\n return createPromiseAll(promises, callback);\n },\n};\n\nexport default AsyncStorage;\n","/* eslint-disable max-lines */\nimport type {\n Attachment,\n Breadcrumb,\n CaptureContext,\n Client,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n PropagationContext,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n ScopeData,\n Session,\n Severity,\n SeverityLevel,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, isPlainObject, logger, uuid4 } from '@sentry/utils';\n\nimport { getGlobalEventProcessors, notifyEventProcessors } from './eventProcessors';\nimport { updateSession } from './session';\nimport { applyScopeDataToEvent } from './utils/applyScopeDataToEvent';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * The global scope is kept in this module.\n * When accessing this via `getGlobalScope()` we'll make sure to set one if none is currently present.\n */\nlet globalScope: ScopeInterface | undefined;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /** Propagation Context for distributed tracing */\n protected _propagationContext: PropagationContext;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: { [key: string]: unknown };\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n protected _level?: Severity | SeverityLevel;\n\n /**\n * Transaction Name\n */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /** The client on this scope */\n protected _client?: Client;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * Inherit values from the parent scope.\n * @deprecated Use `scope.clone()` and `new Scope()` instead.\n */\n public static clone(scope?: Scope): Scope {\n return scope ? scope.clone() : new Scope();\n }\n\n /**\n * Clone this scope instance.\n */\n public clone(): Scope {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._span = this._span;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n\n return newScope;\n }\n\n /** Update the client on the scope. */\n public setClient(client: Client | undefined): void {\n this._client = client;\n }\n\n /**\n * Get the client assigned to this scope.\n *\n * It is generally recommended to use the global function `Sentry.getClient()` instead, unless you know what you are doing.\n */\n public getClient(): Client | undefined {\n return this._client;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n segment: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel,\n ): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the transaction name on the scope for future events.\n * @deprecated Use extra or tags instead.\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the Span on the scope.\n * @param span Span\n * @deprecated Instead of setting a span on a scope, use `startSpan()`/`startSpanManual()` instead.\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Returns the `Span` if there is one.\n * @deprecated Use `getActiveSpan()` instead.\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * Returns the `Transaction` attached to the scope (if there is one).\n * @deprecated You should not rely on the transaction, but just use `startSpan()` APIs instead.\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this._span;\n // Cannot replace with getRootSpan because getRootSpan returns a span, not a transaction\n // Also, this method will be removed anyway.\n // eslint-disable-next-line deprecation/deprecation\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n if (scopeToMerge instanceof Scope) {\n const scopeData = scopeToMerge.getScopeData();\n\n this._tags = { ...this._tags, ...scopeData.tags };\n this._extra = { ...this._extra, ...scopeData.extra };\n this._contexts = { ...this._contexts, ...scopeData.contexts };\n if (scopeData.user && Object.keys(scopeData.user).length) {\n this._user = scopeData.user;\n }\n if (scopeData.level) {\n this._level = scopeData.level;\n }\n if (scopeData.fingerprint.length) {\n this._fingerprint = scopeData.fingerprint;\n }\n if (scopeToMerge.getRequestSession()) {\n this._requestSession = scopeToMerge.getRequestSession();\n }\n if (scopeData.propagationContext) {\n this._propagationContext = scopeData.propagationContext;\n }\n } else if (isPlainObject(scopeToMerge)) {\n const scopeContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...scopeContext.tags };\n this._extra = { ...this._extra, ...scopeContext.extra };\n this._contexts = { ...this._contexts, ...scopeContext.contexts };\n if (scopeContext.user) {\n this._user = scopeContext.user;\n }\n if (scopeContext.level) {\n this._level = scopeContext.level;\n }\n if (scopeContext.fingerprint) {\n this._fingerprint = scopeContext.fingerprint;\n }\n if (scopeContext.requestSession) {\n this._requestSession = scopeContext.requestSession;\n }\n if (scopeContext.propagationContext) {\n this._propagationContext = scopeContext.propagationContext;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `getScopeData()` instead.\n */\n public getAttachments(): Attachment[] {\n const data = this.getScopeData();\n\n return data.attachments;\n }\n\n /**\n * @inheritDoc\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n public getScopeData(): ScopeData {\n const {\n _breadcrumbs,\n _attachments,\n _contexts,\n _tags,\n _extra,\n _user,\n _level,\n _fingerprint,\n _eventProcessors,\n _propagationContext,\n _sdkProcessingMetadata,\n _transactionName,\n _span,\n } = this;\n\n return {\n breadcrumbs: _breadcrumbs,\n attachments: _attachments,\n contexts: _contexts,\n tags: _tags,\n extra: _extra,\n user: _user,\n level: _level,\n fingerprint: _fingerprint || [],\n eventProcessors: _eventProcessors,\n propagationContext: _propagationContext,\n sdkProcessingMetadata: _sdkProcessingMetadata,\n transactionName: _transactionName,\n span: _span,\n };\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n * @deprecated Use `applyScopeDataToEvent()` directly\n */\n public applyToEvent(\n event: Event,\n hint: EventHint = {},\n additionalEventProcessors: EventProcessor[] = [],\n ): PromiseLike {\n applyScopeDataToEvent(event, this.getScopeData());\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors: EventProcessor[] = [\n ...additionalEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n ...this._eventProcessors,\n ];\n\n return notifyEventProcessors(eventProcessors, event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setPropagationContext(context: PropagationContext): this {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getPropagationContext(): PropagationContext {\n return this._propagationContext;\n }\n\n /**\n * Capture an exception for this scope.\n *\n * @param exception The exception to capture.\n * @param hint Optinal additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a message for this scope.\n *\n * @param message The message to capture.\n * @param level An optional severity level to report the message with.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured message.\n */\n public captureMessage(message: string, level?: SeverityLevel, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Captures a manually created event for this scope and sends it to Sentry.\n *\n * @param exception The event to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nexport function getGlobalScope(): ScopeInterface {\n if (!globalScope) {\n globalScope = new Scope();\n }\n\n return globalScope;\n}\n\n/**\n * This is mainly needed for tests.\n * DO NOT USE this, as this is an internal API and subject to change.\n * @hidden\n */\nexport function setGlobalScope(scope: ScopeInterface | undefined): void {\n globalScope = scope;\n}\n\nfunction generatePropagationContext(): PropagationContext {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nvar initialURL = canUseDOM ? window.location.href : '';\n\nvar Linking = /*#__PURE__*/function () {\n function Linking() {\n var _this = this;\n\n this._eventCallbacks = {};\n\n this.addEventListener = function (event, callback) {\n if (!_this._eventCallbacks[event]) {\n _this._eventCallbacks[event] = [callback];\n return;\n }\n\n _this._eventCallbacks[event].push(callback);\n };\n\n this.removeEventListener = function (event, callback) {\n var callbacks = _this._eventCallbacks[event];\n var filteredCallbacks = callbacks.filter(function (c) {\n return c.toString() !== callback.toString();\n });\n _this._eventCallbacks[event] = filteredCallbacks;\n };\n }\n\n var _proto = Linking.prototype;\n\n _proto._dispatchEvent = function _dispatchEvent(event) {\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n\n var listeners = this._eventCallbacks[event];\n\n if (listeners != null && Array.isArray(listeners)) {\n listeners.map(function (listener) {\n listener.apply(void 0, data);\n });\n }\n }\n /**\n * Adds a event listener for the specified event. The callback will be called when the\n * said event is dispatched.\n */\n ;\n\n _proto.canOpenURL = function canOpenURL() {\n return Promise.resolve(true);\n };\n\n _proto.getInitialURL = function getInitialURL() {\n return Promise.resolve(initialURL);\n }\n /**\n * Try to open the given url in a secure fashion. The method returns a Promise object.\n * If the url opens, the promise is resolved. If not, the promise is rejected.\n * Dispatches the `onOpen` event if `url` is opened successfully\n */\n ;\n\n _proto.openURL = function openURL(url) {\n try {\n open(url);\n\n this._dispatchEvent('onOpen', url);\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n _proto._validateURL = function _validateURL(url) {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n };\n\n return Linking;\n}();\n\nvar open = function open(url) {\n if (canUseDOM) {\n var urlToOpen = new URL(url, window.location).toString();\n\n if (urlToOpen.indexOf('tel:') === 0) {\n window.location = urlToOpen;\n } else {\n window.open(urlToOpen, '_blank', 'noopener');\n }\n }\n};\n\nexport default new Linking();","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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 detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\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 proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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 // 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\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\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 * 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 * 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/** 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 infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\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 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\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 * 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 * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\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 `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\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 `_.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 `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\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 * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\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 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\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\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 * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\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 * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(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 * 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 a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\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 * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\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 = mergeWith;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var toDeg=function toDeg(value){return value*180/Math.PI};var _default=toDeg;exports.default=_default;","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for `.\n this.sequenceIndex = Number(c === 60 /* Lt */);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this._state = 21 /* InCommentLike */;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this._index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this._state = 16 /* InDeclaration */;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this._index < this.buffer.length) {\n if (this.buffer.charCodeAt(this._index) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this._index = this.buffer.length - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n // Remove 2 trailing chars\n var section = this.buffer.slice(this.sectionStart, this._index - 2);\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(section);\n }\n else {\n this.cbs.oncomment(section);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this._index + 1;\n this._state = 1 /* Text */;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this._state = 23 /* SpecialStartSequence */;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === 33 /* ExclamationMark */) {\n this._state = 15 /* BeforeDeclaration */;\n this.sectionStart = this._index + 1;\n }\n else if (c === 63 /* Questionmark */) {\n this._state = 17 /* InProcessingInstruction */;\n this.sectionStart = this._index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this._index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this._state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? 22 /* BeforeSpecialS */\n : 3 /* InTagName */;\n }\n }\n else if (c === 47 /* Slash */) {\n this._state = 5 /* BeforeClosingTagName */;\n }\n else {\n this._state = 1 /* Text */;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.getSection());\n this.sectionStart = -1;\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === 62 /* Gt */) {\n this._state = 1 /* Text */;\n }\n else {\n this._state = this.isTagStartChar(c)\n ? 6 /* InClosingTagName */\n : 20 /* InSpecialComment */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === 62 /* Gt */ || isWhitespace(c)) {\n this.cbs.onclosetag(this.getSection());\n this.sectionStart = -1;\n this._state = 7 /* AfterClosingTagName */;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === 62 /* Gt */) {\n this.cbs.onopentagend();\n if (this.isSpecial) {\n this._state = 24 /* InSpecialTag */;\n this.sequenceIndex = 0;\n }\n else {\n this._state = 1 /* Text */;\n }\n this.baseState = this._state;\n this.sectionStart = this._index + 1;\n }\n else if (c === 47 /* Slash */) {\n this._state = 4 /* InSelfClosingTag */;\n }\n else if (!isWhitespace(c)) {\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === 62 /* Gt */) {\n this.cbs.onselfclosingtag();\n this._state = 1 /* Text */;\n this.baseState = 1 /* Text */;\n this.sectionStart = this._index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === 61 /* Eq */ || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.getSection());\n this.sectionStart = -1;\n this._state = 10 /* AfterAttributeName */;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === 61 /* Eq */) {\n this._state = 11 /* BeforeAttributeValue */;\n }\n else if (c === 47 /* Slash */ || c === 62 /* Gt */) {\n this.cbs.onattribend(undefined);\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(undefined);\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === 34 /* DoubleQuote */) {\n this._state = 12 /* InAttributeValueDq */;\n this.sectionStart = this._index + 1;\n }\n else if (c === 39 /* SingleQuote */) {\n this._state = 13 /* InAttributeValueSq */;\n this.sectionStart = this._index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this._index;\n this._state = 14 /* InAttributeValueNq */;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.getSection());\n this.sectionStart = -1;\n this.cbs.onattribend(String.fromCharCode(quote));\n this._state = 8 /* BeforeAttributeName */;\n }\n else if (this.decodeEntities && c === 38 /* Amp */) {\n this.baseState = this._state;\n this._state = 25 /* BeforeEntity */;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, 34 /* DoubleQuote */);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, 39 /* SingleQuote */);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === 62 /* Gt */) {\n this.cbs.onattribdata(this.getSection());\n this.sectionStart = -1;\n this.cbs.onattribend(null);\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === 38 /* Amp */) {\n this.baseState = this._state;\n this._state = 25 /* BeforeEntity */;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === 91 /* OpeningSquareBracket */) {\n this._state = 19 /* CDATASequence */;\n this.sequenceIndex = 0;\n }\n else {\n this._state =\n c === 45 /* Dash */\n ? 18 /* BeforeComment */\n : 16 /* InDeclaration */;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this.cbs.ondeclaration(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this.cbs.onprocessinginstruction(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === 45 /* Dash */) {\n this._state = 21 /* InCommentLike */;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. )\n this.sequenceIndex = 2;\n this.sectionStart = this._index + 1;\n }\n else {\n this._state = 16 /* InDeclaration */;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this.cbs.oncomment(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this._state = 3 /* InTagName */;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n if (c === 35 /* Num */) {\n this._state = 26 /* BeforeNumericEntity */;\n }\n else if (c === 38 /* Amp */) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.trieResult = null;\n this._state = 27 /* InNamedEntity */;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this._index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n // If the branch is a value, store it and continue\n if (this.trieCurrent & decode_1.BinTrieFlags.HAS_VALUE) {\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== 59 /* Semi */) {\n // No need to consider multi-byte values, as the legacy entity is always a single byte\n this.trieIndex += 1;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this._index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.buffer.substring(this.sectionStart, entityStart));\n }\n // If this is a surrogate pair, combine the higher bits from the node with the next byte\n this.trieResult =\n this.trieCurrent & decode_1.BinTrieFlags.MULTI_BYTE\n ? String.fromCharCode(this.entityTrie[++this.trieIndex], this.entityTrie[++this.trieIndex])\n : String.fromCharCode(this.entityTrie[++this.trieIndex]);\n this.entityExcess = 0;\n this.sectionStart = this._index + 1;\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n if (this.trieResult) {\n this.emitPartial(this.trieResult);\n }\n this._state = this.baseState;\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === 120 /* LowerX */) {\n this.entityExcess++;\n this._state = 29 /* InHexEntity */;\n }\n else {\n this._state = 28 /* InNumericEntity */;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.decodeNumericEntity = function (base, strict) {\n var entityStart = this._index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + (base >> 4);\n if (numberStart !== this._index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.buffer.substring(this.sectionStart, entityStart));\n }\n // Parse entity\n var entity = this.buffer.substring(numberStart, this._index);\n var parsed = parseInt(entity, base);\n this.emitPartial((0, decode_codepoint_1.default)(parsed));\n this.sectionStart = this._index + Number(strict);\n }\n this._state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === 59 /* Semi */) {\n this.decodeNumericEntity(10, true);\n }\n else if (!isNumber(c)) {\n if (this.allowLegacyEntity()) {\n this.decodeNumericEntity(10, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n else {\n this.entityExcess++;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === 59 /* Semi */) {\n this.decodeNumericEntity(16, true);\n }\n else if ((c < 97 /* LowerA */ || c > 102 /* LowerF */) &&\n (c < 65 /* UpperA */ || c > 70 /* UpperF */) &&\n !isNumber(c)) {\n if (this.allowLegacyEntity()) {\n this.decodeNumericEntity(16, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n else {\n this.entityExcess++;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === 1 /* Text */ ||\n this.baseState === 24 /* InSpecialTag */));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text, emit what we already have.\n if (this.running &&\n this.sectionStart !== this._index &&\n (this._state === 1 /* Text */ ||\n (this._state === 24 /* InSpecialTag */ &&\n this.sequenceIndex === 0))) {\n // TODO: We could emit attribute data here as well.\n this.cbs.ontext(this.buffer.substr(this.sectionStart));\n this.sectionStart = this._index;\n }\n var start = this.sectionStart < 0 ? this._index : this.sectionStart;\n this.buffer =\n start === this.buffer.length ? \"\" : this.buffer.substr(start);\n this._index -= start;\n this.bufferOffset += start;\n if (this.sectionStart > 0) {\n this.sectionStart = 0;\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this._index < this.buffer.length && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this._index);\n if (this._state === 1 /* Text */) {\n this.stateText(c);\n }\n else if (this._state === 23 /* SpecialStartSequence */) {\n this.stateSpecialStartSequence(c);\n }\n else if (this._state === 24 /* InSpecialTag */) {\n this.stateInSpecialTag(c);\n }\n else if (this._state === 19 /* CDATASequence */) {\n this.stateCDATASequence(c);\n }\n else if (this._state === 12 /* InAttributeValueDq */) {\n this.stateInAttributeValueDoubleQuotes(c);\n }\n else if (this._state === 9 /* InAttributeName */) {\n this.stateInAttributeName(c);\n }\n else if (this._state === 21 /* InCommentLike */) {\n this.stateInCommentLike(c);\n }\n else if (this._state === 20 /* InSpecialComment */) {\n this.stateInSpecialComment(c);\n }\n else if (this._state === 8 /* BeforeAttributeName */) {\n this.stateBeforeAttributeName(c);\n }\n else if (this._state === 3 /* InTagName */) {\n this.stateInTagName(c);\n }\n else if (this._state === 6 /* InClosingTagName */) {\n this.stateInClosingTagName(c);\n }\n else if (this._state === 2 /* BeforeTagName */) {\n this.stateBeforeTagName(c);\n }\n else if (this._state === 10 /* AfterAttributeName */) {\n this.stateAfterAttributeName(c);\n }\n else if (this._state === 13 /* InAttributeValueSq */) {\n this.stateInAttributeValueSingleQuotes(c);\n }\n else if (this._state === 11 /* BeforeAttributeValue */) {\n this.stateBeforeAttributeValue(c);\n }\n else if (this._state === 5 /* BeforeClosingTagName */) {\n this.stateBeforeClosingTagName(c);\n }\n else if (this._state === 7 /* AfterClosingTagName */) {\n this.stateAfterClosingTagName(c);\n }\n else if (this._state === 22 /* BeforeSpecialS */) {\n this.stateBeforeSpecialS(c);\n }\n else if (this._state === 14 /* InAttributeValueNq */) {\n this.stateInAttributeValueNoQuotes(c);\n }\n else if (this._state === 4 /* InSelfClosingTag */) {\n this.stateInSelfClosingTag(c);\n }\n else if (this._state === 16 /* InDeclaration */) {\n this.stateInDeclaration(c);\n }\n else if (this._state === 15 /* BeforeDeclaration */) {\n this.stateBeforeDeclaration(c);\n }\n else if (this._state === 18 /* BeforeComment */) {\n this.stateBeforeComment(c);\n }\n else if (this._state === 17 /* InProcessingInstruction */) {\n this.stateInProcessingInstruction(c);\n }\n else if (this._state === 27 /* InNamedEntity */) {\n this.stateInNamedEntity(c);\n }\n else if (this._state === 25 /* BeforeEntity */) {\n this.stateBeforeEntity(c);\n }\n else if (this._state === 29 /* InHexEntity */) {\n this.stateInHexEntity(c);\n }\n else if (this._state === 28 /* InNumericEntity */) {\n this.stateInNumericEntity(c);\n }\n else {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n this._index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this._state === 27 /* InNamedEntity */) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this._index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var data = this.buffer.substr(this.sectionStart);\n if (this._state === 21 /* InCommentLike */) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(data);\n }\n else {\n this.cbs.oncomment(data);\n }\n }\n else if (this._state === 28 /* InNumericEntity */ &&\n this.allowLegacyEntity()) {\n this.decodeNumericEntity(10, false);\n // All trailing data will have been consumed\n }\n else if (this._state === 29 /* InHexEntity */ &&\n this.allowLegacyEntity()) {\n this.decodeNumericEntity(16, false);\n // All trailing data will have been consumed\n }\n else if (this._state === 3 /* InTagName */ ||\n this._state === 8 /* BeforeAttributeName */ ||\n this._state === 11 /* BeforeAttributeValue */ ||\n this._state === 10 /* AfterAttributeName */ ||\n this._state === 9 /* InAttributeName */ ||\n this._state === 13 /* InAttributeValueSq */ ||\n this._state === 12 /* InAttributeValueDq */ ||\n this._state === 14 /* InAttributeValueNq */ ||\n this._state === 6 /* InClosingTagName */) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(data);\n }\n };\n Tokenizer.prototype.getSection = function () {\n return this.buffer.substring(this.sectionStart, this._index);\n };\n Tokenizer.prototype.emitPartial = function (value) {\n if (this.baseState !== 1 /* Text */ &&\n this.baseState !== 24 /* InSpecialTag */) {\n this.cbs.onattribdata(value);\n }\n else {\n this.cbs.ontext(value);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar decodeMap = new Map([\n [0, 65533],\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\nvar fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n return fromCodePoint((_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint);\n}\nexports.default = decodeCodePoint;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseFeed = exports.FeedHandler = exports.getFeed = void 0;\nvar domhandler_1 = __importDefault(require(\"domhandler\"));\nvar domutils_1 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_1.getFeed; } });\nvar Parser_1 = require(\"./Parser\");\n/** @deprecated Handler is no longer necessary; use `getFeed` or `parseFeed` instead. */\nvar FeedHandler = /** @class */ (function (_super) {\n __extends(FeedHandler, _super);\n /**\n *\n * @param callback\n * @param options\n */\n function FeedHandler(callback, options) {\n var _this = this;\n if (typeof callback === \"object\") {\n callback = undefined;\n options = callback;\n }\n _this = _super.call(this, callback, options) || this;\n return _this;\n }\n FeedHandler.prototype.onend = function () {\n var feed = (0, domutils_1.getFeed)(this.dom);\n if (feed) {\n this.feed = feed;\n this.handleCallback(null);\n }\n else {\n this.handleCallback(new Error(\"couldn't find root of feed\"));\n }\n };\n return FeedHandler;\n}(domhandler_1.default));\nexports.FeedHandler = FeedHandler;\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = { xmlMode: true }; }\n var handler = new domhandler_1.default(null, options);\n new Parser_1.Parser(handler, options).end(feed);\n return (0, domutils_1.getFeed)(handler.dom);\n}\nexports.parseFeed = parseFeed;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `
` tags.\n *\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content.\n *\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text.\n *\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\nvar legacy_json_1 = __importDefault(require(\"./maps/legacy.json\"));\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\nvar strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\nexports.decodeXML = getStrictDecoder(xml_json_1.default);\nexports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);\nfunction getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function (str) { return String(str).replace(strictEntityRe, replace); };\n}\nvar sorter = function (a, b) { return (a < b ? 1 : -1); };\nexports.decodeHTML = (function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1.default).sort(sorter);\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n }\n else {\n keys[i] += \";\";\n }\n }\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1.default);\n function replacer(str) {\n if (str.substr(-1) !== \";\")\n str += \";\";\n return replace(str);\n }\n // TODO consider creating a merged map\n return function (str) { return String(str).replace(re, replacer); };\n})();\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return map[str.slice(1, -1)] || str;\n };\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = void 0;\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeXML = getASCIIEncoder(inverseXML);\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\n/**\n * Encodes all entities and non-ASCII characters in the input.\n *\n * This includes characters that are valid ASCII characters in HTML documents.\n * For example `#` will be encoded as `#`. To get a more compact output,\n * consider using the `encodeNonAsciiHTML` function.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\nfunction getInverseObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n }\n else {\n // Add value to multiple array\n multiple.push(k);\n }\n }\n // Add ranges to single characters.\n single.sort();\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n while (end < single.length - 1 &&\n single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n var count = 1 + end - start;\n // We want to replace at least three characters\n if (count < 3)\n continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n// /[^\\0-\\x7F]/gu\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\nvar getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n function (str) { return str.codePointAt(0); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c) {\n return (c.charCodeAt(0) - 0xd800) * 0x400 +\n c.charCodeAt(1) -\n 0xdc00 +\n 0x10000;\n };\nfunction singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0))\n .toString(16)\n .toUpperCase() + \";\";\n}\nfunction getInverse(inverse, re) {\n return function (data) {\n return data\n .replace(re, function (name) { return inverse[name]; })\n .replace(reNonASCII, singleCharReplacer);\n };\n}\nvar reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nfunction escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n}\nexports.escape = escape;\n/**\n * Encodes all characters not valid in XML documents using numeric hexadecimal\n * reference (eg. `ü`).\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nfunction escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n}\nexports.escapeUTF8 = escapeUTF8;\nfunction getASCIIEncoder(obj) {\n return function (data) {\n return data.replace(reEscapeChars, function (c) { return obj[c] || singleCharReplacer(c); });\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n if (!Array.isArray(node))\n node = [node];\n return find(test, node, recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var elem = nodes_1[_i];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n break;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n var children = find(test, elem.children, recurse, limit);\n result.push.apply(result, children);\n limit -= children.length;\n if (limit <= 0)\n break;\n }\n }\n return result;\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first child node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var checked = nodes[i];\n if (!(0, domhandler_1.isTag)(checked)) {\n continue;\n }\n else if (test(checked)) {\n elem = checked;\n }\n else if (recurse && checked.children.length > 0) {\n elem = findOne(test, checked.children);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing a test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) ||\n (checked.children.length > 0 &&\n existsOne(test, checked.children)));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search and array of nodes and its children for nodes passing a test function.\n *\n * Same as `find`, only with less options, leading to reduced complexity.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var _a;\n var result = [];\n var stack = nodes.filter(domhandler_1.isTag);\n var elem;\n while ((elem = stack.shift())) {\n var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag);\n if (children && children.length > 0) {\n stack.unshift.apply(stack, children);\n }\n if (test(elem))\n result.push(elem);\n }\n return result;\n}\nexports.findAll = findAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_1 = require(\"./querying\");\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either\n * of the input functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * @param options An object describing nodes to look for.\n * @returns A function executing all checks in `options` and returning `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_name(tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_type(type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n","import { MixedStyleDeclaration } from '@native-html/css-processor';\nimport { textContent } from 'domutils';\nimport HTMLContentModel from './HTMLContentModel';\nimport HTMLElementModel from './HTMLElementModel';\nimport {\n AttribTagNames,\n EditsTagNames,\n EmbeddedTagNames,\n GroupingTagNames,\n InteractiveTagNames,\n MetadataTagNames,\n SectioningTagNames,\n TabularTagNames,\n TextLevelTagNames,\n UnsupportedTagNames,\n UntranslatableTagNames,\n HTMLModelRecord,\n ElementModelBase\n} from './model-types';\n\nconst UA_ANCHOR_COL = '#245dc1';\nconst UA_GRAY = '#CCC';\nconst UA_MARGIN_HZ = 30;\n\nconst bigMarginTopBottomStyle: MixedStyleDeclaration = {\n marginTop: '1em',\n marginBottom: '1em'\n};\n\nconst shortMarginTopBottomStyle: MixedStyleDeclaration = {\n marginTop: '.5em',\n marginBottom: '.5em'\n};\n\nconst lineThroughStyle: MixedStyleDeclaration = {\n textDecorationLine: 'line-through'\n};\n\nconst italicStyle: MixedStyleDeclaration = {\n fontStyle: 'italic'\n};\n\nconst monoStyle: MixedStyleDeclaration = {\n fontFamily: 'monospace'\n};\n\nconst boldStyle: MixedStyleDeclaration = {\n fontWeight: 'bold'\n};\n\nconst spacedBlockStyle: MixedStyleDeclaration = {\n ...bigMarginTopBottomStyle,\n marginLeft: UA_MARGIN_HZ,\n marginRight: UA_MARGIN_HZ\n};\n\nconst anchorStyle: MixedStyleDeclaration = {\n color: UA_ANCHOR_COL,\n textDecorationLine: 'underline',\n textDecorationColor: UA_ANCHOR_COL\n};\n\nconst leftBorderQuoteStyle: MixedStyleDeclaration = {\n borderLeftWidth: 2,\n borderLeftColor: UA_GRAY\n};\n\nconst dottedUnderlineStyle: MixedStyleDeclaration = {\n textDecorationLine: 'underline',\n textDecorationStyle: 'dotted'\n};\n\nconst solidUnderlineStyle: MixedStyleDeclaration = {\n textDecorationLine: 'underline',\n textDecorationStyle: 'solid'\n};\n\n// TODO, support directional styles\nconst listStyles: MixedStyleDeclaration = {\n ...bigMarginTopBottomStyle,\n paddingLeft: 30\n};\n\nconst preStyles: MixedStyleDeclaration = {\n whiteSpace: 'pre',\n ...monoStyle,\n ...bigMarginTopBottomStyle\n};\n\nfunction headerStyle(\n fontSize: string,\n marginSize: string\n): MixedStyleDeclaration {\n return {\n fontSize,\n marginTop: marginSize,\n marginBottom: marginSize,\n ...boldStyle\n };\n}\n\nconst getReactNativePropsForHeading: ElementModelBase['getReactNativeProps'] =\n ({ domNode }) => {\n const textLabel = textContent(domNode!);\n return {\n native: {\n accessible: true,\n accessibilityLabel: textLabel,\n accessibilityRole: 'header'\n }\n };\n };\n\nconst getReactNativePropsWithHref: ElementModelBase['getReactNativeProps'] =\n function getReactNativePropsWithHref({ attributes }) {\n if (typeof attributes.href === 'string' && attributes.href.length > 0) {\n return {\n native: {\n accessible: true,\n accessibilityRole: 'link'\n }\n };\n }\n };\n\nconst sectioningModelMap: HTMLModelRecord<\n SectioningTagNames,\n HTMLContentModel.block\n> = {\n address: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'address',\n mixedUAStyles: italicStyle\n }),\n article: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'article'\n }),\n aside: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'aside'\n }),\n body: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'body'\n }),\n footer: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'footer'\n }),\n h1: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h1',\n mixedUAStyles: headerStyle('2em', '.67em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h2: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h2',\n mixedUAStyles: headerStyle('1.5em', '.83em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h3: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h3',\n mixedUAStyles: headerStyle('1.17em', '1em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h4: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h4',\n mixedUAStyles: headerStyle('1em', '1.33em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h5: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h5',\n mixedUAStyles: headerStyle('.83em', '1.67em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h6: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h6',\n mixedUAStyles: headerStyle('.67em', '2.33em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n header: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'header'\n }),\n hgroup: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'hgroup'\n }),\n nav: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'nav'\n }),\n section: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'section'\n })\n};\n\nconst unsupportedModelMap: HTMLModelRecord<\n UnsupportedTagNames,\n HTMLContentModel.none\n> = {\n area: HTMLElementModel.fromNativeModel({\n tagName: 'area',\n category: 'untranslatable',\n isVoid: true,\n getReactNativeProps: getReactNativePropsWithHref\n }),\n map: HTMLElementModel.fromNativeModel({\n tagName: 'map',\n category: 'untranslatable'\n })\n};\n\nconst attribsModelMap: HTMLModelRecord =\n {\n accesskey: HTMLElementModel.fromNativeModel({\n tagName: 'accesskey',\n category: 'untranslatable'\n }),\n caption: HTMLElementModel.fromNativeModel({\n tagName: 'caption',\n category: 'untranslatable'\n }),\n col: HTMLElementModel.fromNativeModel({\n tagName: 'col',\n category: 'untranslatable',\n isVoid: true\n }),\n colgroup: HTMLElementModel.fromNativeModel({\n tagName: 'colgroup',\n category: 'untranslatable'\n }),\n datalist: HTMLElementModel.fromNativeModel({\n tagName: 'datalist',\n category: 'untranslatable'\n }),\n source: HTMLElementModel.fromNativeModel({\n tagName: 'source',\n category: 'untranslatable',\n isVoid: true\n }),\n track: HTMLElementModel.fromNativeModel({\n tagName: 'track',\n category: 'untranslatable',\n isVoid: true\n }),\n optgroup: HTMLElementModel.fromNativeModel({\n tagName: 'optgroup',\n category: 'untranslatable'\n }),\n option: HTMLElementModel.fromNativeModel({\n tagName: 'option',\n category: 'untranslatable'\n }),\n param: HTMLElementModel.fromNativeModel({\n tagName: 'param',\n category: 'untranslatable',\n isVoid: true\n })\n };\n\nconst interactiveModelMap: HTMLModelRecord<\n InteractiveTagNames,\n HTMLContentModel.none\n> = {\n button: HTMLElementModel.fromNativeModel({\n tagName: 'button',\n category: 'interactive',\n reactNativeProps: {\n native: {\n accessibilityRole: 'button'\n }\n }\n }),\n fieldset: HTMLElementModel.fromNativeModel({\n tagName: 'fieldset',\n category: 'interactive'\n }),\n form: HTMLElementModel.fromNativeModel({\n tagName: 'form',\n category: 'interactive'\n }),\n input: HTMLElementModel.fromNativeModel({\n tagName: 'input',\n category: 'interactive',\n isVoid: true\n }),\n label: HTMLElementModel.fromNativeModel({\n tagName: 'label',\n category: 'interactive'\n }),\n legend: HTMLElementModel.fromNativeModel({\n tagName: 'legend',\n category: 'interactive'\n }),\n meter: HTMLElementModel.fromNativeModel({\n tagName: 'meter',\n category: 'interactive'\n }),\n progress: HTMLElementModel.fromNativeModel({\n tagName: 'progress',\n category: 'interactive'\n }),\n select: HTMLElementModel.fromNativeModel({\n tagName: 'select',\n category: 'interactive',\n reactNativeProps: {\n native: {\n accessible: true,\n accessibilityRole: 'combobox'\n }\n }\n }),\n details: HTMLElementModel.fromNativeModel({\n tagName: 'details',\n category: 'interactive'\n }),\n dialog: HTMLElementModel.fromNativeModel({\n tagName: 'dialog',\n category: 'interactive'\n }),\n output: HTMLElementModel.fromNativeModel({\n tagName: 'output',\n category: 'interactive'\n }),\n summary: HTMLElementModel.fromNativeModel({\n tagName: 'summary',\n category: 'interactive'\n }),\n textarea: HTMLElementModel.fromNativeModel({\n tagName: 'textarea',\n category: 'interactive'\n })\n};\n\nconst metadataModelMap: HTMLModelRecord<\n MetadataTagNames,\n HTMLContentModel.none\n> = {\n base: HTMLElementModel.fromNativeModel({\n tagName: 'base',\n category: 'untranslatable',\n isVoid: true\n }),\n head: HTMLElementModel.fromNativeModel({\n tagName: 'head',\n category: 'untranslatable',\n isOpaque: true\n }),\n link: HTMLElementModel.fromNativeModel({\n tagName: 'link',\n category: 'untranslatable',\n isVoid: true\n }),\n meta: HTMLElementModel.fromNativeModel({\n tagName: 'meta',\n category: 'untranslatable',\n isVoid: true\n }),\n title: HTMLElementModel.fromNativeModel({\n tagName: 'title',\n category: 'untranslatable'\n })\n};\n\nconst untranslatableModelMap: HTMLModelRecord<\n UntranslatableTagNames,\n HTMLContentModel.none\n> = {\n ...attribsModelMap,\n ...interactiveModelMap,\n ...unsupportedModelMap,\n ...metadataModelMap\n};\n\nconst groupingModelMap: HTMLModelRecord<\n GroupingTagNames,\n HTMLContentModel.block\n> = {\n blockquote: HTMLElementModel.fromNativeModel({\n tagName: 'blockquote',\n category: 'grouping',\n getMixedUAStyles: ({ attributes }) => {\n if (attributes.type === 'cite') {\n return leftBorderQuoteStyle;\n }\n },\n mixedUAStyles: spacedBlockStyle\n }),\n dd: HTMLElementModel.fromNativeModel({\n tagName: 'dd',\n category: 'grouping',\n mixedUAStyles: {\n marginLeft: UA_MARGIN_HZ\n }\n }),\n div: HTMLElementModel.fromNativeModel({\n tagName: 'div',\n category: 'grouping'\n }),\n dl: HTMLElementModel.fromNativeModel({\n tagName: 'dl',\n category: 'grouping',\n mixedUAStyles: bigMarginTopBottomStyle\n }),\n dt: HTMLElementModel.fromNativeModel({\n tagName: 'dt',\n category: 'grouping',\n mixedUAStyles: boldStyle\n }),\n figcaption: HTMLElementModel.fromNativeModel({\n tagName: 'figcaption',\n category: 'grouping',\n mixedUAStyles: {\n ...italicStyle,\n textAlign: 'center'\n }\n }),\n figure: HTMLElementModel.fromNativeModel({\n tagName: 'figure',\n category: 'grouping',\n mixedUAStyles: spacedBlockStyle\n }),\n hr: HTMLElementModel.fromNativeModel({\n tagName: 'hr',\n category: 'grouping',\n mixedUAStyles: {\n marginLeft: 'auto',\n marginRight: 'auto',\n height: 1,\n width: '100%',\n backgroundColor: UA_GRAY,\n ...shortMarginTopBottomStyle\n }\n }),\n li: HTMLElementModel.fromNativeModel({\n tagName: 'li',\n category: 'grouping'\n }),\n main: HTMLElementModel.fromNativeModel({\n tagName: 'main',\n category: 'grouping'\n }),\n menu: HTMLElementModel.fromNativeModel({\n tagName: 'menu',\n category: 'grouping'\n }),\n ol: HTMLElementModel.fromNativeModel({\n tagName: 'ol',\n category: 'grouping',\n mixedUAStyles: listStyles,\n setMarkersForTNode(targetMarkers, parentMarkers) {\n targetMarkers.olNestLevel = parentMarkers.olNestLevel + 1;\n }\n }),\n p: HTMLElementModel.fromNativeModel({\n tagName: 'p',\n category: 'grouping',\n mixedUAStyles: bigMarginTopBottomStyle\n }),\n pre: HTMLElementModel.fromNativeModel({\n tagName: 'pre',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n xmp: HTMLElementModel.fromNativeModel({\n tagName: 'xmp',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n listing: HTMLElementModel.fromNativeModel({\n tagName: 'listing',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n plaintext: HTMLElementModel.fromNativeModel({\n tagName: 'plaintext',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n ul: HTMLElementModel.fromNativeModel({\n tagName: 'ul',\n category: 'grouping',\n mixedUAStyles: listStyles,\n setMarkersForTNode(targetMarkers, parentMarkers) {\n targetMarkers.ulNestLevel = parentMarkers.ulNestLevel + 1;\n }\n }),\n dir: HTMLElementModel.fromNativeModel({\n tagName: 'dir',\n category: 'grouping',\n mixedUAStyles: listStyles\n })\n};\n\nconst tabularModelMap: HTMLModelRecord<\n TabularTagNames,\n HTMLContentModel.block\n> = {\n table: HTMLElementModel.fromNativeModel({\n tagName: 'table',\n category: 'tabular'\n }),\n tbody: HTMLElementModel.fromNativeModel({\n tagName: 'tbody',\n category: 'tabular'\n }),\n td: HTMLElementModel.fromNativeModel({\n tagName: 'td',\n category: 'tabular',\n mixedUAStyles: {\n padding: 2,\n flex: 1\n }\n }),\n tfoot: HTMLElementModel.fromNativeModel({\n tagName: 'tfoot',\n category: 'tabular'\n }),\n th: HTMLElementModel.fromNativeModel({\n tagName: 'th',\n category: 'tabular',\n mixedUAStyles: {\n padding: 2,\n flex: 1,\n fontWeight: 'bold'\n }\n }),\n thead: HTMLElementModel.fromNativeModel({\n tagName: 'thead',\n category: 'tabular'\n }),\n tr: HTMLElementModel.fromNativeModel({\n tagName: 'tr',\n category: 'tabular',\n mixedUAStyles: {\n flexDirection: 'row',\n flexWrap: 'nowrap'\n }\n })\n};\n\n// These emnbedded should be rendered by default.\nconst renderedEmbeddedModelMap: HTMLModelRecord<\n Extract,\n HTMLContentModel.block\n> = {\n img: HTMLElementModel.fromNativeModel({\n tagName: 'img',\n category: 'embedded',\n isVoid: true,\n getReactNativeProps({ attributes }, props) {\n // see https://w3c.github.io/html-aria/#el-img\n const label = attributes['aria-label'] || attributes.alt;\n if (label && (!props?.view || props.view.accessibilityRole !== 'none')) {\n return {\n native: {\n accessibilityLabel: label,\n accessibilityRole: 'image'\n }\n };\n }\n return {\n native: {\n accessibilityRole: 'none'\n }\n };\n }\n }).extend({\n contentModel: HTMLContentModel.block\n }),\n picture: HTMLElementModel.fromNativeModel({\n tagName: 'picture',\n category: 'embedded',\n isOpaque: false,\n isVoid: false // allows source and img\n }).extend({\n contentModel: HTMLContentModel.block\n })\n};\n\n// Embedded elements content model is \"none\" by default.\nconst emptyEmbeddedModelMap: HTMLModelRecord<\n Exclude,\n HTMLContentModel.none\n> = {\n audio: HTMLElementModel.fromNativeModel({\n tagName: 'audio',\n category: 'embedded',\n isVoid: false // allows tracks\n }),\n canvas: HTMLElementModel.fromNativeModel({\n tagName: 'canvas',\n category: 'embedded',\n isVoid: false // allows specific content\n }),\n embed: HTMLElementModel.fromNativeModel({\n tagName: 'embed',\n category: 'embedded',\n isVoid: true\n }),\n iframe: HTMLElementModel.fromNativeModel({\n tagName: 'iframe',\n category: 'embedded',\n isVoid: true\n }),\n math: HTMLElementModel.fromNativeModel({\n tagName: 'math',\n category: 'embedded',\n isVoid: false, // allows mathml elems\n isOpaque: true\n }),\n object: HTMLElementModel.fromNativeModel({\n tagName: 'object',\n category: 'embedded',\n isVoid: false // allows params\n }),\n svg: HTMLElementModel.fromNativeModel({\n tagName: 'svg',\n category: 'embedded',\n isVoid: false, // allows svg elems\n isOpaque: true,\n getReactNativeProps({ attributes }) {\n if (attributes['aria-label']) {\n return {\n native: {\n accessibilityLabel: attributes['aria-label'],\n accessibilityRole: 'image'\n }\n };\n }\n return {\n native: {\n accessibilityRole: 'none'\n }\n };\n }\n }),\n video: HTMLElementModel.fromNativeModel({\n tagName: 'video',\n category: 'embedded',\n isVoid: false // allows source, tracks + transparent\n })\n};\n\nconst editsModelMap: HTMLModelRecord = {\n ins: HTMLElementModel.fromNativeModel({\n tagName: 'ins',\n category: 'edits',\n mixedUAStyles: solidUnderlineStyle,\n setMarkersForTNode(targetMarkers) {\n targetMarkers.edits = 'ins';\n }\n }),\n del: HTMLElementModel.fromNativeModel({\n tagName: 'del',\n category: 'edits',\n mixedUAStyles: lineThroughStyle,\n setMarkersForTNode(targetMarkers) {\n targetMarkers.edits = 'del';\n }\n })\n};\n\nconst textLevelModelMap: HTMLModelRecord<\n TextLevelTagNames,\n HTMLContentModel.textual\n> = {\n em: HTMLElementModel.fromNativeModel({\n tagName: 'em',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n strong: HTMLElementModel.fromNativeModel({\n tagName: 'strong',\n category: 'textual',\n mixedUAStyles: boldStyle\n }),\n small: HTMLElementModel.fromNativeModel({\n tagName: 'small',\n category: 'textual',\n mixedUAStyles: {\n fontSize: 'smaller'\n }\n }),\n big: HTMLElementModel.fromNativeModel({\n tagName: 'big',\n category: 'textual',\n mixedUAStyles: {\n fontSize: 'larger'\n }\n }),\n s: HTMLElementModel.fromNativeModel({\n tagName: 's',\n category: 'textual',\n mixedUAStyles: lineThroughStyle\n }),\n strike: HTMLElementModel.fromNativeModel({\n tagName: 'strike',\n category: 'textual',\n mixedUAStyles: lineThroughStyle\n }),\n cite: HTMLElementModel.fromNativeModel({\n tagName: 'cite',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n q: HTMLElementModel.fromNativeModel({\n tagName: 'q',\n category: 'textual'\n // default style, content: \"open,close-quote\"\n }),\n dfn: HTMLElementModel.fromNativeModel({\n tagName: 'dfn',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n abbr: HTMLElementModel.fromNativeModel({\n tagName: 'abbr',\n category: 'textual',\n mixedUAStyles: dottedUnderlineStyle\n }),\n acronym: HTMLElementModel.fromNativeModel({\n tagName: 'acronym',\n category: 'textual',\n mixedUAStyles: dottedUnderlineStyle\n }),\n ruby: HTMLElementModel.fromNativeModel({\n tagName: 'ruby',\n category: 'textual'\n }),\n rt: HTMLElementModel.fromNativeModel({\n tagName: 'rt',\n category: 'textual'\n }),\n rp: HTMLElementModel.fromNativeModel({\n tagName: 'rp',\n category: 'textual'\n }),\n data: HTMLElementModel.fromNativeModel({\n tagName: 'data',\n category: 'textual'\n }),\n time: HTMLElementModel.fromNativeModel({\n tagName: 'time',\n category: 'textual'\n }),\n code: HTMLElementModel.fromNativeModel({\n tagName: 'code',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n tt: HTMLElementModel.fromNativeModel({\n tagName: 'tt',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n var: HTMLElementModel.fromNativeModel({\n tagName: 'var',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n samp: HTMLElementModel.fromNativeModel({\n tagName: 'samp',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n kbd: HTMLElementModel.fromNativeModel({\n tagName: 'kbd',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n sub: HTMLElementModel.fromNativeModel({\n tagName: 'sub',\n category: 'textual',\n mixedUAStyles: {\n textAlignVertical: 'bottom',\n fontSize: 'smaller'\n }\n }),\n sup: HTMLElementModel.fromNativeModel({\n tagName: 'sup',\n category: 'textual',\n mixedUAStyles: {\n textAlignVertical: 'top',\n fontSize: 'smaller'\n }\n }),\n i: HTMLElementModel.fromNativeModel({\n tagName: 'i',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n b: HTMLElementModel.fromNativeModel({\n tagName: 'b',\n category: 'textual',\n mixedUAStyles: boldStyle\n }),\n u: HTMLElementModel.fromNativeModel({\n tagName: 'u',\n category: 'textual',\n mixedUAStyles: solidUnderlineStyle\n }),\n mark: HTMLElementModel.fromNativeModel({\n tagName: 'mark',\n category: 'textual',\n mixedUAStyles: {\n backgroundColor: 'yellow',\n color: 'black'\n }\n }),\n bdi: HTMLElementModel.fromNativeModel({\n tagName: 'bdi',\n category: 'textual'\n // unicode-bidi: isolate;\n }),\n bdo: HTMLElementModel.fromNativeModel({\n tagName: 'bdo',\n category: 'textual'\n // unicode-bidi: isolate-override;\n }),\n span: HTMLElementModel.fromNativeModel({\n tagName: 'span',\n category: 'textual'\n }),\n br: HTMLElementModel.fromNativeModel({\n tagName: 'br',\n category: 'textual',\n isVoid: true\n }),\n wbr: HTMLElementModel.fromNativeModel({\n tagName: 'wbr',\n category: 'textual',\n isVoid: true\n })\n};\n\nconst defaultHTMLElementModels = {\n a: HTMLElementModel.fromNativeModel({\n tagName: 'a',\n category: 'anchor',\n getMixedUAStyles: ({ attributes }) => {\n if (typeof attributes.href === 'string') {\n return anchorStyle;\n }\n },\n getReactNativeProps: getReactNativePropsWithHref,\n setMarkersForTNode(targetMarkers) {\n targetMarkers.anchor = true;\n }\n }),\n ...textLevelModelMap,\n ...editsModelMap,\n ...renderedEmbeddedModelMap,\n ...emptyEmbeddedModelMap,\n ...tabularModelMap,\n ...groupingModelMap,\n ...sectioningModelMap,\n ...interactiveModelMap,\n ...untranslatableModelMap\n};\n\nexport type DefaultHTMLElementModelsStatic = typeof defaultHTMLElementModels;\n\nexport default defaultHTMLElementModels;\n","/**\n * Default system fonts based on current platform.\n *\n * @remarks If you are using Expo, use `Constants.systemFonts` instead.\n */\nconst defaultSystemFonts = ['Arial', 'Courier New', 'Georgia'];\nexport default defaultSystemFonts;\n","import React, { PropsWithChildren, ReactElement, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport RenderersPropsProvider from './context/RenderersPropsProvider';\nimport SharedPropsProvider from './context/SharedPropsProvider';\nimport TChildrenRenderersContext from './context/TChildrenRendererContext';\nimport { RenderHTMLConfig } from './shared-types';\nimport TNodeChildrenRenderer from './TNodeChildrenRenderer';\nimport TChildrenRenderer from './TChildrenRenderer';\nimport sourceLoaderContext, {\n defaultRenderError,\n defaultRenderLoading\n} from './context/sourceLoaderContext';\nimport RenderRegistryProvider from './context/RenderRegistryProvider';\nimport { useAmbientTRenderEngine } from './TRenderEngineProvider';\nimport useProfiler from './hooks/useProfiler';\nimport ListStyleSpecsProvider from './context/ListStyleSpecsProvider';\n\nconst childrenRendererContext = {\n TChildrenRenderer,\n TNodeChildrenRenderer\n};\n\nexport type RenderHTMLConfigPropTypes = Record;\n\nexport const renderHTMLConfigPropTypes: RenderHTMLConfigPropTypes = {\n bypassAnonymousTPhrasingNodes: PropTypes.bool,\n defaultTextProps: PropTypes.object,\n defaultViewProps: PropTypes.object,\n enableExperimentalBRCollapsing: PropTypes.bool,\n enableExperimentalGhostLinesPrevention: PropTypes.bool,\n enableExperimentalMarginCollapsing: PropTypes.bool,\n remoteErrorView: PropTypes.func,\n remoteLoadingView: PropTypes.func,\n debug: PropTypes.bool,\n computeEmbeddedMaxWidth: PropTypes.func,\n renderersProps: PropTypes.object,\n WebView: PropTypes.any,\n GenericPressable: PropTypes.any,\n defaultWebViewProps: PropTypes.object,\n pressableHightlightColor: PropTypes.string,\n customListStyleSpecs: PropTypes.object,\n renderers: PropTypes.object,\n provideEmbeddedHeaders: PropTypes.func\n};\n\n/**\n * A component to provide configuration for {@link RenderHTMLSource}\n * descendants, to be used in conjunction with {@link TRenderEngineProvider}.\n */\nexport default function RenderHTMLConfigProvider(\n props: PropsWithChildren\n): ReactElement {\n const {\n remoteErrorView,\n remoteLoadingView,\n renderersProps,\n children,\n renderers,\n ...sharedProps\n } = props;\n const engine = useAmbientTRenderEngine();\n const profile = useProfiler({ prop: 'remoteErrorView or remoteLoadingView' });\n const sourceLoaderConfig = useMemo(() => {\n typeof __DEV__ === 'boolean' && __DEV__ && profile();\n return {\n remoteErrorView: remoteErrorView || defaultRenderError,\n remoteLoadingView: remoteLoadingView || defaultRenderLoading\n };\n }, [remoteErrorView, remoteLoadingView, profile]);\n return (\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n );\n}\n\n/**\n * @ignore\n */\nRenderHTMLConfigProvider.propTypes = renderHTMLConfigPropTypes;\n","import { DEFAULT_PRESSABLE_RIPPLE_COLOR } from '../constants';\nimport { RenderHTMLAmbiantSharedProps } from '../shared-types';\n\nfunction WebViewPlaceholder() {\n /* istanbul ignore else */\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n console.warn(\n 'One of your renderers is attempting to use WebView component, which has not been ' +\n \"provided as a prop to the RenderHtml component. As a consequence, the element won't be rendered.\"\n );\n }\n return null;\n}\n\nconst defaultSharedProps: RenderHTMLAmbiantSharedProps = {\n bypassAnonymousTPhrasingNodes: true,\n debug: false,\n defaultTextProps: {\n selectable: false,\n allowFontScaling: true\n },\n defaultViewProps: {},\n enableExperimentalBRCollapsing: false,\n enableExperimentalGhostLinesPrevention: false,\n enableExperimentalMarginCollapsing: false,\n computeEmbeddedMaxWidth: (contentWidth) => contentWidth,\n WebView: WebViewPlaceholder,\n defaultWebViewProps: {},\n pressableHightlightColor: DEFAULT_PRESSABLE_RIPPLE_COLOR,\n provideEmbeddedHeaders: undefined,\n GenericPressable: undefined,\n customListStyleSpecs: undefined\n};\n\nexport default defaultSharedProps;\n","import { ReactElement } from 'react';\nimport { TNode } from '@native-html/transient-render-engine';\nimport { useSharedProps } from './context/SharedPropsProvider';\nimport { tchildrenRendererDefaultProps } from './TChildrenRenderer';\nimport {\n TChildrenRendererProps,\n TNodeChildrenRendererProps\n} from './shared-types';\nimport renderChildren from './renderChildren';\n\nfunction isCollapsible(tnode: TNode) {\n return tnode.type === 'block' || tnode.type === 'phrasing';\n}\n\n/**\n * A hook especially useful when one need to tamper with children in a custom\n * renderer. Should be used with {@link TChildrenRenderer}.\n *\n * @example\n * For example, a custom renderer which inserts ads in an article:\n *\n * ```tsx\n * function ArticleRenderer(props) {\n * const { tnode, TDefaultRenderer, ...defaultRendererProps } = props;\n * const tchildrenProps = useTNodeChildrenProps(props);\n * const firstChildrenChunk = tnode.children.slice(0, 2);\n * const secondChildrenChunk = tnode.children.slice(2, 4);\n * const thirdChildrenChunk = tnode.children.slice(4, 5);\n * return (\n * \n * \n * {firstChildrenChunk.length === 2 ? : null}\n * \n * {secondChildrenChunk.length === 2 ? : null}\n * \n * \n * );\n * };\n * ```\n */\nexport function useTNodeChildrenProps({\n tnode,\n propsForChildren,\n disableMarginCollapsing = false,\n renderChild\n}: TNodeChildrenRendererProps): TChildrenRendererProps {\n const { enableExperimentalMarginCollapsing } = useSharedProps();\n const shouldCollapseChildren =\n enableExperimentalMarginCollapsing &&\n !disableMarginCollapsing &&\n isCollapsible(tnode);\n return {\n propsForChildren,\n disableMarginCollapsing: !shouldCollapseChildren,\n tchildren: tnode.children,\n renderChild\n };\n}\n\n/**\n * A component to render all children of a {@link TNode}.\n */\nfunction TNodeChildrenRenderer(\n props: TNodeChildrenRendererProps\n): ReactElement {\n if (props.tnode.type === 'text') {\n // see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/20544\n return props.tnode.data as unknown as ReactElement;\n }\n // A tnode type will never change. We can safely\n // ignore the non-conditional rule of hooks.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return renderChildren(useTNodeChildrenProps(props));\n}\n\n/**\n * @ignore\n */\nTNodeChildrenRenderer.defaultProps = tchildrenRendererDefaultProps;\n\nexport default TNodeChildrenRenderer;\n","import React, { ReactElement } from 'react';\nimport { TNode } from '@native-html/transient-render-engine';\nimport TNodeRenderer from './TNodeRenderer';\nimport { TChildrenRendererProps } from './shared-types';\nimport collapseTopMarginForChild from './helpers/collapseTopMarginForChild';\n\nconst empty = {};\n\nconst mapCollapsibleChildren = (\n propsForChildren: TChildrenRendererProps['propsForChildren'],\n renderChild: TChildrenRendererProps['renderChild'],\n disableMarginCollapsing: boolean | undefined,\n childTnode: TNode,\n n: number,\n tchildren: readonly TNode[]\n) => {\n const collapsedMarginTop = disableMarginCollapsing\n ? null\n : collapseTopMarginForChild(n, tchildren);\n const propsFromParent = { ...propsForChildren, collapsedMarginTop };\n const key = childTnode.nodeIndex;\n const childElement = React.createElement(TNodeRenderer, {\n propsFromParent,\n tnode: childTnode,\n key,\n renderIndex: n,\n renderLength: tchildren.length\n });\n return typeof renderChild === 'function'\n ? renderChild({\n key,\n childElement,\n index: n,\n childTnode,\n propsFromParent\n })\n : childElement;\n};\n\nexport default function renderChildren({\n tchildren,\n propsForChildren = empty,\n disableMarginCollapsing,\n renderChild\n}: TChildrenRendererProps): ReactElement {\n const elements = tchildren.map(\n mapCollapsibleChildren.bind(\n null,\n propsForChildren,\n renderChild,\n disableMarginCollapsing\n )\n );\n return <>{elements};\n}\n","import React from 'react';\nimport { InternalMixedRenderer } from '../render/render-types';\nimport { TNode, DocumentContext } from '@native-html/transient-render-engine';\nimport { InternalRendererProps, RenderersProps } from '../shared-types';\nimport { GestureResponderEvent } from 'react-native';\nimport useNormalizedUrl from '../hooks/useNormalizedUrl';\nimport { useDocumentMetadata } from '../context/DocumentMetadataProvider';\nimport { useRendererProps } from '../context/RenderersPropsProvider';\n\nfunction useAnchorOnLinkPress(\n tnode: TNode,\n onPress: RenderersProps['a']['onPress']\n) {\n const href: string = tnode.attributes.href;\n const normalizedHref = useNormalizedUrl(href);\n const { baseTarget } = useDocumentMetadata();\n const shouldHandleLinkPress =\n tnode.tagName === 'a' &&\n typeof normalizedHref === 'string' &&\n href.length > 0 &&\n typeof onPress === 'function';\n return shouldHandleLinkPress\n ? (e: GestureResponderEvent) =>\n onPress!(\n e,\n normalizedHref,\n tnode.attributes,\n (tnode.attributes.target as DocumentContext['baseTarget']) ||\n baseTarget\n )\n : undefined;\n}\n\nexport function useAElementProps(\n props: InternalRendererProps\n): InternalRendererProps {\n const { tnode } = props;\n const { onPress } = useRendererProps('a');\n const syntheticAnchorOnLinkPress = useAnchorOnLinkPress(tnode, onPress);\n if (typeof syntheticAnchorOnLinkPress !== 'function') {\n return props;\n }\n return {\n ...props,\n onPress: syntheticAnchorOnLinkPress\n };\n}\n\nconst ARenderer: InternalMixedRenderer = (props) => {\n return React.createElement(props.TDefaultRenderer, useAElementProps(props));\n};\n\nexport default ARenderer;\n","/*! https://mths.be/punycode v1.4.0 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","/*!\n * URI.js - Mutating URLs\n * IPv6 Support\n *\n * Version: 1.19.11\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.IPv6 = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n /*\n var _in = \"fe80:0000:0000:0000:0204:61ff:fe9d:f156\";\n var _out = IPv6.best(_in);\n var _expected = \"fe80::204:61ff:fe9d:f156\";\n\n console.log(_in, _out, _expected, _out === _expected);\n */\n\n // save current IPv6 variable, if any\n var _IPv6 = root && root.IPv6;\n\n function bestPresentation(address) {\n // based on:\n // Javascript to test an IPv6 address for proper format, and to\n // present the \"best text representation\" according to IETF Draft RFC at\n // http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04\n // 8 Feb 2010 Rich Brown, Dartware, LLC\n // Please feel free to use this code as long as you provide a link to\n // http://www.intermapper.com\n // http://intermapper.com/support/tools/IPV6-Validator.aspx\n // http://download.dartware.com/thirdparty/ipv6validator.js\n\n var _address = address.toLowerCase();\n var segments = _address.split(':');\n var length = segments.length;\n var total = 8;\n\n // trim colons (:: or ::a:b:c… or …a:b:c::)\n if (segments[0] === '' && segments[1] === '' && segments[2] === '') {\n // must have been ::\n // remove first two items\n segments.shift();\n segments.shift();\n } else if (segments[0] === '' && segments[1] === '') {\n // must have been ::xxxx\n // remove the first item\n segments.shift();\n } else if (segments[length - 1] === '' && segments[length - 2] === '') {\n // must have been xxxx::\n segments.pop();\n }\n\n length = segments.length;\n\n // adjust total segments for IPv4 trailer\n if (segments[length - 1].indexOf('.') !== -1) {\n // found a \".\" which means IPv4\n total = 7;\n }\n\n // fill empty segments them with \"0000\"\n var pos;\n for (pos = 0; pos < length; pos++) {\n if (segments[pos] === '') {\n break;\n }\n }\n\n if (pos < total) {\n segments.splice(pos, 1, '0000');\n while (segments.length < total) {\n segments.splice(pos, 0, '0000');\n }\n }\n\n // strip leading zeros\n var _segments;\n for (var i = 0; i < total; i++) {\n _segments = segments[i].split('');\n for (var j = 0; j < 3 ; j++) {\n if (_segments[0] === '0' && _segments.length > 1) {\n _segments.splice(0,1);\n } else {\n break;\n }\n }\n\n segments[i] = _segments.join('');\n }\n\n // find longest sequence of zeroes and coalesce them into one segment\n var best = -1;\n var _best = 0;\n var _current = 0;\n var current = -1;\n var inzeroes = false;\n // i; already declared\n\n for (i = 0; i < total; i++) {\n if (inzeroes) {\n if (segments[i] === '0') {\n _current += 1;\n } else {\n inzeroes = false;\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n }\n } else {\n if (segments[i] === '0') {\n inzeroes = true;\n current = i;\n _current = 1;\n }\n }\n }\n\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n\n if (_best > 1) {\n segments.splice(best, _best, '');\n }\n\n length = segments.length;\n\n // assemble remaining segments\n var result = '';\n if (segments[0] === '') {\n result = ':';\n }\n\n for (i = 0; i < length; i++) {\n result += segments[i];\n if (i === length - 1) {\n break;\n }\n\n result += ':';\n }\n\n if (segments[length - 1] === '') {\n result += ':';\n }\n\n return result;\n }\n\n function noConflict() {\n /*jshint validthis: true */\n if (root.IPv6 === this) {\n root.IPv6 = _IPv6;\n }\n\n return this;\n }\n\n return {\n best: bestPresentation,\n noConflict: noConflict\n };\n}));\n","/*!\n * URI.js - Mutating URLs\n * Second Level Domain (SLD) Support\n *\n * Version: 1.19.11\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.SecondLevelDomains = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n // save current SecondLevelDomains variable, if any\n var _SecondLevelDomains = root && root.SecondLevelDomains;\n\n var SLD = {\n // list of known Second Level Domains\n // converted list of SLDs from https://github.com/gavingmiller/second-level-domains\n // ----\n // publicsuffix.org is more current and actually used by a couple of browsers internally.\n // downside is it also contains domains like \"dyndns.org\" - which is fine for the security\n // issues browser have to deal with (SOP for cookies, etc) - but is way overboard for URI.js\n // ----\n list: {\n 'ac':' com gov mil net org ',\n 'ae':' ac co gov mil name net org pro sch ',\n 'af':' com edu gov net org ',\n 'al':' com edu gov mil net org ',\n 'ao':' co ed gv it og pb ',\n 'ar':' com edu gob gov int mil net org tur ',\n 'at':' ac co gv or ',\n 'au':' asn com csiro edu gov id net org ',\n 'ba':' co com edu gov mil net org rs unbi unmo unsa untz unze ',\n 'bb':' biz co com edu gov info net org store tv ',\n 'bh':' biz cc com edu gov info net org ',\n 'bn':' com edu gov net org ',\n 'bo':' com edu gob gov int mil net org tv ',\n 'br':' adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ',\n 'bs':' com edu gov net org ',\n 'bz':' du et om ov rg ',\n 'ca':' ab bc mb nb nf nl ns nt nu on pe qc sk yk ',\n 'ck':' biz co edu gen gov info net org ',\n 'cn':' ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ',\n 'co':' com edu gov mil net nom org ',\n 'cr':' ac c co ed fi go or sa ',\n 'cy':' ac biz com ekloges gov ltd name net org parliament press pro tm ',\n 'do':' art com edu gob gov mil net org sld web ',\n 'dz':' art asso com edu gov net org pol ',\n 'ec':' com edu fin gov info med mil net org pro ',\n 'eg':' com edu eun gov mil name net org sci ',\n 'er':' com edu gov ind mil net org rochest w ',\n 'es':' com edu gob nom org ',\n 'et':' biz com edu gov info name net org ',\n 'fj':' ac biz com info mil name net org pro ',\n 'fk':' ac co gov net nom org ',\n 'fr':' asso com f gouv nom prd presse tm ',\n 'gg':' co net org ',\n 'gh':' com edu gov mil org ',\n 'gn':' ac com gov net org ',\n 'gr':' com edu gov mil net org ',\n 'gt':' com edu gob ind mil net org ',\n 'gu':' com edu gov net org ',\n 'hk':' com edu gov idv net org ',\n 'hu':' 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ',\n 'id':' ac co go mil net or sch web ',\n 'il':' ac co gov idf k12 muni net org ',\n 'in':' ac co edu ernet firm gen gov i ind mil net nic org res ',\n 'iq':' com edu gov i mil net org ',\n 'ir':' ac co dnssec gov i id net org sch ',\n 'it':' edu gov ',\n 'je':' co net org ',\n 'jo':' com edu gov mil name net org sch ',\n 'jp':' ac ad co ed go gr lg ne or ',\n 'ke':' ac co go info me mobi ne or sc ',\n 'kh':' com edu gov mil net org per ',\n 'ki':' biz com de edu gov info mob net org tel ',\n 'km':' asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ',\n 'kn':' edu gov net org ',\n 'kr':' ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ',\n 'kw':' com edu gov net org ',\n 'ky':' com edu gov net org ',\n 'kz':' com edu gov mil net org ',\n 'lb':' com edu gov net org ',\n 'lk':' assn com edu gov grp hotel int ltd net ngo org sch soc web ',\n 'lr':' com edu gov net org ',\n 'lv':' asn com conf edu gov id mil net org ',\n 'ly':' com edu gov id med net org plc sch ',\n 'ma':' ac co gov m net org press ',\n 'mc':' asso tm ',\n 'me':' ac co edu gov its net org priv ',\n 'mg':' com edu gov mil nom org prd tm ',\n 'mk':' com edu gov inf name net org pro ',\n 'ml':' com edu gov net org presse ',\n 'mn':' edu gov org ',\n 'mo':' com edu gov net org ',\n 'mt':' com edu gov net org ',\n 'mv':' aero biz com coop edu gov info int mil museum name net org pro ',\n 'mw':' ac co com coop edu gov int museum net org ',\n 'mx':' com edu gob net org ',\n 'my':' com edu gov mil name net org sch ',\n 'nf':' arts com firm info net other per rec store web ',\n 'ng':' biz com edu gov mil mobi name net org sch ',\n 'ni':' ac co com edu gob mil net nom org ',\n 'np':' com edu gov mil net org ',\n 'nr':' biz com edu gov info net org ',\n 'om':' ac biz co com edu gov med mil museum net org pro sch ',\n 'pe':' com edu gob mil net nom org sld ',\n 'ph':' com edu gov i mil net ngo org ',\n 'pk':' biz com edu fam gob gok gon gop gos gov net org web ',\n 'pl':' art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ',\n 'pr':' ac biz com edu est gov info isla name net org pro prof ',\n 'ps':' com edu gov net org plo sec ',\n 'pw':' belau co ed go ne or ',\n 'ro':' arts com firm info nom nt org rec store tm www ',\n 'rs':' ac co edu gov in org ',\n 'sb':' com edu gov net org ',\n 'sc':' com edu gov net org ',\n 'sh':' co com edu gov net nom org ',\n 'sl':' com edu gov net org ',\n 'st':' co com consulado edu embaixada gov mil net org principe saotome store ',\n 'sv':' com edu gob org red ',\n 'sz':' ac co org ',\n 'tr':' av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ',\n 'tt':' aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ',\n 'tw':' club com ebiz edu game gov idv mil net org ',\n 'mu':' ac co com gov net or org ',\n 'mz':' ac co edu gov org ',\n 'na':' co com ',\n 'nz':' ac co cri geek gen govt health iwi maori mil net org parliament school ',\n 'pa':' abo ac com edu gob ing med net nom org sld ',\n 'pt':' com edu gov int net nome org publ ',\n 'py':' com edu gov mil net org ',\n 'qa':' com edu gov mil net org ',\n 're':' asso com nom ',\n 'ru':' ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ',\n 'rw':' ac co com edu gouv gov int mil net ',\n 'sa':' com edu gov med net org pub sch ',\n 'sd':' com edu gov info med net org tv ',\n 'se':' a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ',\n 'sg':' com edu gov idn net org per ',\n 'sn':' art com edu gouv org perso univ ',\n 'sy':' com edu gov mil net news org ',\n 'th':' ac co go in mi net or ',\n 'tj':' ac biz co com edu go gov info int mil name net nic org test web ',\n 'tn':' agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ',\n 'tz':' ac co go ne or ',\n 'ua':' biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ',\n 'ug':' ac co go ne or org sc ',\n 'uk':' ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ',\n 'us':' dni fed isa kids nsn ',\n 'uy':' com edu gub mil net org ',\n 've':' co com edu gob info mil net org web ',\n 'vi':' co com k12 net org ',\n 'vn':' ac biz com edu gov health info int name net org pro ',\n 'ye':' co com gov ltd me net org plc ',\n 'yu':' ac co edu gov org ',\n 'za':' ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ',\n 'zm':' ac co com edu gov net org sch ',\n // https://en.wikipedia.org/wiki/CentralNic#Second-level_domains\n 'com': 'ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ',\n 'net': 'gb jp se uk ',\n 'org': 'ae',\n 'de': 'com '\n },\n // gorhill 2013-10-25: Using indexOf() instead Regexp(). Significant boost\n // in both performance and memory footprint. No initialization required.\n // http://jsperf.com/uri-js-sld-regex-vs-binary-search/4\n // Following methods use lastIndexOf() rather than array.split() in order\n // to avoid any memory allocations.\n has: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') >= 0;\n },\n is: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset >= 0) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(0, tldOffset) + ' ') >= 0;\n },\n get: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return null;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return null;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return null;\n }\n if (sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') < 0) {\n return null;\n }\n return domain.slice(sldOffset+1);\n },\n noConflict: function(){\n if (root.SecondLevelDomains === this) {\n root.SecondLevelDomains = _SecondLevelDomains;\n }\n return this;\n }\n };\n\n return SLD;\n}));\n","import { useEffect, useState } from 'react';\nimport { Image, ImageURISource } from 'react-native';\nimport {\n UseIMGElementStateProps,\n IMGElementState,\n IncompleteImageDimensions\n} from './img-types';\nimport defaultImageInitialDimensions from './defaultInitialImageDimensions';\nimport useIMGNormalizedSource from './useIMGNormalizedSource';\nimport { ImageDimensions } from '../shared-types';\nimport useImageConcreteDimensions from './useImageConcreteDimensions';\nimport { getIMGState } from './getIMGState';\nimport useImageSpecifiedDimensions from './useImageSpecifiedDimensions';\n\nfunction getImageSizeAsync({\n uri,\n headers\n}: {\n headers: any;\n uri: string;\n}): Promise {\n return new Promise((onsuccess, onerror) => {\n const onImageDimensionsSuccess = (width: number, height: number) =>\n onsuccess({ width, height });\n if (headers) {\n Image.getSizeWithHeaders(uri, headers, onImageDimensionsSuccess, onerror);\n } else {\n Image.getSize(uri, onImageDimensionsSuccess, onerror);\n }\n });\n}\n\nfunction useImageNaturalDimensions

(props: {\n cachedNaturalDimensions?: ImageDimensions;\n source: ImageURISource;\n specifiedDimensions: IncompleteImageDimensions;\n}) {\n const { source, cachedNaturalDimensions } = props;\n const [naturalDimensions, setNaturalDimensions] = useState<\n P['cachedNaturalDimensions'] extends ImageDimensions\n ? ImageDimensions\n : ImageDimensions | null\n >((cachedNaturalDimensions as any) || null);\n const { width: cachedNaturalWidth, height: cachedNaturalHeight } =\n cachedNaturalDimensions || {};\n const [error, setError] = useState(null);\n useEffect(\n function resetOnURIChange() {\n setNaturalDimensions(\n (cachedNaturalWidth != null && cachedNaturalHeight != null\n ? { width: cachedNaturalWidth, height: cachedNaturalHeight }\n : null) as any\n );\n setError(null);\n },\n [cachedNaturalHeight, cachedNaturalWidth, source.uri]\n );\n return {\n onNaturalDimensions: setNaturalDimensions,\n onError: setError,\n naturalDimensions,\n error\n };\n}\n\nfunction useFetchedNaturalDimensions(props: {\n cachedNaturalDimensions?: ImageDimensions;\n source: ImageURISource;\n specifiedDimensions: IncompleteImageDimensions;\n}) {\n const { source, cachedNaturalDimensions } = props;\n const { error, naturalDimensions, onError, onNaturalDimensions } =\n useImageNaturalDimensions(props);\n const hasCachedDimensions = !!cachedNaturalDimensions;\n useEffect(\n function fetchPhysicalDimensions() {\n let cancelled = false;\n if (source.uri && !hasCachedDimensions) {\n getImageSizeAsync({ uri: source.uri, headers: source.headers })\n .then((dimensions) => !cancelled && onNaturalDimensions(dimensions))\n .catch((e) => !cancelled && onError(e || {}));\n return () => {\n cancelled = true;\n };\n }\n },\n [\n source.uri,\n source.headers,\n onNaturalDimensions,\n onError,\n hasCachedDimensions\n ]\n );\n return {\n naturalDimensions,\n error,\n onError,\n onNaturalDimensions\n };\n}\n\n/**\n * This hook will compute concrete dimensions from image natural dimensions and\n * constraints. It will fetch the image and get its dimensions.\n *\n * @remarks If you know the dimensions beforehand, use\n * {@link useIMGElementStateWithCache} instead to save a network request and\n * prevent a layout shift.\n */\nexport default function useIMGElementState(\n props: UseIMGElementStateProps\n): IMGElementState {\n const {\n alt,\n altColor,\n source,\n contentWidth,\n computeMaxWidth,\n objectFit,\n initialDimensions = defaultImageInitialDimensions,\n cachedNaturalDimensions\n } = props;\n const { flatStyle, specifiedDimensions } = useImageSpecifiedDimensions(props);\n const nomalizedSource = useIMGNormalizedSource({\n specifiedDimensions,\n source\n });\n const { naturalDimensions, onError, error } = useFetchedNaturalDimensions({\n source: nomalizedSource,\n specifiedDimensions,\n cachedNaturalDimensions\n });\n const concreteDimensions = useImageConcreteDimensions({\n flatStyle,\n naturalDimensions,\n specifiedDimensions,\n computeMaxWidth,\n contentWidth\n });\n\n return getIMGState({\n error,\n alt,\n altColor,\n concreteDimensions,\n containerStyle: flatStyle,\n initialDimensions,\n objectFit,\n onError,\n source: nomalizedSource\n });\n}\n","import { useMemo, useRef } from 'react';\nimport { useSharedProps } from '../context/SharedPropsProvider';\nimport {\n IncompleteImageDimensions,\n UseIMGElementStateProps\n} from './img-types';\n\nexport default function useIMGNormalizedSource({\n source,\n specifiedDimensions\n}: Pick & {\n specifiedDimensions: IncompleteImageDimensions;\n}) {\n const cachedDimensions = useRef(specifiedDimensions);\n const { provideEmbeddedHeaders } = useSharedProps();\n return useMemo(() => {\n if (source.uri && typeof provideEmbeddedHeaders === 'function') {\n const headers = provideEmbeddedHeaders(source.uri, 'img', {\n printWidth: cachedDimensions.current?.width || undefined,\n printHeight: cachedDimensions.current?.height || undefined\n });\n if (headers) {\n return {\n headers,\n ...source\n };\n }\n }\n return source;\n }, [provideEmbeddedHeaders, source]);\n}\n","import { useMemo } from 'react';\nimport { ImageStyle } from 'react-native';\nimport { ImageDimensions } from '../shared-types';\nimport {\n IncompleteImageDimensions,\n UseIMGElementStateProps\n} from './img-types';\n\nexport type ConcreteDimensionsProps = {\n flatStyle: ImageStyle;\n naturalDimensions: ImageDimensions | null;\n specifiedDimensions: IncompleteImageDimensions;\n} & Pick;\n\nfunction extractHorizontalSpace({\n marginHorizontal,\n leftMargin,\n rightMargin,\n margin\n}: any) {\n const realLeftMargin = leftMargin || marginHorizontal || margin || 0;\n const realRightMargin = rightMargin || marginHorizontal || margin || 0;\n return realLeftMargin + realRightMargin;\n}\n\nfunction scaleUp(\n minDimensions: ImageDimensions,\n desiredDimensions: ImageDimensions\n): ImageDimensions {\n const aspectRatio = desiredDimensions.width / desiredDimensions.height;\n if (desiredDimensions.width < minDimensions.width) {\n return scaleUp(minDimensions, {\n width: minDimensions.width,\n height: minDimensions.width / aspectRatio\n });\n }\n if (desiredDimensions.height < minDimensions.height) {\n return scaleUp(minDimensions, {\n height: minDimensions.height,\n width: minDimensions.height * aspectRatio\n });\n }\n return desiredDimensions;\n}\n\nfunction scaleDown(\n maxDimensions: ImageDimensions,\n desiredDimensions: ImageDimensions\n): ImageDimensions {\n const aspectRatio = desiredDimensions.width / desiredDimensions.height;\n if (desiredDimensions.width > maxDimensions.width) {\n return scaleDown(maxDimensions, {\n width: maxDimensions.width,\n height: maxDimensions.width / aspectRatio\n });\n }\n if (desiredDimensions.height > maxDimensions.height) {\n return scaleDown(maxDimensions, {\n height: maxDimensions.height,\n width: maxDimensions.height * aspectRatio\n });\n }\n return desiredDimensions;\n}\n\nfunction scale(\n { minBox, maxBox }: { maxBox: ImageDimensions; minBox: ImageDimensions },\n originalBox: ImageDimensions\n) {\n return scaleDown(maxBox, scaleUp(minBox, originalBox));\n}\n\nfunction computeConcreteDimensions(params: any) {\n const {\n computeMaxWidth,\n contentWidth,\n flattenStyles,\n naturalWidth,\n naturalHeight,\n specifiedWidth,\n specifiedHeight\n } = params;\n const horizontalSpace = extractHorizontalSpace(flattenStyles);\n const {\n maxWidth = Infinity,\n maxHeight = Infinity,\n minWidth = 0,\n minHeight = 0\n } = flattenStyles;\n const imagesMaxWidth =\n typeof contentWidth === 'number' ? computeMaxWidth(contentWidth) : Infinity;\n const minBox = {\n width: minWidth,\n height: minHeight\n };\n const maxBox = {\n width:\n Math.min(\n imagesMaxWidth,\n maxWidth,\n typeof specifiedWidth === 'number' ? specifiedWidth : Infinity\n ) - horizontalSpace,\n height: Math.min(\n typeof specifiedHeight === 'number' ? specifiedHeight : Infinity,\n maxHeight\n )\n };\n if (\n typeof specifiedWidth === 'number' &&\n typeof specifiedHeight === 'number'\n ) {\n return scale(\n { minBox, maxBox },\n {\n width: specifiedWidth,\n height: specifiedHeight\n }\n );\n }\n if (naturalWidth != null && naturalHeight != null) {\n return scale(\n { minBox, maxBox },\n {\n width: naturalWidth,\n height: naturalHeight\n }\n );\n }\n return null;\n}\n\nexport default function useImageConcreteDimensions<\n P extends ConcreteDimensionsProps\n>({\n flatStyle,\n naturalDimensions,\n specifiedDimensions,\n computeMaxWidth,\n contentWidth\n}: P): P['naturalDimensions'] extends ImageDimensions\n ? ImageDimensions\n : ImageDimensions | null {\n return useMemo(() => {\n return computeConcreteDimensions({\n flattenStyles: flatStyle,\n computeMaxWidth,\n contentWidth,\n naturalWidth: naturalDimensions?.width,\n naturalHeight: naturalDimensions?.height,\n specifiedWidth: specifiedDimensions.width,\n specifiedHeight: specifiedDimensions.height\n }) as any;\n }, [\n computeMaxWidth,\n contentWidth,\n flatStyle,\n naturalDimensions,\n specifiedDimensions.height,\n specifiedDimensions.width\n ]);\n}\n","import type {\n UseIMGElementStateProps,\n IMGElementState,\n IMGElementStateBase,\n IMGElementStateError,\n IMGElementStateSuccess,\n IMGElementStateLoading\n} from './img-types';\nimport extractImageStyleProps from './extractImageStyleProps';\nimport { ImageDimensions } from '../shared-types';\n\ninterface GetStateProps extends Omit {\n concreteDimensions: C;\n error: Error | null;\n initialDimensions: ImageDimensions;\n objectFit: UseIMGElementStateProps['objectFit'];\n onError?: (e: Error) => void;\n}\n\nexport function getIMGState(\n props: GetStateProps\n): IMGElementStateError | IMGElementStateSuccess;\nexport function getIMGState(\n props: GetStateProps\n): IMGElementState;\nexport function getIMGState({\n error,\n alt,\n altColor,\n source,\n containerStyle,\n concreteDimensions,\n initialDimensions,\n objectFit,\n onError\n}: GetStateProps): IMGElementState {\n if (error) {\n return {\n type: 'error',\n alt,\n altColor,\n source,\n error,\n containerStyle,\n dimensions: concreteDimensions ?? initialDimensions\n };\n }\n if (concreteDimensions != null) {\n return {\n type: 'success',\n alt,\n altColor,\n source,\n onError,\n containerStyle,\n imageStyle: extractImageStyleProps(containerStyle, objectFit),\n dimensions: concreteDimensions\n } as IMGElementStateSuccess;\n }\n return {\n type: 'loading',\n alt,\n altColor,\n source,\n containerStyle,\n dimensions: initialDimensions\n } as IMGElementStateLoading;\n}\n","import { useMemo } from 'react';\nimport {\n UseIMGElementStateProps,\n IncompleteImageDimensions\n} from './img-types';\nimport getDimensionsWithAspectRatio from './getDimensionsWithAspectRatio';\nimport { StyleSheet } from 'react-native';\n\nfunction normalizeSize(\n dimension: string | number | null | undefined,\n options: Partial<{\n containerDimension: number | null;\n enablePercentWidth: boolean;\n }>\n) {\n const containerDimension = options.containerDimension || null;\n const enablePercentWidth = options.enablePercentWidth || false;\n if (\n dimension === null ||\n dimension === undefined ||\n Number.isNaN(dimension)\n ) {\n return null;\n }\n if (typeof dimension === 'number') {\n return dimension;\n }\n if (\n dimension.search('%') !== -1 &&\n enablePercentWidth &&\n typeof containerDimension === 'number'\n ) {\n return (parseFloat(dimension) * containerDimension) / 100;\n } else if (dimension.trim().match(/^[\\d.]+$/)) {\n return parseFloat(dimension);\n }\n return null;\n}\n\n/**\n * Extract specified dimensions from props.\n */\nfunction deriveSpecifiedDimensionsFromProps({\n width,\n height,\n contentWidth,\n flatStyle,\n enableExperimentalPercentWidth: enablePercentWidth\n}: Pick<\n UseIMGElementStateProps,\n 'width' | 'height' | 'contentWidth' | 'enableExperimentalPercentWidth'\n> & { flatStyle: Record }): IncompleteImageDimensions {\n const normalizeOptionsWidth = {\n enablePercentWidth,\n containerDimension: contentWidth\n };\n const normalizeOptionsHeight = {\n enablePercentWidth: false\n };\n const widthProp = normalizeSize(width, normalizeOptionsWidth);\n const heightProp = normalizeSize(height, normalizeOptionsHeight);\n const styleWidth = normalizeSize(flatStyle.width, normalizeOptionsWidth);\n const styleHeight = normalizeSize(flatStyle.height, normalizeOptionsHeight);\n return getDimensionsWithAspectRatio(\n styleWidth ?? widthProp,\n styleHeight ?? heightProp,\n flatStyle.aspectRatio\n );\n}\n\nexport default function useImageSpecifiedDimensions(\n props: UseIMGElementStateProps\n) {\n const { contentWidth, enableExperimentalPercentWidth, style, width, height } =\n props;\n const flatStyle = useMemo(() => StyleSheet.flatten(style) || {}, [style]);\n const specifiedDimensions = useMemo(\n () =>\n deriveSpecifiedDimensionsFromProps({\n contentWidth,\n enableExperimentalPercentWidth,\n width,\n height,\n flatStyle\n }),\n [contentWidth, enableExperimentalPercentWidth, flatStyle, height, width]\n );\n return { flatStyle, specifiedDimensions };\n}\n","import React, { ReactElement, useCallback } from 'react';\nimport {\n Image,\n ImageErrorEventData,\n ImageStyle,\n NativeSyntheticEvent\n} from 'react-native';\nimport { IMGElementStateSuccess } from './img-types';\n\nconst defaultImageStyle: ImageStyle = { resizeMode: 'cover' };\n\n/**\n * Default success \"image\" view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentSuccess({\n source,\n imageStyle,\n dimensions,\n onError\n}: IMGElementStateSuccess): ReactElement {\n const onImageError = useCallback(\n ({ nativeEvent: { error } }: NativeSyntheticEvent) =>\n onError(error),\n [onError]\n );\n return (\n \n );\n}\n","import React, {\n ComponentType,\n PropsWithChildren,\n ReactElement,\n useMemo\n} from 'react';\nimport { View, StyleSheet, ViewStyle, ViewProps } from 'react-native';\nimport GenericPressable from '../GenericPressable';\nimport { IMGElementProps } from './img-types';\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignSelf: 'stretch',\n justifyContent: 'center'\n }\n});\n\n/**\n * Container for the {@link IMGElement} component.\n */\nexport default function IMGElementContainer({\n style,\n onPress,\n testID,\n children,\n ...otherProps\n}: PropsWithChildren<\n Pick &\n Omit & { style: ViewStyle }\n>): ReactElement {\n const containerStyle = useMemo(() => {\n const { width, height, ...remainingStyle } = style;\n return [styles.container, remainingStyle];\n }, [style]);\n const Container: ComponentType =\n typeof onPress === 'function' ? GenericPressable : View;\n return React.createElement(\n Container,\n { ...otherProps, style: containerStyle, onPress, testID },\n children\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport {\n Platform,\n TouchableHighlight,\n TouchableNativeFeedback,\n View\n} from 'react-native';\nimport { useSharedProps } from './context/SharedPropsProvider';\nimport { GenericPressableProps } from './shared-types';\n\nexport default function GenericPressable({\n style,\n children,\n borderless = false,\n ...otherProps\n}: PropsWithChildren) {\n const { pressableHightlightColor, GenericPressable: UserProvidedPressable } =\n useSharedProps();\n if (UserProvidedPressable) {\n return (\n \n {children}\n \n );\n }\n if (Platform.OS === 'android') {\n // TouchableNativeFeedback does not support a\n // style prop. So we must wrap it inside a View.\n return (\n \n \n {children}\n \n \n );\n }\n return (\n \n {children}\n \n );\n}\n","import React, { PropsWithChildren, ReactElement } from 'react';\nimport { View } from 'react-native';\nimport { IMGElementStateLoading } from './img-types';\n\n/**\n * Default loading view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentLoading({\n dimensions,\n children\n}: PropsWithChildren): ReactElement {\n return (\n \n {children}\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { IMGElementStateError } from './img-types';\nimport IMGElementContentAlt from './IMGElementContentAlt';\n\n/**\n * Default error view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentError(\n props: IMGElementStateError\n): ReactElement {\n return ;\n}\n","import React, { PropsWithChildren, ReactElement } from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport { IMGElementStateBase } from './img-types';\n\nconst styles = StyleSheet.create({\n altBox: {\n borderWidth: StyleSheet.hairlineWidth,\n overflow: 'hidden',\n justifyContent: 'center'\n },\n altText: { textAlign: 'center', fontStyle: 'italic' }\n});\n\n/**\n * Alt view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentAlt({\n dimensions,\n alt,\n altColor,\n testID,\n children\n}: PropsWithChildren): ReactElement {\n return (\n \n {alt}\n {children}\n \n );\n}\n","import { useContext } from 'react';\nimport contentWidthContext from '../context/contentWidthContext';\n\n/**\n * A hook to get access to the ambient `contentWidth`.\n *\n * @returns The contentWidth available in context.\n *\n * @public\n */\nexport default function useContentWidth() {\n return useContext(contentWidthContext);\n}\n","import React from 'react';\nimport { Dimensions } from 'react-native';\n\nconst contentWidthContext = React.createContext(Dimensions.get('window').width);\n\nexport default contentWidthContext;\n","import React from 'react';\nimport { TBlock } from '@native-html/transient-render-engine';\nimport { InternalBlockRenderer } from '../render/render-types';\nimport {\n InternalRendererProps,\n DefaultSupportedListStyleType\n} from '../shared-types';\nimport OLElement, { OLElementProps } from '../elements/OLElement';\nimport { useRendererProps } from '../context/RenderersPropsProvider';\n\nfunction getFallbackListStyleTypeFromNestLevel(\n nestLevel: number\n): DefaultSupportedListStyleType {\n switch (nestLevel % 3) {\n case 0:\n return 'decimal';\n\n /* istanbul ignore next */\n case 1:\n return 'upper-alpha';\n\n /* istanbul ignore next */\n default:\n return 'lower-alpha';\n }\n}\n\nexport function useOLElementProps(\n props: InternalRendererProps\n): OLElementProps {\n const config = useRendererProps('ol');\n return {\n ...props,\n getFallbackListStyleTypeFromNestLevel,\n ...config\n };\n}\n\nconst OLRenderer: InternalBlockRenderer = (props) => {\n return React.createElement(OLElement, useOLElementProps(props));\n};\n\nexport default OLRenderer;\n","import React from 'react';\nimport ListElement, { ListElementProps } from './ListElement';\n\nexport type OLElementProps = Omit, 'listType'>;\nexport default function OLElement(props: OLElementProps) {\n return React.createElement(ListElement, { ...props, listType: 'ol' });\n}\n","import { StyleSheet, View } from 'react-native';\nimport React from 'react';\nimport { TBlock, TNode } from '@native-html/transient-render-engine';\nimport { MarkedListItem, useMarkedList } from '@jsamr/react-native-li';\nimport type {\n DefaultSupportedListStyleType,\n InternalRendererProps,\n ListElementConfig,\n TChildProps\n} from '../shared-types';\nimport { useTChildrenRenderer } from '../context/TChildrenRendererContext';\nimport { DEFAULT_TEXT_COLOR } from '../constants';\nimport pick from 'ramda/src/pick';\nimport { useListStyleSpecs } from '../context/ListStyleSpecsProvider';\n\nexport interface ListElementProps\n extends InternalRendererProps,\n ListElementConfig {\n listType: T;\n}\n\nfunction getStartIndex(tnode: TNode) {\n const parsedIndex = tnode.attributes.start\n ? Number(tnode.attributes.start)\n : Number.NaN;\n return Number.isNaN(parsedIndex) ? 1 : parsedIndex;\n}\n\nconst pickMarkerTextStyles = pick([\n 'fontStyle',\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontVariant',\n 'color',\n 'lineHeight'\n]);\n\nfunction extractMarkerTextStyle(tnode: TNode) {\n return Object.assign(\n {\n lineHeight: 14 * 1.3,\n fontSize: 14,\n color: DEFAULT_TEXT_COLOR\n },\n pickMarkerTextStyles(tnode.styles.nativeTextFlow)\n );\n}\n\nexport function getMarkerBoxStyle(\n markerWidth: number | false,\n paddingValue: string | number | undefined\n) {\n const markerBoxWidth =\n typeof markerWidth === 'number'\n ? typeof paddingValue === 'number'\n ? Math.max(paddingValue, markerWidth)\n : markerWidth\n : paddingValue;\n return { width: markerBoxWidth };\n}\n\nconst listStyleTypeFallbackRecord: Record<\n 'ol' | 'ul',\n DefaultSupportedListStyleType\n> = {\n ol: 'decimal',\n ul: 'disc'\n};\n\nexport default function ListElement({\n tnode,\n TDefaultRenderer,\n listType,\n style,\n getFallbackListStyleTypeFromNestLevel,\n markerBoxStyle,\n markerTextStyle: providedMarkerTextStyle,\n enableExperimentalRtl = false,\n enableRemoveTopMarginIfNested = true,\n enableRemoveBottomMarginIfNested = true,\n enableDynamicMarkerBoxWidth = false,\n ...props\n}: ListElementProps<'ol' | 'ul'>) {\n const listStyleSpecs = useListStyleSpecs();\n const markers = tnode.markers;\n const nestLevel =\n listType === 'ol' ? markers.olNestLevel : markers.ulNestLevel;\n const TChildrenRenderer = useTChildrenRenderer();\n const rtl =\n enableExperimentalRtl &&\n (style.direction === 'rtl' || markers.direction === 'rtl');\n const removeTopMarginStyle =\n enableRemoveTopMarginIfNested &&\n tnode.parent?.tagName === 'li' &&\n tnode.nodeIndex === 0\n ? styles.zeroMarginTop\n : null;\n const removeBottomMarginStyle =\n enableRemoveBottomMarginIfNested &&\n tnode.parent?.tagName === 'li' &&\n tnode.nodeIndex === tnode.parent?.children.length - 1\n ? styles.zeroMarginBottom\n : null;\n const ownListType = tnode.styles.webTextFlow.listStyleType as\n | DefaultSupportedListStyleType\n | undefined;\n const selectedListType =\n getFallbackListStyleTypeFromNestLevel!(nestLevel) ||\n ownListType ||\n listStyleTypeFallbackRecord[listType];\n const listStyleType = ownListType || selectedListType;\n if (\n typeof __DEV__ === 'boolean' &&\n __DEV__ &&\n !(listStyleType in listStyleSpecs)\n ) {\n if (listStyleType.match(/^(\"|')/)) {\n console.warn(\n \"This library doesn't support strings for list-style-type CSS properties.\"\n );\n } else {\n console.warn(\n `list-style-type \"${listStyleType}\" is not handled by react-native-render-html. ` +\n 'You can easily provide support for this style via \"customListStyleSpecs\" prop.'\n );\n }\n }\n const spec =\n listStyleType in listStyleSpecs\n ? listStyleSpecs[listStyleType]\n : listStyleSpecs[selectedListType];\n const counterRenderer = spec.counterStyleRenderer;\n const startIndex = getStartIndex(tnode);\n const markerTextStyle =\n typeof providedMarkerTextStyle === 'object' && providedMarkerTextStyle\n ? { ...extractMarkerTextStyle(tnode), ...providedMarkerTextStyle }\n : extractMarkerTextStyle(tnode);\n const itemProps = useMarkedList({\n counterRenderer,\n startIndex,\n markerTextStyle,\n markerBoxStyle,\n rtlLineReversed: rtl,\n rtlMarkerReversed: rtl,\n length: tnode.children.length,\n dynamicMarkerBoxWidth: enableDynamicMarkerBoxWidth,\n renderMarker: spec.renderMarker\n });\n const markerWidth = itemProps.markerTextWidth;\n const fixedPaddingRule = rtl\n ? ('paddingRight' as const)\n : ('paddingLeft' as const);\n // Fallback to padding-left value on RTL mode\n const paddingValue = style[fixedPaddingRule] ?? style.paddingLeft;\n const markerBoxWidthStyle = getMarkerBoxStyle(markerWidth, paddingValue);\n const renderChild = ({ childElement, key, index }: TChildProps) => (\n \n {childElement}\n \n );\n\n const dynamicPaddingStyle = {\n position: 'relative' as const,\n [fixedPaddingRule]: 0\n };\n return (\n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n zeroMarginTop: { marginTop: 0 },\n zeroMarginBottom: { marginBottom: 0 },\n shrink: { flexShrink: 1 }\n});\n","/* eslint-disable react-native/no-inline-styles */\nimport { MarkerBoxProps } from '@jsamr/react-native-li';\nimport { mapObjIndexed } from 'ramda';\nimport React, {\n createContext,\n PropsWithChildren,\n useContext,\n useMemo\n} from 'react';\nimport { Text, View } from 'react-native';\nimport defaultListStyleSpecs from '../elements/defaultListStyleSpecs';\nimport { ListStyleSpec, UnitaryListStyleSpec } from '../shared-types';\nimport { useSharedProps } from './SharedPropsProvider';\n\nconst listStyleSpecsContext = createContext<\n Record<\n string,\n ListStyleSpec & { renderMarker?: (props: MarkerBoxProps) => any }\n >\n>(defaultListStyleSpecs);\n\nexport function useListStyleSpecs() {\n return useContext(listStyleSpecsContext);\n}\n\nfunction createSymbolicMarkerRenderer({\n Component,\n counterStyleRenderer\n}: UnitaryListStyleSpec) {\n const prefix = counterStyleRenderer.renderPrefix();\n const suffix = counterStyleRenderer.renderSuffix();\n return ({\n style,\n markerTextStyle,\n counterIndex,\n rtlMarkerReversed\n }: MarkerBoxProps) => {\n return (\n \n {!!prefix && {prefix}}\n {React.createElement(Component, {\n ...(markerTextStyle as any),\n index: counterIndex\n })}\n {!!suffix && {suffix}}\n \n );\n };\n}\n\nconst makeMarkerRenderers = mapObjIndexed((value: ListStyleSpec) => {\n if (value.type === 'unitary') {\n return {\n ...value,\n renderMarker: createSymbolicMarkerRenderer(value)\n };\n }\n return value;\n});\n\nexport default function ListStyleSpecsProvider({\n children\n}: PropsWithChildren<{}>) {\n const { customListStyleSpecs } = useSharedProps();\n const mergedListStyleSpecs = useMemo(() => {\n return makeMarkerRenderers(\n customListStyleSpecs != null\n ? { ...defaultListStyleSpecs, ...customListStyleSpecs }\n : defaultListStyleSpecs\n );\n }, [customListStyleSpecs]);\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { InternalBlockRenderer } from '../render/render-types';\nimport {\n InternalRendererProps,\n DefaultSupportedListStyleType\n} from '../shared-types';\nimport { TBlock } from '@native-html/transient-render-engine';\nimport ULElement, { ULElementProps } from '../elements/ULElement';\nimport { useRendererProps } from '../context/RenderersPropsProvider';\n\nfunction getFallbackListStyleTypeFromNestLevel(\n nestLevel: number\n): DefaultSupportedListStyleType {\n switch (nestLevel % 3) {\n case 0:\n return 'disc';\n\n /* istanbul ignore next */\n case 1:\n return 'circle';\n\n /* istanbul ignore next */\n default:\n return 'square';\n }\n}\n\nexport function useULElementProps(\n props: InternalRendererProps\n): ULElementProps {\n const config = useRendererProps('ul');\n return {\n ...props,\n getFallbackListStyleTypeFromNestLevel,\n ...config\n };\n}\n\nconst ULRenderer: InternalBlockRenderer = (props) => {\n return React.createElement(ULElement, useULElementProps(props));\n};\n\nexport default ULRenderer;\n","import React from 'react';\nimport ListElement, { ListElementProps } from './ListElement';\n\nexport type ULElementProps = Omit, 'listType'>;\n\nexport default function ULElement(props: ULElementProps) {\n return React.createElement(ListElement, {\n ...props,\n listType: 'ul'\n });\n}\n","import { TNode } from '@native-html/transient-render-engine';\nimport getCollapsedMarginTop from './getCollapsedMarginTop';\n\nfunction isCollapsible(tnode: TNode) {\n return tnode.type === 'block' || tnode.type === 'phrasing';\n}\n\n/**\n * Compute top collapsed margin for the nth {@link TNode}-child of a list of\n * TNodes.\n *\n * @param n - The index for which the top margin should be collapsed.\n * @param tchildren - The list of {@link TNode} children.\n * @returns `null` when no margin collapsing should apply, a number otherwise.\n * @public\n */\nexport default function collapseTopMarginForChild(\n n: number,\n tchildren: readonly TNode[]\n): number | null {\n const childTnode = tchildren[n];\n if (isCollapsible(childTnode) && n > 0 && isCollapsible(tchildren[n - 1])) {\n return getCollapsedMarginTop(tchildren[n - 1], childTnode);\n }\n return null;\n}\n","import React from 'react';\nimport { ActivityIndicator, StyleSheet, Text, View } from 'react-native';\nimport { RenderHTMLConfig, HTMLSourceUri } from '../shared-types';\n\nconst styles = StyleSheet.create({\n alignCenter: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center'\n },\n errorText: {\n fontStyle: 'italic',\n fontSize: 16\n }\n});\n\nexport function defaultRenderError(source: HTMLSourceUri) {\n return (\n \n \n Failed to load HTML from {source.uri}\n \n \n );\n}\n\nexport function defaultRenderLoading() {\n return (\n \n \n \n );\n}\n\nconst sourceLoaderContext = React.createContext<\n Pick, 'remoteErrorView' | 'remoteLoadingView'>\n>({\n remoteErrorView: defaultRenderError,\n remoteLoadingView: defaultRenderLoading\n});\n\nexport default sourceLoaderContext;\n","import equals from 'ramda/src/equals';\nimport React, { memo, ReactElement, useMemo } from 'react';\nimport { Dimensions } from 'react-native';\nimport PropTypes from 'prop-types';\nimport ttreeEventsContext from './context/ttreeEventsContext';\nimport isUriSource from './helpers/isUriSource';\nimport { SourceLoaderProps, TTreeEvents } from './internal-types';\nimport {\n HTMLSourceDom,\n HTMLSourceInline,\n RenderHTMLSourceProps,\n HTMLSourceUri,\n HTMLSource\n} from './shared-types';\nimport SourceLoaderUri from './SourceLoaderUri';\nimport SourceLoaderInline from './SourceLoaderInline';\nimport SourceLoaderDom from './SourceLoaderDom';\nimport debugMessage from './debugMessages';\nimport contentWidthContext from './context/contentWidthContext';\nimport isDomSource from './helpers/isDomSource';\nimport useProfiler from './hooks/useProfiler';\n\nexport type RenderHTMLSourcePropTypes = Record<\n keyof RenderHTMLSourceProps,\n any\n>;\n\nexport const renderSourcePropTypes: RenderHTMLSourcePropTypes = {\n source: PropTypes.oneOfType([\n PropTypes.shape({\n html: PropTypes.string.isRequired,\n baseUrl: PropTypes.string\n }),\n PropTypes.shape({\n dom: PropTypes.object.isRequired,\n baseUrl: PropTypes.string\n }),\n PropTypes.shape({\n uri: PropTypes.string.isRequired,\n method: PropTypes.string,\n body: PropTypes.any,\n headers: PropTypes.object\n })\n ]),\n onTTreeChange: PropTypes.func,\n onHTMLLoaded: PropTypes.func,\n onDocumentMetadataLoaded: PropTypes.func,\n contentWidth: PropTypes.number\n};\n\nfunction isEmptySource(source: undefined | HTMLSource) {\n return (\n !source ||\n (typeof (source as HTMLSourceUri).uri !== 'string' &&\n typeof (source as HTMLSourceInline).html !== 'string' &&\n !(source as HTMLSourceDom).dom)\n );\n}\n\nfunction RawSourceLoader({\n source,\n ...props\n}: SourceLoaderProps): ReactElement | null {\n if (isEmptySource(source)) {\n /* istanbul ignore next */\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n console.warn(debugMessage.noSource);\n }\n return null;\n }\n if (isUriSource(source)) {\n return React.createElement(SourceLoaderUri, { source, ...props });\n }\n if (isDomSource(source)) {\n return React.createElement(SourceLoaderDom, { source, ...props });\n }\n return React.createElement(SourceLoaderInline, { source, ...props });\n}\n\n// check if for each key of two objects, the values are equal\nfunction shallowEqual(prop1: any, prop2: any) {\n if (!equals(Object.keys(prop1), Object.keys(prop2))) {\n return false;\n }\n for (const key in prop1) {\n if (prop1[key] !== prop2[key]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * A React component to render HTML snippets.\n *\n * @remarks This component is useful when you have to load dozens of HTML\n * snippets with the same config. Performance is expected to improve in such\n * scenarios.\n *\n * @warning This component requires to have {@link TRenderEngineProvider}\n * and {@link RenderHTMLConfigProvider} as parents.\n */\nconst RenderHTMLSource = memo(\n function RenderHtmlSource({\n onDocumentMetadataLoaded,\n onTTreeChange,\n contentWidth,\n ...props\n }: RenderHTMLSourceProps) {\n const profile = useProfiler({\n prop: 'onDocumentMetadataLoaded or onTTreeChange'\n });\n const ttreeEvents: TTreeEvents = useMemo(() => {\n typeof __DEV__ === 'boolean' && __DEV__ && profile();\n return {\n onDocumentMetadataLoaded,\n onTTreeChange\n };\n }, [onDocumentMetadataLoaded, onTTreeChange, profile]);\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n if (!(typeof contentWidth === 'number')) {\n console.warn(debugMessage.contentWidth);\n }\n }\n return (\n \n \n {React.createElement(RawSourceLoader, props)}\n \n \n );\n },\n ({ source: prevSource, ...prev }, { source: currSource, ...curr }) => {\n return shallowEqual(prevSource, currSource) && shallowEqual(prev, curr);\n }\n);\n\n/**\n * @ignore\n */\n(RenderHTMLSource as any).propTypes = renderSourcePropTypes;\n\nexport default RenderHTMLSource;\n","'use strict'\n\nmodule.exports = encode\n\n// Encode special characters in `value`.\nfunction encode(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n )\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\nfunction charactersToExpression(subset) {\n var groups = []\n var index = -1\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'))\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n","module.exports = formatPretty\n\nvar toHexadecimal = require('./to-hexadecimal')\nvar toDecimal = require('./to-decimal')\nvar toNamed = require('./to-named')\n\n// Encode `character` according to `options`.\nfunction formatPretty(code, next, options) {\n var named\n var numeric\n var decimal\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n )\n }\n\n if (options.useShortestReferences || !named) {\n numeric = toHexadecimal(code, next, options.omitOptionalSemicolons)\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (options.useShortestReferences) {\n decimal = toDecimal(code, next, options.omitOptionalSemicolons)\n\n if (decimal.length < numeric.length) {\n numeric = decimal\n }\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\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;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, 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 _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;","/* 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","/* 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","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = global || self, global.deepmerge = factory());\n}(this, function () { 'use strict';\n\n\tvar isMergeableObject = function isMergeableObject(value) {\n\t\treturn isNonNullObject(value)\n\t\t\t&& !isSpecial(value)\n\t};\n\n\tfunction isNonNullObject(value) {\n\t\treturn !!value && typeof value === 'object'\n\t}\n\n\tfunction isSpecial(value) {\n\t\tvar stringValue = Object.prototype.toString.call(value);\n\n\t\treturn stringValue === '[object RegExp]'\n\t\t\t|| stringValue === '[object Date]'\n\t\t\t|| isReactElement(value)\n\t}\n\n\t// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\tvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\n\tvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\n\tfunction isReactElement(value) {\n\t\treturn value.$$typeof === REACT_ELEMENT_TYPE\n\t}\n\n\tfunction emptyTarget(val) {\n\t\treturn Array.isArray(val) ? [] : {}\n\t}\n\n\tfunction cloneUnlessOtherwiseSpecified(value, options) {\n\t\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t\t: value\n\t}\n\n\tfunction defaultArrayMerge(target, source, options) {\n\t\treturn target.concat(source).map(function(element) {\n\t\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t\t})\n\t}\n\n\tfunction getMergeFunction(key, options) {\n\t\tif (!options.customMerge) {\n\t\t\treturn deepmerge\n\t\t}\n\t\tvar customMerge = options.customMerge(key);\n\t\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n\t}\n\n\tfunction getEnumerableOwnPropertySymbols(target) {\n\t\treturn Object.getOwnPropertySymbols\n\t\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t\t})\n\t\t\t: []\n\t}\n\n\tfunction getKeys(target) {\n\t\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n\t}\n\n\tfunction mergeObject(target, source, options) {\n\t\tvar destination = {};\n\t\tif (options.isMergeableObject(target)) {\n\t\t\tgetKeys(target).forEach(function(key) {\n\t\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t\t});\n\t\t}\n\t\tgetKeys(source).forEach(function(key) {\n\t\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t\t} else {\n\t\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t\t}\n\t\t});\n\t\treturn destination\n\t}\n\n\tfunction deepmerge(target, source, options) {\n\t\toptions = options || {};\n\t\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\t\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\t\tvar sourceIsArray = Array.isArray(source);\n\t\tvar targetIsArray = Array.isArray(target);\n\t\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\t\tif (!sourceAndTargetTypesMatch) {\n\t\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t\t} else if (sourceIsArray) {\n\t\t\treturn options.arrayMerge(target, source, options)\n\t\t} else {\n\t\t\treturn mergeObject(target, source, options)\n\t\t}\n\t}\n\n\tdeepmerge.all = function deepmergeAll(array, options) {\n\t\tif (!Array.isArray(array)) {\n\t\t\tthrow new Error('first argument should be an array')\n\t\t}\n\n\t\treturn array.reduce(function(prev, next) {\n\t\t\treturn deepmerge(prev, next, options)\n\t\t}, {})\n\t};\n\n\tvar deepmerge_1 = deepmerge;\n\n\treturn deepmerge_1;\n\n}));\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { createNavigatorFactory, StackActions, StackRouter, useNavigationBuilder } from '@react-navigation/native';\nimport * as React from 'react';\nimport warnOnce from 'warn-once';\nimport StackView from '../views/Stack/StackView';\nfunction StackNavigator(_ref) {\n let {\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n ...rest\n } = _ref;\n // @ts-expect-error: mode is deprecated\n const mode = rest.mode;\n warnOnce(mode != null, `Stack Navigator: 'mode=\"${mode}\"' is deprecated. Use 'presentation: \"${mode}\"' in 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/stack-navigator#presentation for more details.`);\n\n // @ts-expect-error: headerMode='none' is deprecated\n const headerMode = rest.headerMode;\n warnOnce(headerMode === 'none', `Stack Navigator: 'headerMode=\"none\"' is deprecated. Use 'headerShown: false' in 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#headershown for more details.`);\n warnOnce(headerMode != null && headerMode !== 'none', `Stack Navigator: 'headerMode' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#headermode for more details.`);\n\n // @ts-expect-error: headerMode='none' is deprecated\n const keyboardHandlingEnabled = rest.keyboardHandlingEnabled;\n warnOnce(keyboardHandlingEnabled !== undefined, `Stack Navigator: 'keyboardHandlingEnabled' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#keyboardhandlingenabled for more details.`);\n const defaultScreenOptions = {\n presentation: mode,\n headerShown: headerMode ? headerMode !== 'none' : true,\n headerMode: headerMode && headerMode !== 'none' ? headerMode : undefined,\n keyboardHandlingEnabled\n };\n const {\n state,\n descriptors,\n navigation,\n NavigationContent\n } = useNavigationBuilder(StackRouter, {\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n defaultScreenOptions\n });\n React.useEffect(() => {\n var _navigation$addListen;\n return (// @ts-expect-error: there may not be a tab navigator in parent\n (_navigation$addListen = navigation.addListener) === null || _navigation$addListen === void 0 ? void 0 : _navigation$addListen.call(navigation, 'tabPress', e => {\n const isFocused = navigation.isFocused();\n\n // Run the operation in the next frame so we're sure all listeners have been run\n // This is necessary to know if preventDefault() has been called\n requestAnimationFrame(() => {\n if (state.index > 0 && isFocused && !e.defaultPrevented) {\n // When user taps on already focused tab and we're inside the tab,\n // reset the stack to replicate native behaviour\n navigation.dispatch({\n ...StackActions.popToTop(),\n target: state.key\n });\n }\n });\n })\n );\n }, [navigation, state.index, state.key]);\n return /*#__PURE__*/React.createElement(NavigationContent, null, /*#__PURE__*/React.createElement(StackView, _extends({}, rest, {\n state: state,\n descriptors: descriptors,\n navigation: navigation\n })));\n}\nexport default createNavigatorFactory(StackNavigator);\n//# sourceMappingURL=createStackNavigator.js.map","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst 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\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\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\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\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\tconst l = (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\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 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\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\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst 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\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\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\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst 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\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet 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\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let 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\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\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = 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\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst 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\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (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\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\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\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 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\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet 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 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (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\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = 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\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet 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\tconst r = args[0];\n\tconst g = args[1];\n\tconst 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\tconst 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\tlet 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\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst 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\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst 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\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst 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\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet 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;\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\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\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\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet 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\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\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\t/* eslint-enable max-statements-per-line */\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\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet 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\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet 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\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet 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 = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\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\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_native_1 = require(\"react-native\");\nvar OSNotification_1 = __importDefault(require(\"../OSNotification\"));\nvar RNOneSignal = react_native_1.NativeModules.OneSignal;\nvar NotificationWillDisplayEvent = /** @class */ (function () {\n function NotificationWillDisplayEvent(displayEvent) {\n this.notification = new OSNotification_1.default(displayEvent);\n }\n NotificationWillDisplayEvent.prototype.preventDefault = function () {\n RNOneSignal.preventDefault(this.notification.notificationId);\n return;\n };\n NotificationWillDisplayEvent.prototype.getNotification = function () {\n return this.notification;\n };\n return NotificationWillDisplayEvent;\n}());\nexports.default = NotificationWillDisplayEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_native_1 = require(\"react-native\");\nvar RNOneSignal = react_native_1.NativeModules.OneSignal;\nvar OSNotification = /** @class */ (function () {\n function OSNotification(receivedEvent) {\n this.body = receivedEvent.body;\n this.sound = receivedEvent.sound;\n this.title = receivedEvent.title;\n this.launchURL = receivedEvent.launchURL;\n this.rawPayload = receivedEvent.rawPayload;\n this.actionButtons = receivedEvent.actionButtons;\n this.additionalData = receivedEvent.additionalData;\n this.notificationId = receivedEvent.notificationId;\n if (react_native_1.Platform.OS === 'android') {\n this.groupKey = receivedEvent.groupKey;\n this.ledColor = receivedEvent.ledColor;\n this.priority = receivedEvent.priority;\n this.smallIcon = receivedEvent.smallIcon;\n this.largeIcon = receivedEvent.largeIcon;\n this.bigPicture = receivedEvent.bigPicture;\n this.collapseId = receivedEvent.collapseId;\n this.groupMessage = receivedEvent.groupMessage;\n this.fromProjectNumber = receivedEvent.fromProjectNumber;\n this.smallIconAccentColor = receivedEvent.smallIconAccentColor;\n this.lockScreenVisibility = receivedEvent.lockScreenVisibility;\n this.androidNotificationId = receivedEvent.androidNotificationId;\n }\n if (react_native_1.Platform.OS === 'ios') {\n this.badge = receivedEvent.badge;\n this.category = receivedEvent.category;\n this.threadId = receivedEvent.threadId;\n this.subtitle = receivedEvent.subtitle;\n this.templateId = receivedEvent.templateId;\n this.attachments = receivedEvent.attachments;\n this.templateName = receivedEvent.templateName;\n this.mutableContent = receivedEvent.mutableContent;\n this.badgeIncrement = receivedEvent.badgeIncrement;\n this.contentAvailable = receivedEvent.contentAvailable;\n this.relevanceScore = receivedEvent.relevanceScore;\n this.interruptionLevel = receivedEvent.interruptionLevel;\n }\n }\n OSNotification.prototype.display = function () {\n RNOneSignal.displayNotification(this.notificationId);\n return;\n };\n return OSNotification;\n}());\nexports.default = OSNotification;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SUBSCRIPTION_CHANGED = exports.PERMISSION_CHANGED = exports.IN_APP_MESSAGE_DID_DISMISS = exports.IN_APP_MESSAGE_WILL_DISMISS = exports.IN_APP_MESSAGE_DID_DISPLAY = exports.IN_APP_MESSAGE_WILL_DISPLAY = exports.IN_APP_MESSAGE_CLICKED = exports.NOTIFICATION_CLICKED = exports.NOTIFICATION_WILL_DISPLAY = void 0;\nexports.NOTIFICATION_WILL_DISPLAY = 'OneSignal-notificationWillDisplayInForeground';\nexports.NOTIFICATION_CLICKED = 'OneSignal-notificationClicked';\nexports.IN_APP_MESSAGE_CLICKED = 'OneSignal-inAppMessageClicked';\nexports.IN_APP_MESSAGE_WILL_DISPLAY = 'OneSignal-inAppMessageWillDisplay';\nexports.IN_APP_MESSAGE_DID_DISPLAY = 'OneSignal-inAppMessageDidDisplay';\nexports.IN_APP_MESSAGE_WILL_DISMISS = 'OneSignal-inAppMessageWillDismiss';\nexports.IN_APP_MESSAGE_DID_DISMISS = 'OneSignal-inAppMessageDidDismiss';\nexports.PERMISSION_CHANGED = 'OneSignal-permissionChanged';\nexports.SUBSCRIPTION_CHANGED = 'OneSignal-subscriptionChanged';\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction filterUniqueArray(arr) {\n return arr.filter(function (val, index) {\n return arr.lastIndexOf(val) === index;\n });\n}\n\nexport default function assignStyle(base) {\n for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; ++i) {\n var style = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n\n for (var property in style) {\n var value = style[property];\n var baseValue = base[property];\n\n if (baseValue && value) {\n if (Array.isArray(baseValue)) {\n base[property] = filterUniqueArray(baseValue.concat(value));\n continue;\n }\n\n if (Array.isArray(value)) {\n base[property] = filterUniqueArray([baseValue].concat(_toConsumableArray(value)));\n continue;\n }\n\n if (_typeof(value) === 'object') {\n base[property] = assignStyle({}, baseValue, value);\n continue;\n }\n }\n\n base[property] = value;\n }\n }\n\n return base;\n}","var DASH = /-([a-z])/g;\nvar MS = /^Ms/g;\nvar cache = {};\n\nfunction toUpper(match) {\n return match[1].toUpperCase();\n}\n\nexport default function camelCaseProperty(property) {\n if (cache.hasOwnProperty(property)) {\n return cache[property];\n }\n\n var camelProp = property.replace(DASH, toUpper).replace(MS, 'ms');\n cache[property] = camelProp;\n return camelProp;\n}","import hyphenateStyleName from 'hyphenate-style-name';\nexport default function hyphenateProperty(property) {\n return hyphenateStyleName(property);\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function cssifyDeclaration(property, value) {\n return hyphenateProperty(property) + ':' + value;\n}","import cssifyDeclaration from './cssifyDeclaration';\nexport default function cssifyObject(style) {\n var css = '';\n\n for (var property in style) {\n var value = style[property];\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n continue;\n } // prevents the semicolon after\n // the last rule declaration\n\n\n if (css) {\n css += ';';\n }\n\n css += cssifyDeclaration(property, value);\n }\n\n return css;\n}","var RE = /^(Webkit|Moz|O|ms)/;\nexport default function isPrefixedProperty(property) {\n return RE.test(property);\n}","var RE = /-webkit-|-moz-|-ms-/;\nexport default function isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","import hyphenateProperty from './hyphenateProperty';\nvar unitlessProperties = {\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n fontWeight: true,\n lineHeight: true,\n opacity: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\nvar prefixedUnitlessProperties = ['animationIterationCount', 'boxFlex', 'boxFlexGroup', 'boxOrdinalGroup', 'columnCount', 'flex', 'flexGrow', 'flexPositive', 'flexShrink', 'flexNegative', 'flexOrder', 'gridColumn', 'gridColumnEnd', 'gridColumnStart', 'gridRow', 'gridRowEnd', 'gridRowStart', 'lineClamp', 'order'];\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\nfunction getPrefixedProperty(prefix, property) {\n return prefix + property.charAt(0).toUpperCase() + property.slice(1);\n} // add all prefixed properties to the unitless properties\n\n\nfor (var i = 0, len = prefixedUnitlessProperties.length; i < len; ++i) {\n var property = prefixedUnitlessProperties[i];\n unitlessProperties[property] = true;\n\n for (var j = 0, jLen = prefixes.length; j < jLen; ++j) {\n unitlessProperties[getPrefixedProperty(prefixes[j], property)] = true;\n }\n} // add all hypenated properties as well\n\n\nfor (var _property in unitlessProperties) {\n unitlessProperties[hyphenateProperty(_property)] = true;\n}\n\nexport default function isUnitlessProperty(property) {\n return unitlessProperties.hasOwnProperty(property);\n}","var RE = /^(ms|Webkit|Moz|O)/;\nexport default function unprefixProperty(property) {\n var propertyWithoutPrefix = property.replace(RE, '');\n return propertyWithoutPrefix.charAt(0).toLowerCase() + propertyWithoutPrefix.slice(1);\n}","import camelCaseProperty from './camelCaseProperty';\nimport unprefixProperty from './unprefixProperty';\nexport default function normalizeProperty(property) {\n return unprefixProperty(camelCaseProperty(property));\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function resolveArrayValue(property, value) {\n return value.join(';' + hyphenateProperty(property) + ':');\n}","var RE = /(-ms-|-webkit-|-moz-|-o-)/g;\nexport default function unprefixValue(value) {\n if (typeof value === 'string') {\n return value.replace(RE, '');\n }\n\n return value;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nexport default function AppContainer(props) {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView));\n}\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\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\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport render, { hydrate } from '../render';\nimport styleResolver from '../StyleSheet/styleResolver';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? hydrate : render;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)); // Don't escape CSS text\n\n var getStyleElement = function getStyleElement(props) {\n var sheet = styleResolver.getStyleSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element: element,\n getStyleElement: getStyleElement\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = function componentProviderInstrumentationHook(component) {\n return component();\n};\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nvar AppRegistry = /*#__PURE__*/function () {\n function AppRegistry() {}\n\n AppRegistry.getAppKeys = function getAppKeys() {\n return Object.keys(runnables);\n };\n\n AppRegistry.getApplication = function getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n };\n\n AppRegistry.registerComponent = function registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: function getApplication(appParameters) {\n return _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters));\n },\n run: function run(appParameters) {\n return renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n rootTag: appParameters.rootTag\n });\n }\n };\n return appKey;\n };\n\n AppRegistry.registerConfig = function registerConfig(config) {\n config.forEach(function (_ref) {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n } // TODO: fix style sheet creation when using this method\n ;\n\n AppRegistry.registerRunnable = function registerRunnable(appKey, run) {\n runnables[appKey] = {\n run: run\n };\n return appKey;\n };\n\n AppRegistry.runApplication = function runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n };\n\n AppRegistry.setComponentProviderInstrumentationHook = function setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n };\n\n AppRegistry.setWrapperComponentProvider = function setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n };\n\n AppRegistry.unmountApplicationComponentAtRootTag = function unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n };\n\n return AppRegistry;\n}();\n\nexport { AppRegistry as default };","/**\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 */\nvar 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 centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {\n var touchBank = touchHistory.touchBank;\n var total = 0;\n var count = 0;\n var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;\n\n if (oneTouchData !== null) {\n if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {\n total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrack = touchBank[i];\n\n if (touchTrack !== null && touchTrack !== undefined && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n var toAdd = void 0; // Yuck, program temporarily in invalid state.\n\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\n total += toAdd;\n count++;\n }\n }\n }\n\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n currentCentroidXOfTouchesChangedAfter: function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidYOfTouchesChangedAfter: function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n true // ofCurrent\n );\n },\n previousCentroidXOfTouchesChangedAfter: function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n false // ofCurrent\n );\n },\n previousCentroidYOfTouchesChangedAfter: function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n false // ofCurrent\n );\n },\n currentCentroidX: function currentCentroidX(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidY: function currentCentroidY(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n false, // isXAxis\n true // ofCurrent\n );\n },\n noCentroid: -1\n};\nexport default TouchHistoryMath;","/**\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 * @format\n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\nimport TouchHistoryMath from '../TouchHistoryMath';\nvar currentCentroidXOfTouchesChangedAfter = TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nvar currentCentroidYOfTouchesChangedAfter = TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nvar previousCentroidXOfTouchesChangedAfter = TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nvar previousCentroidYOfTouchesChangedAfter = TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nvar currentCentroidX = TouchHistoryMath.currentCentroidX;\nvar currentCentroidY = TouchHistoryMath.currentCentroidY;\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 * \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/master/RNTester/js/PanResponderExample.js)\n */\n\nvar PanResponder = {\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 _initializeGestureState: function _initializeGestureState(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; // All `gestureState` accounts for timeStamps up until:\n\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: function _updateGestureStateOnMove(gestureState, touchHistory) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n var movedAfter = gestureState._accountsForMovesUpTo;\n var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var nextDX = gestureState.dx + (x - prevX);\n var nextDY = gestureState.dy + (y - prevY); // TODO: This must be filtered intelligently.\n\n var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\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: function create(config) {\n var interactionState = {\n handle: null,\n shouldCancelClick: false,\n timeout: null\n };\n var 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 var panHandlers = {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder: function onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture: function onStartShouldSetResponderCapture(event) {\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\n gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onMoveShouldSetResponderCapture: function onMoveShouldSetResponderCapture(event) {\n var touchHistory = event.touchHistory; // 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\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return false;\n }\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onResponderGrant: function onResponderGrant(event) {\n if (!interactionState.handle) {\n interactionState.handle = InteractionManager.createInteractionHandle();\n }\n\n if (interactionState.timeout) {\n clearInteractionTimeout(interactionState);\n }\n\n interactionState.shouldCancelClick = true;\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n } // TODO: t7467124 investigate if this can be removed\n\n\n return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n },\n onResponderReject: function onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n onResponderRelease: function onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderStart: function onResponderStart(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n onResponderMove: function onResponderMove(event) {\n var touchHistory = event.touchHistory; // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return;\n } // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n onResponderEnd: function onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n },\n // We do not want to trigger 'click' activated gestures or native behaviors\n // on any pan target that is under a mouse cursor when it is released.\n // Browsers will natively cancel 'click' events on a target if a non-mouse\n // active pointer moves.\n onClickCapture: function onClickCapture(event) {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers: panHandlers,\n getInteractionHandle: function getInteractionHandle() {\n return interactionState.handle;\n }\n };\n }\n};\n\nfunction clearInteractionHandle(interactionState, callback, event, gestureState) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nfunction clearInteractionTimeout(interactionState) {\n clearTimeout(interactionState.timeout);\n}\n\nfunction setInteractionTimeout(interactionState) {\n interactionState.timeout = setTimeout(function () {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\n\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","import React from 'react';\n\nconst getAttachedChildren = (children: any) => {\n const childrenArray: any = React.Children.toArray(children);\n /*\n | Separate the trailing (not first) children from the children array\n */\n\n if (childrenArray.length <= 1) {\n return childrenArray;\n }\n\n const trailingChildren = childrenArray.slice(1);\n trailingChildren.pop();\n const marginProp: object = {\n ...{ ml: 0, mr: 0, roundedRight: 0, roundedLeft: 0 },\n };\n const leftElemProp: object = {\n ...{ mr: 0, roundedRight: 0 },\n };\n const rightElemProp: object = {\n ...{ ml: 0, roundedLeft: 0 },\n };\n\n /*\n | Add the margiin to the children\n */\n const trailingChildrenWithSpacing = trailingChildren.map((child: any) => {\n return React.cloneElement(child, marginProp, child.props.children);\n });\n /*\n | New children array with applied margin to trailing children\n */\n return [\n React.cloneElement(\n childrenArray[0],\n leftElemProp,\n childrenArray[0].props.children\n ),\n ...trailingChildrenWithSpacing,\n React.cloneElement(\n childrenArray[childrenArray.length - 1],\n rightElemProp,\n childrenArray[childrenArray.length - 1].props.children\n ),\n ];\n};\n\nexport default getAttachedChildren;\n","import React, { memo, forwardRef } from 'react';\nimport type { IInputGroupProps } from './types';\nimport { getAttachedChildren } from '../../../utils';\nimport { HStack } from '../Stack';\nimport { extractInObject, stylingProps } from '../../../theme/tools/utils';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst supplyPropsToChildren = (children: any, props: any) => {\n if (children.length >= 2) {\n const result = [];\n const firstChild = children[0];\n const firstChildProps = {\n ...firstChild.props.children,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n result.push(\n React.cloneElement(firstChild, firstChildProps, firstChild.props.children)\n );\n for (let i = 1; i < children.length - 1; i++) {\n const child = children[i];\n const newProps = { ...props, borderRadius: '0' };\n result.push(React.cloneElement(child, newProps, child.props.children));\n }\n const lastChild = children[children.length - 1];\n const lastChildProps = {\n ...lastChild.props.children,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n result.push(\n React.cloneElement(lastChild, lastChildProps, lastChild.props.children)\n );\n return result;\n }\n\n return React.Children.map(children, (child: JSX.Element) => {\n return React.cloneElement(child, props, child.props.children);\n });\n};\n\nexport const InputGroup = memo(\n forwardRef(({ children, ...props }: IInputGroupProps, ref: any) => {\n const [layoutProps, nonLayoutProps] = extractInObject(props, [\n ...stylingProps.margin,\n ...stylingProps.border,\n ...stylingProps.layout,\n ...stylingProps.flexbox,\n ...stylingProps.position,\n ...stylingProps.background,\n 'space',\n 'shadow',\n 'opacity',\n ]);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n {supplyPropsToChildren(getAttachedChildren(children), nonLayoutProps)}\n \n );\n })\n);\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","'use strict';\nconst isOptionObject = require('is-plain-obj');\n\nconst {hasOwnProperty} = Object.prototype;\nconst {propertyIsEnumerable} = Object;\nconst defineProperty = (object, name, value) => Object.defineProperty(object, name, {\n\tvalue,\n\twritable: true,\n\tenumerable: true,\n\tconfigurable: true\n});\n\nconst globalThis = this;\nconst defaultMergeOptions = {\n\tconcatArrays: false,\n\tignoreUndefined: false\n};\n\nconst getEnumerableOwnPropertyKeys = value => {\n\tconst keys = [];\n\n\tfor (const key in value) {\n\t\tif (hasOwnProperty.call(value, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\n\t/* istanbul ignore else */\n\tif (Object.getOwnPropertySymbols) {\n\t\tconst symbols = Object.getOwnPropertySymbols(value);\n\n\t\tfor (const symbol of symbols) {\n\t\t\tif (propertyIsEnumerable.call(value, symbol)) {\n\t\t\t\tkeys.push(symbol);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn keys;\n};\n\nfunction clone(value) {\n\tif (Array.isArray(value)) {\n\t\treturn cloneArray(value);\n\t}\n\n\tif (isOptionObject(value)) {\n\t\treturn cloneOptionObject(value);\n\t}\n\n\treturn value;\n}\n\nfunction cloneArray(array) {\n\tconst result = array.slice(0, 0);\n\n\tgetEnumerableOwnPropertyKeys(array).forEach(key => {\n\t\tdefineProperty(result, key, clone(array[key]));\n\t});\n\n\treturn result;\n}\n\nfunction cloneOptionObject(object) {\n\tconst result = Object.getPrototypeOf(object) === null ? Object.create(null) : {};\n\n\tgetEnumerableOwnPropertyKeys(object).forEach(key => {\n\t\tdefineProperty(result, key, clone(object[key]));\n\t});\n\n\treturn result;\n}\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {string[]} keys keys to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n */\nconst mergeKeys = (merged, source, keys, config) => {\n\tkeys.forEach(key => {\n\t\tif (typeof source[key] === 'undefined' && config.ignoreUndefined) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Do not recurse into prototype chain of merged\n\t\tif (key in merged && merged[key] !== Object.getPrototypeOf(merged)) {\n\t\t\tdefineProperty(merged, key, merge(merged[key], source[key], config));\n\t\t} else {\n\t\t\tdefineProperty(merged, key, clone(source[key]));\n\t\t}\n\t});\n\n\treturn merged;\n};\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n *\n * see [Array.prototype.concat ( ...arguments )](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.concat)\n */\nconst concatArrays = (merged, source, config) => {\n\tlet result = merged.slice(0, 0);\n\tlet resultIndex = 0;\n\n\t[merged, source].forEach(array => {\n\t\tconst indices = [];\n\n\t\t// `result.concat(array)` with cloning\n\t\tfor (let k = 0; k < array.length; k++) {\n\t\t\tif (!hasOwnProperty.call(array, k)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tindices.push(String(k));\n\n\t\t\tif (array === merged) {\n\t\t\t\t// Already cloned\n\t\t\t\tdefineProperty(result, resultIndex++, array[k]);\n\t\t\t} else {\n\t\t\t\tdefineProperty(result, resultIndex++, clone(array[k]));\n\t\t\t}\n\t\t}\n\n\t\t// Merge non-index keys\n\t\tresult = mergeKeys(result, array, getEnumerableOwnPropertyKeys(array).filter(key => !indices.includes(key)), config);\n\t});\n\n\treturn result;\n};\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n */\nfunction merge(merged, source, config) {\n\tif (config.concatArrays && Array.isArray(merged) && Array.isArray(source)) {\n\t\treturn concatArrays(merged, source, config);\n\t}\n\n\tif (!isOptionObject(source) || !isOptionObject(merged)) {\n\t\treturn clone(source);\n\t}\n\n\treturn mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), config);\n}\n\nmodule.exports = function (...options) {\n\tconst config = merge(clone(defaultMergeOptions), (this !== globalThis && this) || {}, defaultMergeOptions);\n\tlet merged = {_: {}};\n\n\tfor (const option of options) {\n\t\tif (option === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!isOptionObject(option)) {\n\t\t\tthrow new TypeError('`' + option + '` is not an Option Object');\n\t\t}\n\n\t\tmerged = merge(merged, {_: option}, config);\n\t}\n\n\treturn merged._;\n};\n","'use strict';\n/**\n * Simple module to localize the React interface using the same syntax\n * used in the ReactNativeLocalization module\n * (https://github.com/stefalda/ReactNativeLocalization)\n *\n * Originally developed by Stefano Falda (stefano.falda@gmail.com)\n *\n * It uses a call to the Navigator/Browser object to get the current interface language,\n * then display the correct language strings or the default language (the first\n * one if a match is not found).\n *\n * This library has been refactored to use the newly created localized-strings package so to\n * unify the code and make it easier to mantain\n *\n * How to use:\n * Check the instructions at:\n * https://github.com/stefalda/react-localization\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _localizedStrings = require('localized-strings');\n\nvar _localizedStrings2 = _interopRequireDefault(_localizedStrings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar placeholderRegex = /(\\{[\\d|\\w]+\\})/;\n\n/**\n * Format the passed string replacing the numbered or tokenized placeholders\n * eg. 1: I'd like some {0} and {1}, or just {0}\n * eg. 2: I'd like some {bread} and {butter}, or just {bread}\n * Use example:\n * eg. 1: strings.formatString(strings.question, strings.bread, strings.butter)\n * eg. 2: strings.formatString(strings.question, { bread: strings.bread, butter: strings.butter }\n *\n * THIS METHOD OVERRIDE the one of the parent class by adding support for JSX code\n*/\n_localizedStrings2.default.prototype.formatString = function (str) {\n for (var _len = arguments.length, valuesForPlaceholders = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n valuesForPlaceholders[_key - 1] = arguments[_key];\n }\n\n var hasObject = false;\n var res = (str || '').split(placeholderRegex).filter(function (textPart) {\n return !!textPart;\n }).map(function (textPart, index) {\n if (textPart.match(placeholderRegex)) {\n var matchedKey = textPart.slice(1, -1);\n var valueForPlaceholder = valuesForPlaceholders[matchedKey];\n\n // If no value found, check if working with an object instead\n if (valueForPlaceholder == undefined) {\n var valueFromObjectPlaceholder = valuesForPlaceholders[0][matchedKey];\n if (valueFromObjectPlaceholder !== undefined) {\n valueForPlaceholder = valueFromObjectPlaceholder;\n } else {\n // If value still isn't found, then it must have been undefined/null\n return valueForPlaceholder;\n }\n }\n\n if (_react2.default.isValidElement(valueForPlaceholder)) {\n hasObject = true;\n return _react2.default.Children.toArray(valueForPlaceholder).map(function (component) {\n return _extends({}, component, { key: index.toString() });\n });\n }\n\n return valueForPlaceholder;\n }\n return textPart;\n });\n // If the results contains a object return an array otherwise return a string\n if (hasObject) return res;\n return res.join('');\n};\n\nexports.default = _localizedStrings2.default;","/* eslint-disable max-lines */\nimport type { SpanTimeInput, TransactionContext } from '@sentry/types';\nimport { logger, timestampInSeconds } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\nimport type { Span } from './span';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n heartbeatInterval: 5000,\n};\n\nconst FINISH_REASON_TAG = 'finishReason';\n\nconst IDLE_TRANSACTION_FINISH_REASONS = [\n 'heartbeatFailed',\n 'idleTimeout',\n 'documentHidden',\n 'finalTimeout',\n 'externalFinish',\n 'cancelled',\n];\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string,\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanContext().spanId !== this.transactionSpanId) {\n // We patch span.end() to pop an activity after setting an endTimestamp.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEnd = span.end;\n span.end = (...rest: unknown[]) => {\n this._popActivity(span.spanContext().spanId);\n return originalEnd.apply(span, rest);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (spanToJSON(span).timestamp === undefined) {\n this._pushActivity(span.spanContext().spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record;\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean;\n\n // Idle timeout was canceled and we should finish the transaction with the last span end.\n private _idleTimeoutCanceledPermanently: boolean;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[];\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n private _idleTimeoutID: ReturnType | undefined;\n\n private _finishReason: (typeof IDLE_TRANSACTION_FINISH_REASONS)[number];\n\n private _autoFinishAllowed: boolean;\n\n /**\n * @deprecated Transactions will be removed in v8. Use spans instead.\n */\n public constructor(\n transactionContext: TransactionContext,\n private readonly _idleHub: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n private readonly _idleTimeout: number = TRACING_DEFAULTS.idleTimeout,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n private readonly _finalTimeout: number = TRACING_DEFAULTS.finalTimeout,\n private readonly _heartbeatInterval: number = TRACING_DEFAULTS.heartbeatInterval,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n /**\n * When set to `true`, will disable the idle timeout (`_idleTimeout` option) and heartbeat mechanisms (`_heartbeatInterval`\n * option) until the `sendAutoFinishSignal()` method is called. The final timeout mechanism (`_finalTimeout` option)\n * will not be affected by this option, meaning the transaction will definitely be finished when the final timeout is\n * reached, no matter what this option is configured to.\n *\n * Defaults to `false`.\n */\n delayAutoFinishUntilSignal: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n this.activities = {};\n this._heartbeatCounter = 0;\n this._finished = false;\n this._idleTimeoutCanceledPermanently = false;\n this._beforeFinishCallbacks = [];\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[4];\n this._autoFinishAllowed = !delayAutoFinishUntilSignal;\n\n if (_onScope) {\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n DEBUG_BUILD && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanContext().spanId}`);\n // eslint-disable-next-line deprecation/deprecation\n _idleHub.getScope().setSpan(this);\n }\n\n if (!delayAutoFinishUntilSignal) {\n this._restartIdleTimeout();\n }\n\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[3];\n this.end();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n public end(endTimestamp?: SpanTimeInput): string | undefined {\n const endTimestampInS = spanTimeInputToSeconds(endTimestamp);\n\n this._finished = true;\n this.activities = {};\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.op === 'ui.action.click') {\n this.setAttribute(FINISH_REASON_TAG, this._finishReason);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.spanRecorder) {\n DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestampInS * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestampInS);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanContext().spanId === this.spanContext().spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!spanToJSON(span).timestamp) {\n span.setStatus('cancelled');\n span.end(endTimestampInS);\n DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const { start_timestamp: startTime, timestamp: endTime } = spanToJSON(span);\n const spanStartedBeforeTransactionFinish = startTime && startTime < endTimestampInS;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (this._finalTimeout + this._idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = endTime && startTime && endTime - startTime < timeoutWithMarginOfError;\n\n if (DEBUG_BUILD) {\n const stringifiedSpan = JSON.stringify(span, undefined, 2);\n if (!spanStartedBeforeTransactionFinish) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n logger.log('[Tracing] discarding Span since it finished after Transaction final timeout', stringifiedSpan);\n }\n }\n\n return spanStartedBeforeTransactionFinish && spanEndedBeforeFinalTimeout;\n });\n\n DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this._idleHub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n if (scope.getTransaction() === this) {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(undefined);\n }\n }\n\n return super.end(endTimestamp);\n }\n\n /**\n * Register a callback function that gets executed before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanContext().spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idle timeout, if there is one.\n * @param restartOnChildSpanChange Default is `true`.\n * If set to false the transaction will end\n * with the last child span.\n */\n public cancelIdleTimeout(\n endTimestamp?: Parameters[0],\n {\n restartOnChildSpanChange,\n }: {\n restartOnChildSpanChange?: boolean;\n } = {\n restartOnChildSpanChange: true,\n },\n ): void {\n this._idleTimeoutCanceledPermanently = restartOnChildSpanChange === false;\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n\n if (Object.keys(this.activities).length === 0 && this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n }\n }\n\n /**\n * Temporary method used to externally set the transaction's `finishReason`\n *\n * ** WARNING**\n * This is for the purpose of experimentation only and will be removed in the near future, do not use!\n *\n * @internal\n *\n */\n public setFinishReason(reason: string): void {\n this._finishReason = reason;\n }\n\n /**\n * Permits the IdleTransaction to automatically end itself via the idle timeout and heartbeat mechanisms when the `delayAutoFinishUntilSignal` option was set to `true`.\n */\n public sendAutoFinishSignal(): void {\n if (!this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Received finish signal for idle transaction.');\n this._restartIdleTimeout();\n this._autoFinishAllowed = true;\n }\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n private _restartIdleTimeout(endTimestamp?: Parameters[0]): void {\n this.cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[1];\n this.end(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n this.cancelIdleTimeout(undefined, { restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently });\n DEBUG_BUILD && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n DEBUG_BUILD && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const endTimestamp = timestampInSeconds();\n if (this._idleTimeoutCanceledPermanently) {\n if (this._autoFinishAllowed) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n } else {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampInSeconds is in seconds, timeout is in ms\n this._restartIdleTimeout(endTimestamp + this._idleTimeout / 1000);\n }\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter++;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n if (this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[0];\n this.end();\n }\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n DEBUG_BUILD && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, this._heartbeatInterval);\n }\n}\n","import { isString } from './is';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\ntype SimpleNode = {\n parentNode: SimpleNode;\n} | null;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset && elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getDomElement(selector: string): E | null {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) as unknown as E;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` attribute. This attribute is added at build-time\n * by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nexport function getComponentName(elem: unknown): string | null {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement && currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n // @ts-expect-error __SENTRY_SDK_SOURCE__ is injected by rollup during build process\n return __SENTRY_SDK_SOURCE__;\n}\n","import { DEBUG_BUILD } from './debug-build';\nimport { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\ndeclare const EdgeRuntime: string | undefined;\n\nexport { supportsHistory } from './vendor/supportsHistory';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n","import type { ConsoleLevel } from '@sentry/types';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public logLevel: ConsoleLevel;\n\n public constructor(public message: string, logLevel: ConsoleLevel = 'warn') {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n","import type {\n DsnComponents,\n Event,\n EventEnvelope,\n EventItem,\n SdkInfo,\n SdkMetadata,\n Session,\n SessionAggregates,\n SessionEnvelope,\n SessionItem,\n} from '@sentry/types';\nimport {\n createEnvelope,\n createEventEnvelopeHeaders,\n dsnToString,\n getSdkMetadataForEnvelopeHeader,\n} from '@sentry/utils';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n session: Session | SessionAggregates,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): SessionEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem: SessionItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nexport function createEventEnvelope(\n event: Event,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): EventEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjut a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem: EventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n","import type { ClientOptions, DsnComponents, DsnLike, SdkInfo } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(\n dsn: DsnComponents,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions: string | ClientOptions = {} as ClientOptions,\n): string {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msFlexPreferredSize'\n\n // Full expanded syntax is flex-grow | flex-shrink | flex-basis.\n};var flexShorthandMappings = {\n auto: '1 1 auto',\n inherit: 'inherit',\n initial: '0 1 auto',\n none: '0 0 auto',\n unset: 'unset'\n};\nvar isUnitlessNumber = /^\\d+(\\.\\d+)?$/;\nvar logTag = 'inline-style-prefixer.flexboxIE plugin';\n\nfunction flexboxIE(property, value, style) {\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n\n if (property === 'flex') {\n // For certain values we can do straight mappings based on the spec\n // for the expansions.\n if (Object.prototype.hasOwnProperty.call(flexShorthandMappings, value)) {\n style.msFlex = flexShorthandMappings[value];\n return;\n }\n // Here we have no direct mapping, so we favor looking for a\n // unitless positive number as that will be the most common use-case.\n if (isUnitlessNumber.test(value)) {\n style.msFlex = value + ' 1 0%';\n return;\n }\n\n if (typeof value === 'number' && value < 0) {\n // ignore negative values;\n console.warn(logTag + ': \"flex: ' + value + '\", negative values are not valid and will be ignored.');\n return;\n }\n\n if (!value.split) {\n console.warn(logTag + ': \"flex: ' + value + '\", value format are not detected, it will be remain as is');\n style.msFlex = value;\n return;\n }\n\n // The next thing we can look for is if there are multiple values.\n var flexValues = value.split(/\\s/);\n // If we only have a single value that wasn't a positive unitless\n // or a pre-mapped value, then we can assume it is a unit value.\n switch (flexValues.length) {\n case 1:\n style.msFlex = '1 1 ' + value;\n return;\n case 2:\n // If we have 2 units, then we expect that the first will\n // always be a unitless number and represents flex-grow.\n // The second unit will represent flex-shrink for a unitless\n // value, or flex-basis otherwise.\n if (isUnitlessNumber.test(flexValues[1])) {\n style.msFlex = flexValues[0] + ' ' + flexValues[1] + ' 0%';\n } else {\n style.msFlex = flexValues[0] + ' 1 ' + flexValues[1];\n }\n return;\n default:\n style.msFlex = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = grid;\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isComplexSpanValue(value) {\n return typeof value === 'string' && value.includes('/');\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\n\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\n\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split = value.split('/'),\n _value$split2 = _slicedToArray(_value$split, 2),\n start = _value$split2[0],\n end = _value$split2[1];\n\n propertyConverters.gridColumnStart(+start, style);\n\n var _end$split = end.split(/ ?span /),\n _end$split2 = _slicedToArray(_end$split, 2),\n maybeSpan = _end$split2[0],\n maybeNumber = _end$split2[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridColumnEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridColumnEnd(+end, style);\n }\n } else {\n propertyConverters.gridColumnStart(value, style);\n }\n },\n\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split3 = value.split('/'),\n _value$split4 = _slicedToArray(_value$split3, 2),\n start = _value$split4[0],\n end = _value$split4[1];\n\n propertyConverters.gridRowStart(+start, style);\n\n var _end$split3 = end.split(/ ?span /),\n _end$split4 = _slicedToArray(_end$split3, 2),\n maybeSpan = _end$split4[0],\n maybeNumber = _end$split4[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridRowEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridRowEnd(+end, style);\n }\n } else {\n propertyConverters.gridRowStart(value, style);\n }\n },\n\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\n\nfunction grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\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 * \n * @format\n */\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\nexport default TurboModuleRegistry.get('NativeAnimatedTurboModule');","/**\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 * @format\n */\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\nexport default TurboModuleRegistry.get('NativeAnimatedModule');","/**\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 * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar DecayAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(DecayAnimation, _Animation);\n\n function DecayAnimation(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._deceleration = (_config$deceleration = config.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;\n _this._velocity = config.velocity;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n return _this;\n }\n\n var _proto = DecayAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\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\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.onUpdate = function onUpdate() {\n var now = Date.now();\n var value = this._fromValue + this._velocity / (1 - this._deceleration) * (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({\n finished: true\n });\n\n return;\n }\n\n this._lastValue = value;\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return DecayAnimation;\n}(Animation);\n\nexport default DecayAnimation;","/**\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\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\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 * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nvar Info = function Info() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n};\n\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\n\nvar _sampleRate = DEBUG ? 1 : null;\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 */\n\n\nvar FillRateHelper = /*#__PURE__*/function () {\n FillRateHelper.addListener = function addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n\n _listeners.push(callback);\n\n return {\n remove: function remove() {\n _listeners = _listeners.filter(function (listener) {\n return callback !== listener;\n });\n }\n };\n };\n\n FillRateHelper.setSampleRate = function setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n };\n\n FillRateHelper.setMinSampleCount = function setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n };\n\n function FillRateHelper(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n\n this._resetData();\n }\n\n var _proto = FillRateHelper.prototype;\n\n _proto.activate = function activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n };\n\n _proto.deactivateAndFlush = function deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n\n var start = this._samplesStartTime; // const for flow\n\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n\n return;\n }\n\n var total_time_spent = global.performance.now() - start;\n\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent: total_time_spent\n });\n\n if (DEBUG) {\n var 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: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: 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: 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\n for (var key in derived) {\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived: derived,\n info: info\n });\n }\n\n _listeners.forEach(function (listener) {\n return listener(info);\n });\n\n this._resetData();\n };\n\n _proto.computeBlankness = function computeBlankness(props, state, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || this._samplesStartTime == null) {\n return 0;\n }\n\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n\n var now = global.performance.now();\n\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n\n this._anyBlankStartTime = null;\n\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = state.first;\n\n var firstFrame = this._getFrameMetrics(first);\n\n while (first <= state.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first);\n first++;\n } // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n\n\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n\n var blankBottom = 0;\n var last = state.last;\n\n var lastFrame = this._getFrameMetrics(last);\n\n while (last >= state.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last);\n last--;\n } // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n\n\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n\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\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\n return blankness;\n };\n\n _proto.enabled = function enabled() {\n return this._enabled;\n };\n\n _proto._resetData = function _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n };\n\n return FillRateHelper;\n}();\n\nexport default FillRateHelper;","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import React from 'react';\n\nfunction createContext(\n rootComponentName: string\n) {\n const Context = React.createContext(null as any);\n\n function Provider(props: ContextValueType & { children: React.ReactNode }) {\n const { children, ...providerProps } = props;\n // Only re-memoize when prop values change\n const value = React.useMemo(\n () => providerProps,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(providerProps)\n ) as ContextValueType;\n return {children};\n }\n\n function useContext(consumerName: string) {\n const context = React.useContext(Context);\n if (context === null) {\n throw new Error(\n `\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``\n );\n }\n return context;\n }\n\n Provider.displayName = rootComponentName + 'Provider';\n return [Provider, useContext] as const;\n}\n\nexport { createContext };\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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 as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\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 genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\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 match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\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 match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/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('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 ? array.length : 0;\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 `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\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 * 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 * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\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 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/** 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/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** 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 Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\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 symbolToString = symbolProto ? symbolProto.toString : 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 ? entries.length : 0;\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}\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 return this.has(key) && delete this.__data__[key];\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 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 ? entries.length : 0;\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}\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 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 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 ? entries.length : 0;\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.__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 return getMapData(this, key)['delete'](key);\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 getMapData(this, key).set(key, value);\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 ? values.length : 0;\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 this.__data__ = new ListCache(entries);\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}\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 return this.__data__['delete'](key);\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 cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\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 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\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 `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\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`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\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 {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\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, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_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, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\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) || isHostObject(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[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(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 * The base implementation of `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_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 & UNORDERED_COMPARE_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 (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, 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 & PARTIAL_COMPARE_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 |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(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, customizer, bitmask, 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 and inherited enumerable property names and\n * 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 getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\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 property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\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 * Creates an array of the own enumerable symbol properties 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 ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Creates an array of the own and inherited enumerable symbol properties\n * of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\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,\n// for data views in Edge < 14, and promises in Node.js.\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 = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\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 `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\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 a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\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 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\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 * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\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 */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\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 && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * 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 * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\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 * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n return object == null ? {} : basePickBy(object, getAllKeysIn(object), baseIteratee(predicate));\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\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\nmodule.exports = omitBy;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\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/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\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/** 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 objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, props) {\n object = Object(object);\n return basePickBy(object, props, function(value, key) {\n return key in object;\n });\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\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 */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\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 && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [props] The property identifiers to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = baseRest(function(object, props) {\n return object == null ? {} : basePick(object, arrayMap(baseFlatten(props, 1), toKey));\n});\n\nmodule.exports = pick;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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 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 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 objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\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 match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\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 supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[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/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\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 `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\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 * 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 * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\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 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/** 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/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** 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 getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\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 ? entries.length : 0;\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}\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 return this.has(key) && delete this.__data__[key];\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 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 ? entries.length : 0;\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}\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 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 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 ? entries.length : 0;\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.__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 return getMapData(this, key)['delete'](key);\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 getMapData(this, key).set(key, value);\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 * 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 this.__data__ = new ListCache(entries);\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}\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 return this.__data__['delete'](key);\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 cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\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 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\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 `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\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`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\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) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(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 * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\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 * Creates an array of the own enumerable symbol properties 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 ? overArg(nativeGetSymbols, Object) : stubArray;\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,\n// for data views in Edge < 14, and promises in Node.js.\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 = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\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 * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\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 `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\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 * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\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 */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\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 * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(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 * 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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\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 && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * 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 = cloneDeep;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","import React, { memo, forwardRef } from 'react';\nimport StackMain, { InterfaceStackProps } from './Stack';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport type {\n CustomProps,\n ResponsiveValue,\n // ThemeComponentSizeType,\n} from '../../types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nexport interface InterfaceHStackProps extends InterfaceStackProps {\n /**\n * The direction of the Stack Items.\n * @default row\n */\n direction?: ResponsiveValue<\n 'column' | 'row' | 'column-reverse' | 'row-reverse'\n >;\n}\n\nexport type IHStackProps = InterfaceHStackProps & CustomProps<'HStack'>;\n\nconst HStack = (props: IHStackProps, ref?: any) => {\n const resolvedProps = usePropsResolution('HStack', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(HStack));\n","module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=9)}([function(e,t){e.exports=require(\"react\")},function(e,t,r){var n;\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/!function(){\"use strict\";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t=o?a:o)),r=a,t=h(t),e.slice(r,r+t.length)==t}}).call(this,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){(function(t){var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==typeof t&&t&&t.Object===Object&&t,a=\"object\"==typeof self&&self&&self.Object===Object&&self,o=n||a||Function(\"return this\")();var i,u=Array.prototype,c=Function.prototype,s=Object.prototype,l=o[\"__core-js_shared__\"],f=(i=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+i:\"\",d=c.toString,p=s.hasOwnProperty,h=s.toString,m=RegExp(\"^\"+d.call(p).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),y=u.splice,b=x(o,\"Map\"),g=x(Object,\"create\");function v(e){var t=-1,r=e?e.length:0;for(this.clear();++t-1},C.prototype.set=function(e,t){var r=this.__data__,n=w(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},_.prototype.clear=function(){this.__data__={hash:new v,map:new(b||C),string:new v}},_.prototype.delete=function(e){return j(this,e).delete(e)},_.prototype.get=function(e){return j(this,e).get(e)},_.prototype.has=function(e){return j(this,e).has(e)},_.prototype.set=function(e,t){return j(this,e).set(e,t),this},N.Cache=_,e.exports=N}).call(this,r(3))},function(e,t,r){(function(t){var r=/^\\s+|\\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,u=\"object\"==typeof t&&t&&t.Object===Object&&t,c=\"object\"==typeof self&&self&&self.Object===Object&&self,s=u||c||Function(\"return this\")(),l=Object.prototype.toString,f=Math.max,d=Math.min,p=function(){return s.Date.now()};function h(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function m(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==l.call(e)}(e))return NaN;if(h(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(r,\"\");var u=a.test(e);return u||o.test(e)?i(e.slice(2),u?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,r){var n,a,o,i,u,c,s=0,l=!1,y=!1,b=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function g(t){var r=n,o=a;return n=a=void 0,s=t,i=e.apply(o,r)}function v(e){return s=e,u=setTimeout(_,t),l?g(e):i}function C(e){var r=e-c;return void 0===c||r>=t||r<0||y&&e-s>=o}function _(){var e=p();if(C(e))return w(e);u=setTimeout(_,function(e){var r=t-(e-c);return y?d(r,o-(e-s)):r}(e))}function w(e){return u=void 0,b&&n?g(e):(n=a=void 0,i)}function S(){var e=p(),r=C(e);if(n=arguments,a=this,c=e,r){if(void 0===u)return v(c);if(y)return u=setTimeout(_,t),g(c)}return void 0===u&&(u=setTimeout(_,t)),i}return t=m(t)||0,h(r)&&(l=!!r.leading,o=(y=\"maxWait\"in r)?f(m(r.maxWait)||0,t):o,b=\"trailing\"in r?!!r.trailing:b),S.cancel=function(){void 0!==u&&clearTimeout(u),s=0,n=c=a=u=void 0},S.flush=function(){return void 0===u?i:w(p())},S}}).call(this,r(3))},function(e,t,r){(function(e,r){var n=\"[object Arguments]\",a=\"[object Map]\",o=\"[object Object]\",i=\"[object Set]\",u=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,c=/^\\w*$/,s=/^\\./,l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,f=/\\\\(\\\\)?/g,d=/^\\[object .+?Constructor\\]$/,p=/^(?:0|[1-9]\\d*)$/,h={};h[\"[object Float32Array]\"]=h[\"[object Float64Array]\"]=h[\"[object Int8Array]\"]=h[\"[object Int16Array]\"]=h[\"[object Int32Array]\"]=h[\"[object Uint8Array]\"]=h[\"[object Uint8ClampedArray]\"]=h[\"[object Uint16Array]\"]=h[\"[object Uint32Array]\"]=!0,h[n]=h[\"[object Array]\"]=h[\"[object ArrayBuffer]\"]=h[\"[object Boolean]\"]=h[\"[object DataView]\"]=h[\"[object Date]\"]=h[\"[object Error]\"]=h[\"[object Function]\"]=h[a]=h[\"[object Number]\"]=h[o]=h[\"[object RegExp]\"]=h[i]=h[\"[object String]\"]=h[\"[object WeakMap]\"]=!1;var m=\"object\"==typeof e&&e&&e.Object===Object&&e,y=\"object\"==typeof self&&self&&self.Object===Object&&self,b=m||y||Function(\"return this\")(),g=t&&!t.nodeType&&t,v=g&&\"object\"==typeof r&&r&&!r.nodeType&&r,C=v&&v.exports===g&&m.process,_=function(){try{return C&&C.binding(\"util\")}catch(e){}}(),w=_&&_.isTypedArray;function S(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a-1},ue.prototype.set=function(e,t){var r=this.__data__,n=de(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ce.prototype.clear=function(){this.__data__={hash:new ie,map:new(H||ue),string:new ie}},ce.prototype.delete=function(e){return xe(this,e).delete(e)},ce.prototype.get=function(e){return xe(this,e).get(e)},ce.prototype.has=function(e){return xe(this,e).has(e)},ce.prototype.set=function(e,t){return xe(this,e).set(e,t),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},se.prototype.has=function(e){return this.__data__.has(e)},le.prototype.clear=function(){this.__data__=new ue},le.prototype.delete=function(e){return this.__data__.delete(e)},le.prototype.get=function(e){return this.__data__.get(e)},le.prototype.has=function(e){return this.__data__.has(e)},le.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ue){var n=r.__data__;if(!H||n.length<199)return n.push([e,t]),this;r=this.__data__=new ce(n)}return r.set(e,t),this};var pe,he,me=(pe=function(e,t){return e&&ye(e,t,qe)},function(e,t){if(null==e)return e;if(!ze(e))return pe(e,t);for(var r=e.length,n=he?r:-1,a=Object(e);(he?n--:++nu))return!1;var s=o.get(e);if(s&&o.get(t))return s==t;var l=-1,f=!0,d=1&a?new se:void 0;for(o.set(e,t),o.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function $e(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function Ve(e){return!!e&&\"object\"==typeof e}function Ke(e){return\"symbol\"==typeof e||Ve(e)&&\"[object Symbol]\"==z.call(e)}var Ue=w?function(e){return function(t){return e(t)}}(w):function(e){return Ve(e)&&Ge(e.length)&&!!h[z.call(e)]};function qe(e){return ze(e)?fe(e):we(e)}function He(e){return e}r.exports=function(e,t,r){var n=Le(e)?S:x,a=arguments.length<3;return n(e,_e(t),r,a,me)}}).call(this,r(3),r(7)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:\" \"),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})},function(e,t,r){\"use strict\";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0?(o.mainCode=!0,c||\"Array\"===t.constructor.name&&t.includes(e[2])?(o.hasAreaCodes=!0,[o].concat(u)):(s=s.concat(u),[o])):[o]})))),s]}function A(e,t,r,n){if(null!==r){var a=Object.keys(r),o=Object.values(r);a.forEach((function(r,a){if(n)return e.push([r,o[a]]);var i=e.findIndex((function(e){return e[0]===r}));if(-1===i){var u=[r];u[t]=o[a],e.push(u)}else e[i][t]=o[a]}))}}function D(e,t){return 0===t.length?e:e.map((function(e){var r=t.findIndex((function(t){return t[0]===e[2]}));if(-1===r)return e;var n=t[r];return n[1]&&(e[4]=n[1]),n[3]&&(e[5]=n[3]),n[2]&&(e[6]=n[2]),e}))}var P=function e(t,r,n,a,i,u,s,l,f,d,p,h,m,y){c(this,e),this.filterRegions=function(e,t){if(\"string\"==typeof e){var r=e;return t.filter((function(e){return e.regions.some((function(e){return e===r}))}))}return t.filter((function(t){return e.map((function(e){return t.regions.some((function(t){return t===e}))})).some((function(e){return e}))}))},this.sortTerritories=function(e,t){var r=[].concat(o(e),o(t));return r.sort((function(e,t){return e.namet.name?1:0})),r},this.getFilteredCountryList=function(e,t,r){return 0===e.length?t:r?e.map((function(e){var r=t.find((function(t){return t.iso2===e}));if(r)return r})).filter((function(e){return e})):t.filter((function(t){return e.some((function(e){return e===t.iso2}))}))},this.localizeCountries=function(e,t,r){for(var n=0;nt.localName?1:0})),e},this.getCustomAreas=function(e,t){for(var r=[],n=0;nt.dialCode.length)return r;if(r.dialCode.length===t.dialCode.length&&r.priority=\"0\"&&e.indexOf(0)<=\"9\"?n.find((function(t){return t.dialCode==+e})):n.find((function(t){return t.iso2==e})))&&t.dialCode&&r.setState({selectedCountry:t,formattedNumber:r.props.disableCountryCode?\"\":r.formatNumber(t.dialCode,t)})},r.scrollTo=function(e,t){if(e){var n=r.dropdownRef;if(n&&document.body){var a=n.offsetHeight,o=n.getBoundingClientRect().top+document.body.scrollTop,i=o+a,u=e,c=u.getBoundingClientRect(),s=u.offsetHeight,l=c.top+document.body.scrollTop,f=l+s,d=l-o+n.scrollTop,p=a/2-s/2;if(r.props.enableSearch?li){t&&(d+=p);var h=a-s;n.scrollTop=d-h}}}},r.scrollToTop=function(){var e=r.dropdownRef;e&&document.body&&(e.scrollTop=0)},r.formatNumber=function(e,t){if(!t)return e;var n,o=t.format,c=r.props,s=c.disableCountryCode,l=c.enableAreaCodeStretch,f=c.enableLongNumbers,d=c.autoFormat;if(s?((n=o.split(\" \")).shift(),n=n.join(\" \")):l&&t.isAreaCode?((n=o.split(\" \"))[1]=n[1].replace(/\\.+/,\"\".padEnd(t.areaCodeLength,\".\")),n=n.join(\" \")):n=o,!e||0===e.length)return s?\"\":r.props.prefix;if(e&&e.length<2||!n||!d)return s?e:r.props.prefix+e;var p,h=w()(n,(function(e,t){if(0===e.remainingText.length)return e;if(\".\"!==t)return{formattedText:e.formattedText+t,remainingText:e.remainingText};var r,n=i(r=e.remainingText)||a(r)||u(),o=n[0],c=n.slice(1);return{formattedText:e.formattedText+o,remainingText:c}}),{formattedText:\"\",remainingText:e.split(\"\")});return(p=f?h.formattedText+h.remainingText.join(\"\"):h.formattedText).includes(\"(\")&&!p.includes(\")\")&&(p+=\")\"),p},r.cursorToEnd=function(){var e=r.numberInputRef;if(document.activeElement===e){e.focus();var t=e.value.length;\")\"===e.value.charAt(t-1)&&(t-=1),e.setSelectionRange(t,t)}},r.getElement=function(e){return r[\"flag_no_\".concat(e)]},r.getCountryData=function(){return r.state.selectedCountry?{name:r.state.selectedCountry.name||\"\",dialCode:r.state.selectedCountry.dialCode||\"\",countryCode:r.state.selectedCountry.iso2||\"\",format:r.state.selectedCountry.format||\"\"}:{}},r.handleFlagDropdownClick=function(e){if(e.preventDefault(),r.state.showDropdown||!r.props.disabled){var t=r.state,n=t.preferredCountries,a=t.onlyCountries,o=t.selectedCountry,i=r.concatPreferredCountries(n,a).findIndex((function(e){return e.dialCode===o.dialCode&&e.iso2===o.iso2}));r.setState({showDropdown:!r.state.showDropdown,highlightCountryIndex:i},(function(){r.state.showDropdown&&r.scrollTo(r.getElement(r.state.highlightCountryIndex))}))}},r.handleInput=function(e){var t=e.target.value,n=r.props,a=n.prefix,o=n.onChange,i=r.props.disableCountryCode?\"\":a,u=r.state.selectedCountry,c=r.state.freezeSelection;if(!r.props.countryCodeEditable){var s=a+(u.hasAreaCodes?r.state.onlyCountries.find((function(e){return e.iso2===u.iso2&&e.mainCode})).dialCode:u.dialCode);if(t.slice(0,s.length)!==s)return}if(t===a)return o&&o(\"\",r.getCountryData(),e,\"\"),r.setState({formattedNumber:\"\"});if(t.replace(/\\D/g,\"\").length>15){if(!1===r.props.enableLongNumbers)return;if(\"number\"==typeof r.props.enableLongNumbers&&t.replace(/\\D/g,\"\").length>r.props.enableLongNumbers)return}if(t!==r.state.formattedNumber){e.preventDefault?e.preventDefault():e.returnValue=!1;var l=r.props.country,f=r.state,d=f.onlyCountries,p=f.selectedCountry,h=f.hiddenAreaCodes;if(o&&e.persist(),t.length>0){var m=t.replace(/\\D/g,\"\");(!r.state.freezeSelection||p&&p.dialCode.length>m.length)&&(u=r.props.disableCountryGuess?p:r.guessSelectedCountry(m.substring(0,6),l,d,h)||p,c=!1),i=r.formatNumber(m,u),u=u.dialCode?u:p}var y=e.target.selectionStart,b=e.target.selectionStart,g=r.state.formattedNumber,v=i.length-g.length;r.setState({formattedNumber:i,freezeSelection:c,selectedCountry:u},(function(){v>0&&(b-=v),\")\"==i.charAt(i.length-1)?r.numberInputRef.setSelectionRange(i.length-1,i.length-1):b>0&&g.length>=i.length?r.numberInputRef.setSelectionRange(b,b):y1?o.replace(n.dialCode,a.dialCode):a.dialCode,u=r.formatNumber(i.replace(/\\D/g,\"\"),a);r.setState({showDropdown:!1,selectedCountry:a,freezeSelection:!0,formattedNumber:u,searchValue:\"\"},(function(){r.cursorToEnd(),r.props.onChange&&r.props.onChange(u.replace(/[^0-9]+/g,\"\"),r.getCountryData(),t,u)}))}},r.handleInputFocus=function(e){r.numberInputRef&&r.numberInputRef.value===r.props.prefix&&r.state.selectedCountry&&!r.props.disableCountryCode&&r.setState({formattedNumber:r.props.prefix+r.state.selectedCountry.dialCode},(function(){r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)})),r.setState({placeholder:\"\"}),r.props.onFocus&&r.props.onFocus(e,r.getCountryData()),r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)},r.handleInputBlur=function(e){e.target.value||r.setState({placeholder:r.props.placeholder}),r.props.onBlur&&r.props.onBlur(e,r.getCountryData())},r.handleInputCopy=function(e){if(r.props.copyNumbersOnly){var t=window.getSelection().toString().replace(/[^0-9]+/g,\"\");e.clipboardData.setData(\"text/plain\",t),e.preventDefault()}},r.getHighlightCountryIndex=function(e){var t=r.state.highlightCountryIndex+e;return t<0||t>=r.state.onlyCountries.length+r.state.preferredCountries.length?t-e:r.props.enableSearch&&t>r.getSearchFilteredCountries().length?0:t},r.searchCountry=function(){var e=r.getProbableCandidate(r.state.queryString)||r.state.onlyCountries[0],t=r.state.onlyCountries.findIndex((function(t){return t==e}))+r.state.preferredCountries.length;r.scrollTo(r.getElement(t),!0),r.setState({queryString:\"\",highlightCountryIndex:t})},r.handleKeydown=function(e){var t=r.props.keys,n=e.target.className;if(n.includes(\"selected-flag\")&&e.which===t.ENTER&&!r.state.showDropdown)return r.handleFlagDropdownClick(e);if(n.includes(\"form-control\")&&(e.which===t.ENTER||e.which===t.ESC))return e.target.blur();if(r.state.showDropdown&&!r.props.disabled&&(!n.includes(\"search-box\")||e.which===t.UP||e.which===t.DOWN||e.which===t.ENTER||e.which===t.ESC&&\"\"===e.target.value)){e.preventDefault?e.preventDefault():e.returnValue=!1;var a=function(e){r.setState({highlightCountryIndex:r.getHighlightCountryIndex(e)},(function(){r.scrollTo(r.getElement(r.state.highlightCountryIndex),!0)}))};switch(e.which){case t.DOWN:a(1);break;case t.UP:a(-1);break;case t.ENTER:r.props.enableSearch?r.handleFlagItemClick(r.getSearchFilteredCountries()[r.state.highlightCountryIndex]||r.getSearchFilteredCountries()[0],e):r.handleFlagItemClick([].concat(o(r.state.preferredCountries),o(r.state.onlyCountries))[r.state.highlightCountryIndex],e);break;case t.ESC:case t.TAB:r.setState({showDropdown:!1},r.cursorToEnd);break;default:(e.which>=t.A&&e.which<=t.Z||e.which===t.SPACE)&&r.setState({queryString:r.state.queryString+String.fromCharCode(e.which)},r.state.debouncedQueryStingSearcher)}}},r.handleInputKeyDown=function(e){var t=r.props,n=t.keys,a=t.onEnterKeyPress,o=t.onKeyDown;e.which===n.ENTER&&a&&a(e),o&&o(e)},r.handleClickOutside=function(e){r.dropdownRef&&!r.dropdownContainerRef.contains(e.target)&&r.state.showDropdown&&r.setState({showDropdown:!1})},r.handleSearchChange=function(e){var t=e.currentTarget.value,n=r.state,a=n.preferredCountries,o=n.selectedCountry,i=0;if(\"\"===t&&o){var u=r.state.onlyCountries;i=r.concatPreferredCountries(a,u).findIndex((function(e){return e==o})),setTimeout((function(){return r.scrollTo(r.getElement(i))}),100)}r.setState({searchValue:t,highlightCountryIndex:i})},r.concatPreferredCountries=function(e,t){return e.length>0?o(new Set(e.concat(t))):t},r.getDropdownCountryName=function(e){return e.localName||e.name},r.getSearchFilteredCountries=function(){var e=r.state,t=e.preferredCountries,n=e.onlyCountries,a=e.searchValue,i=r.props.enableSearch,u=r.concatPreferredCountries(t,n),c=a.trim().toLowerCase().replace(\"+\",\"\");if(i&&c){if(/^\\d+$/.test(c))return u.filter((function(e){var t=e.dialCode;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))}));var s=u.filter((function(e){var t=e.iso2;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))})),l=u.filter((function(e){var t=e.name,r=e.localName;e.iso2;return[\"\".concat(t),\"\".concat(r||\"\")].some((function(e){return e.toLowerCase().includes(c)}))}));return r.scrollToTop(),o(new Set([].concat(s,l)))}return u},r.getCountryDropdownList=function(){var e=r.state,t=e.preferredCountries,a=e.highlightCountryIndex,o=e.showDropdown,i=e.searchValue,u=r.props,c=u.disableDropdown,s=u.prefix,l=r.props,f=l.enableSearch,d=l.searchNotFound,p=l.disableSearchIcon,h=l.searchClass,m=l.searchStyle,b=l.searchPlaceholder,g=l.autocompleteSearch,v=r.getSearchFilteredCountries().map((function(e,t){var n=a===t,o=N()({country:!0,preferred:\"us\"===e.iso2||\"gb\"===e.iso2,active:\"us\"===e.iso2,highlight:n}),i=\"flag \".concat(e.iso2);return y.a.createElement(\"li\",Object.assign({ref:function(e){return r[\"flag_no_\".concat(t)]=e},key:\"flag_no_\".concat(t),\"data-flag-key\":\"flag_no_\".concat(t),className:o,\"data-dial-code\":\"1\",tabIndex:c?\"-1\":\"0\",\"data-country-code\":e.iso2,onClick:function(t){return r.handleFlagItemClick(e,t)},role:\"option\"},n?{\"aria-selected\":!0}:{}),y.a.createElement(\"div\",{className:i}),y.a.createElement(\"span\",{className:\"country-name\"},r.getDropdownCountryName(e)),y.a.createElement(\"span\",{className:\"dial-code\"},e.format?r.formatNumber(e.dialCode,e):s+e.dialCode))})),C=y.a.createElement(\"li\",{key:\"dashes\",className:\"divider\"});t.length>0&&(!f||f&&!i.trim())&&v.splice(t.length,0,C);var _=N()(n({\"country-list\":!0,hide:!o},r.props.dropdownClass,!0));return y.a.createElement(\"ul\",{ref:function(e){return!f&&e&&e.focus(),r.dropdownRef=e},className:_,style:r.props.dropdownStyle,role:\"listbox\",tabIndex:\"0\"},f&&y.a.createElement(\"li\",{className:N()(n({search:!0},h,h))},!p&&y.a.createElement(\"span\",{className:N()(n({\"search-emoji\":!0},\"\".concat(h,\"-emoji\"),h)),role:\"img\",\"aria-label\":\"Magnifying glass\"},\"🔎\"),y.a.createElement(\"input\",{className:N()(n({\"search-box\":!0},\"\".concat(h,\"-box\"),h)),style:m,type:\"search\",placeholder:b,autoFocus:!0,autoComplete:g?\"on\":\"off\",value:i,onChange:r.handleSearchChange})),v.length>0?v:y.a.createElement(\"li\",{className:\"no-entries-message\"},y.a.createElement(\"span\",null,d)))};var s,l=new P(e.enableAreaCodes,e.enableTerritories,e.regions,e.onlyCountries,e.preferredCountries,e.excludeCountries,e.preserveOrder,e.masks,e.priority,e.areaCodes,e.localization,e.prefix,e.defaultMask,e.alwaysDefaultMask),h=l.onlyCountries,m=l.preferredCountries,b=l.hiddenAreaCodes,v=e.value?e.value.replace(/\\D/g,\"\"):\"\";s=e.disableInitialCountryGuess?0:v.length>1?r.guessSelectedCountry(v.substring(0,6),e.country,h,b)||0:e.country&&h.find((function(t){return t.iso2==e.country}))||0;var _,S=v.length<2&&s&&!j()(v,s.dialCode)?s.dialCode:\"\";_=\"\"===v&&0===s?\"\":r.formatNumber((e.disableCountryCode?\"\":S)+v,s.name?s:void 0);var x=h.findIndex((function(e){return e==s}));return r.state={showDropdown:e.showDropdown,formattedNumber:_,onlyCountries:h,preferredCountries:m,hiddenAreaCodes:b,selectedCountry:s,highlightCountryIndex:x,queryString:\"\",freezeSelection:!1,debouncedQueryStingSearcher:g()(r.searchCountry,250),searchValue:\"\"},r}var r,l,m;return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),r=t,(l=[{key:\"componentDidMount\",value:function(){document.addEventListener&&this.props.enableClickOutside&&document.addEventListener(\"mousedown\",this.handleClickOutside),this.props.onMount&&this.props.onMount(this.state.formattedNumber.replace(/[^0-9]+/g,\"\"),this.getCountryData(),this.state.formattedNumber)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener&&this.props.enableClickOutside&&document.removeEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentDidUpdate\",value:function(e,t,r){e.country!==this.props.country?this.updateCountry(this.props.country):e.value!==this.props.value&&this.updateFormattedNumber(this.props.value)}},{key:\"updateFormattedNumber\",value:function(e){if(null===e)return this.setState({selectedCountry:0,formattedNumber:\"\"});var t=this.state,r=t.onlyCountries,n=t.selectedCountry,a=t.hiddenAreaCodes,o=this.props,i=o.country,u=o.prefix;if(\"\"===e)return this.setState({selectedCountry:n,formattedNumber:\"\"});var c,s,l=e.replace(/\\D/g,\"\");if(n&&j()(e,u+n.dialCode))s=this.formatNumber(l,n),this.setState({formattedNumber:s});else{var f=(c=this.props.disableCountryGuess?n:this.guessSelectedCountry(l.substring(0,6),i,r,a)||n)&&j()(l,u+c.dialCode)?c.dialCode:\"\";s=this.formatNumber((this.props.disableCountryCode?\"\":f)+l,c||void 0),this.setState({selectedCountry:c,formattedNumber:s})}}},{key:\"render\",value:function(){var e,t,r,a=this,o=this.state,i=o.onlyCountries,u=o.selectedCountry,c=o.showDropdown,s=o.formattedNumber,l=o.hiddenAreaCodes,f=this.props,d=f.disableDropdown,p=f.renderStringAsFlag,h=f.isValid,m=f.defaultErrorMessage,b=f.specialLabel;if(\"boolean\"==typeof h)t=h;else{var g=h(s.replace(/\\D/g,\"\"),u,i,l);\"boolean\"==typeof g?!1===(t=g)&&(r=m):(t=!1,r=g)}var v=N()((n(e={},this.props.containerClass,!0),n(e,\"react-tel-input\",!0),e)),C=N()({arrow:!0,up:c}),_=N()(n({\"form-control\":!0,\"invalid-number\":!t,open:c},this.props.inputClass,!0)),w=N()({\"selected-flag\":!0,open:c}),S=N()(n({\"flag-dropdown\":!0,\"invalid-number\":!t,open:c},this.props.buttonClass,!0)),j=\"flag \".concat(u&&u.iso2);return y.a.createElement(\"div\",{className:\"\".concat(v,\" \").concat(this.props.className),style:this.props.style||this.props.containerStyle,onKeyDown:this.handleKeydown},b&&y.a.createElement(\"div\",{className:\"special-label\"},b),r&&y.a.createElement(\"div\",{className:\"invalid-number-message\"},r),y.a.createElement(\"input\",Object.assign({className:_,style:this.props.inputStyle,onChange:this.handleInput,onClick:this.handleInputClick,onDoubleClick:this.handleDoubleClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onCopy:this.handleInputCopy,value:s,onKeyDown:this.handleInputKeyDown,placeholder:this.props.placeholder,disabled:this.props.disabled,type:\"tel\"},this.props.inputProps,{ref:function(e){a.numberInputRef=e,\"function\"==typeof a.props.inputProps.ref?a.props.inputProps.ref(e):\"object\"==typeof a.props.inputProps.ref&&(a.props.inputProps.ref.current=e)}})),y.a.createElement(\"div\",{className:S,style:this.props.buttonStyle,ref:function(e){return a.dropdownContainerRef=e}},p?y.a.createElement(\"div\",{className:w},p):y.a.createElement(\"div\",{onClick:d?void 0:this.handleFlagDropdownClick,className:w,title:u?\"\".concat(u.localName||u.name,\": + \").concat(u.dialCode):\"\",tabIndex:d?\"-1\":\"0\",role:\"button\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":!!c||void 0},y.a.createElement(\"div\",{className:j},!d&&y.a.createElement(\"div\",{className:C}))),c&&this.getCountryDropdownList()))}}])&&s(r.prototype,l),m&&s(r,m),t}(y.a.Component);F.defaultProps={country:\"\",value:\"\",onlyCountries:[],preferredCountries:[],excludeCountries:[],placeholder:\"1 (702) 123-4567\",searchPlaceholder:\"search\",searchNotFound:\"No entries to show\",flagsImagePath:\"./flags.png\",disabled:!1,containerStyle:{},inputStyle:{},buttonStyle:{},dropdownStyle:{},searchStyle:{},containerClass:\"\",inputClass:\"\",buttonClass:\"\",dropdownClass:\"\",searchClass:\"\",className:\"\",autoFormat:!0,enableAreaCodes:!1,enableTerritories:!1,disableCountryCode:!1,disableDropdown:!1,enableLongNumbers:!1,countryCodeEditable:!0,enableSearch:!1,disableSearchIcon:!1,disableInitialCountryGuess:!1,disableCountryGuess:!1,regions:\"\",inputProps:{},localization:{},masks:null,priority:null,areaCodes:null,preserveOrder:[],defaultMask:\"... ... ... ... ..\",alwaysDefaultMask:!1,prefix:\"+\",copyNumbersOnly:!0,renderStringAsFlag:\"\",autocompleteSearch:!1,jumpCursorToEnd:!0,enableAreaCodeStretch:!1,enableClickOutside:!0,showDropdown:!1,isValid:!0,defaultErrorMessage:\"\",specialLabel:\"Phone\",onEnterKeyPress:null,keys:{UP:38,DOWN:40,RIGHT:39,LEFT:37,ENTER:13,ESC:27,PLUS:43,A:65,Z:90,SPACE:32,TAB:9}};t.default=F}]);","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = usePlacesAutocompleteService;\n\nvar _react = require(\"react\");\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _utils = require(\"./utils\");\n\nvar _constants = require(\"./constants\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction usePlacesAutocompleteService(_ref) {\n var apiKey = _ref.apiKey,\n _ref$libraries = _ref.libraries,\n libraries = _ref$libraries === void 0 ? \"places\" : _ref$libraries,\n _ref$googleMapsScript = _ref.googleMapsScriptBaseUrl,\n googleMapsScriptBaseUrl = _ref$googleMapsScript === void 0 ? _constants.GOOGLE_MAP_SCRIPT_BASE_URL : _ref$googleMapsScript,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 300 : _ref$debounce,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n sessionToken = _ref.sessionToken,\n language = _ref.language;\n var languageQueryParam = language ? \"&language=\".concat(language) : \"\";\n var googleMapsScriptUrl = \"\".concat(googleMapsScriptBaseUrl, \"?key=\").concat(apiKey, \"&libraries=\").concat(libraries).concat(languageQueryParam);\n\n var _useState = (0, _react.useState)([]),\n _useState2 = _slicedToArray(_useState, 2),\n placePredictions = _useState2[0],\n setPlacePredictions = _useState2[1];\n\n var _useState3 = (0, _react.useState)(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isPlacePredsLoading = _useState4[0],\n setIsPlacePredsLoading = _useState4[1];\n\n var _useState5 = (0, _react.useState)(null),\n _useState6 = _slicedToArray(_useState5, 2),\n placeInputValue = _useState6[0],\n setPlaceInputValue = _useState6[1];\n\n var _useState7 = (0, _react.useState)(false),\n _useState8 = _slicedToArray(_useState7, 2),\n isQueryPredsLoading = _useState8[0],\n setIsQueryPredsLoading = _useState8[1];\n\n var _useState9 = (0, _react.useState)(false),\n _useState10 = _slicedToArray(_useState9, 2),\n queryInputValue = _useState10[0],\n setQueryInputValue = _useState10[1];\n\n var _useState11 = (0, _react.useState)([]),\n _useState12 = _slicedToArray(_useState11, 2),\n queryPredictions = _useState12[0],\n setQueryPredictions = _useState12[1];\n\n var placesAutocompleteService = (0, _react.useRef)(null);\n var placesService = (0, _react.useRef)(null);\n var autocompleteSession = (0, _react.useRef)(null);\n var handleLoadScript = (0, _react.useCallback)(function () {\n return (0, _utils.loadGoogleMapScript)(googleMapsScriptBaseUrl, googleMapsScriptUrl);\n }, [googleMapsScriptBaseUrl, googleMapsScriptUrl]);\n var debouncedPlacePredictions = (0, _react.useCallback)((0, _lodash.default)(function (optionsArg) {\n if (placesAutocompleteService.current && optionsArg.input) placesAutocompleteService.current.getPlacePredictions(_objectSpread(_objectSpread(_objectSpread({}, sessionToken && autocompleteSession.current ? {\n sessionToken: autocompleteSession.current\n } : {}), options), optionsArg), function (r) {\n setIsPlacePredsLoading(false);\n setPlacePredictions(r || []);\n });\n }, debounce), [debounce]);\n var debouncedQueryPredictions = (0, _react.useCallback)((0, _lodash.default)(function (optionsArg) {\n if (placesAutocompleteService.current && optionsArg.input) placesAutocompleteService.current.getQueryPredictions(_objectSpread(_objectSpread(_objectSpread({}, sessionToken && autocompleteSession.current ? {\n sessionToken: autocompleteSession.current\n } : {}), options), optionsArg), function (r) {\n setIsQueryPredsLoading(false);\n setQueryPredictions(r || []);\n });\n }, debounce), [debounce]);\n (0, _react.useEffect)(function () {\n if (!_utils.isBrowser) return;\n\n var buildService = function buildService() {\n // eslint-disable-next-line no-undef\n if (!google) return console.error(\"Google has not been found. Make sure your provide apiKey prop.\"); // eslint-disable-next-line no-undef\n\n placesAutocompleteService.current = new google.maps.places.AutocompleteService(); // eslint-disable-next-line no-undef\n\n placesService.current = new google.maps.places.PlacesService(document.createElement(\"div\"));\n if (sessionToken) autocompleteSession.current = new google.maps.places.AutocompleteSessionToken();\n };\n\n if (apiKey) {\n handleLoadScript().then(function () {\n return buildService();\n });\n } else {\n buildService();\n }\n }, []);\n return {\n placesService: placesService.current,\n autocompleteSessionToken: autocompleteSession.current,\n placesAutocompleteService: placesAutocompleteService.current,\n placePredictions: placeInputValue ? placePredictions : [],\n isPlacePredictionsLoading: isPlacePredsLoading,\n getPlacePredictions: function getPlacePredictions(opt) {\n if (opt.input) {\n setPlaceInputValue(opt.input);\n setIsPlacePredsLoading(true);\n debouncedPlacePredictions(opt);\n return;\n }\n\n setPlacePredictions([]);\n setPlaceInputValue(null);\n debouncedPlacePredictions(opt);\n setIsPlacePredsLoading(false);\n },\n queryPredictions: queryInputValue ? queryPredictions : [],\n isQueryPredictionsLoading: isQueryPredsLoading,\n getQueryPredictions: function getQueryPredictions(opt) {\n if (opt.input) {\n setQueryInputValue(opt.input);\n setIsQueryPredsLoading(true);\n debouncedQueryPredictions(opt);\n return;\n }\n\n setQueryPredictions([]);\n setQueryInputValue(null);\n debouncedQueryPredictions(opt);\n setIsQueryPredsLoading(false);\n },\n refreshSessionToken: function refreshSessionToken() {\n autocompleteSession.current = new google.maps.places.AutocompleteSessionToken();\n }\n };\n}","import getNamedContext from '../getNamedContext';\nconst HeaderShownContext = getNamedContext('HeaderShownContext', false);\nexport default HeaderShownContext;\n//# sourceMappingURL=HeaderShownContext.js.map","import { Platform } from 'react-native';\nexport default function getDefaultHeaderHeight(layout, modalPresentation, statusBarHeight) {\n let headerHeight;\n const isLandscape = layout.width > layout.height;\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.isTV) {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 50;\n }\n } else {\n if (isLandscape) {\n headerHeight = 32;\n } else {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 44;\n }\n }\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n return headerHeight + statusBarHeight;\n}\n//# sourceMappingURL=getDefaultHeaderHeight.js.map","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\n// src/index.tsx\nimport React, { useRef, useEffect, useState } from \"react\";\n\n// src/third-party/qrcodegen/index.ts\n/**\n * @license QR Code generator library (TypeScript)\n * Copyright (c) Project Nayuki.\n * SPDX-License-Identifier: MIT\n */\nvar qrcodegen;\n((qrcodegen2) => {\n const _QrCode = class {\n constructor(version, errorCorrectionLevel, dataCodewords, msk) {\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n this.modules = [];\n this.isFunction = [];\n if (version < _QrCode.MIN_VERSION || version > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version value out of range\");\n if (msk < -1 || msk > 7)\n throw new RangeError(\"Mask value out of range\");\n this.size = version * 4 + 17;\n let row = [];\n for (let i = 0; i < this.size; i++)\n row.push(false);\n for (let i = 0; i < this.size; i++) {\n this.modules.push(row.slice());\n this.isFunction.push(row.slice());\n }\n this.drawFunctionPatterns();\n const allCodewords = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n if (msk == -1) {\n let minPenalty = 1e9;\n for (let i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n const penalty = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i);\n }\n }\n assert(0 <= msk && msk <= 7);\n this.mask = msk;\n this.applyMask(msk);\n this.drawFormatBits(msk);\n this.isFunction = [];\n }\n static encodeText(text, ecl) {\n const segs = qrcodegen2.QrSegment.makeSegments(text);\n return _QrCode.encodeSegments(segs, ecl);\n }\n static encodeBinary(data, ecl) {\n const seg = qrcodegen2.QrSegment.makeBytes(data);\n return _QrCode.encodeSegments([seg], ecl);\n }\n static encodeSegments(segs, ecl, minVersion = 1, maxVersion = 40, mask = -1, boostEcl = true) {\n if (!(_QrCode.MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= _QrCode.MAX_VERSION) || mask < -1 || mask > 7)\n throw new RangeError(\"Invalid value\");\n let version;\n let dataUsedBits;\n for (version = minVersion; ; version++) {\n const dataCapacityBits2 = _QrCode.getNumDataCodewords(version, ecl) * 8;\n const usedBits = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits2) {\n dataUsedBits = usedBits;\n break;\n }\n if (version >= maxVersion)\n throw new RangeError(\"Data too long\");\n }\n for (const newEcl of [_QrCode.Ecc.MEDIUM, _QrCode.Ecc.QUARTILE, _QrCode.Ecc.HIGH]) {\n if (boostEcl && dataUsedBits <= _QrCode.getNumDataCodewords(version, newEcl) * 8)\n ecl = newEcl;\n }\n let bb = [];\n for (const seg of segs) {\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (const b of seg.getData())\n bb.push(b);\n }\n assert(bb.length == dataUsedBits);\n const dataCapacityBits = _QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - bb.length % 8) % 8, bb);\n assert(bb.length % 8 == 0);\n for (let padByte = 236; bb.length < dataCapacityBits; padByte ^= 236 ^ 17)\n appendBits(padByte, 8, bb);\n let dataCodewords = [];\n while (dataCodewords.length * 8 < bb.length)\n dataCodewords.push(0);\n bb.forEach((b, i) => dataCodewords[i >>> 3] |= b << 7 - (i & 7));\n return new _QrCode(version, ecl, dataCodewords, mask);\n }\n getModule(x, y) {\n return 0 <= x && x < this.size && 0 <= y && y < this.size && this.modules[y][x];\n }\n getModules() {\n return this.modules;\n }\n drawFunctionPatterns() {\n for (let i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 == 0);\n this.setFunctionModule(i, 6, i % 2 == 0);\n }\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n const alignPatPos = this.getAlignmentPatternPositions();\n const numAlign = alignPatPos.length;\n for (let i = 0; i < numAlign; i++) {\n for (let j = 0; j < numAlign; j++) {\n if (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n this.drawFormatBits(0);\n this.drawVersion();\n }\n drawFormatBits(mask) {\n const data = this.errorCorrectionLevel.formatBits << 3 | mask;\n let rem = data;\n for (let i = 0; i < 10; i++)\n rem = rem << 1 ^ (rem >>> 9) * 1335;\n const bits = (data << 10 | rem) ^ 21522;\n assert(bits >>> 15 == 0);\n for (let i = 0; i <= 5; i++)\n this.setFunctionModule(8, i, getBit(bits, i));\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (let i = 9; i < 15; i++)\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n for (let i = 0; i < 8; i++)\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n for (let i = 8; i < 15; i++)\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n this.setFunctionModule(8, this.size - 8, true);\n }\n drawVersion() {\n if (this.version < 7)\n return;\n let rem = this.version;\n for (let i = 0; i < 12; i++)\n rem = rem << 1 ^ (rem >>> 11) * 7973;\n const bits = this.version << 12 | rem;\n assert(bits >>> 18 == 0);\n for (let i = 0; i < 18; i++) {\n const color = getBit(bits, i);\n const a = this.size - 11 + i % 3;\n const b = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n }\n drawFinderPattern(x, y) {\n for (let dy = -4; dy <= 4; dy++) {\n for (let dx = -4; dx <= 4; dx++) {\n const dist = Math.max(Math.abs(dx), Math.abs(dy));\n const xx = x + dx;\n const yy = y + dy;\n if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size)\n this.setFunctionModule(xx, yy, dist != 2 && dist != 4);\n }\n }\n }\n drawAlignmentPattern(x, y) {\n for (let dy = -2; dy <= 2; dy++) {\n for (let dx = -2; dx <= 2; dx++)\n this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n }\n }\n setFunctionModule(x, y, isDark) {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n }\n addEccAndInterleave(data) {\n const ver = this.version;\n const ecl = this.errorCorrectionLevel;\n if (data.length != _QrCode.getNumDataCodewords(ver, ecl))\n throw new RangeError(\"Invalid argument\");\n const numBlocks = _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n const blockEccLen = _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n const rawCodewords = Math.floor(_QrCode.getNumRawDataModules(ver) / 8);\n const numShortBlocks = numBlocks - rawCodewords % numBlocks;\n const shortBlockLen = Math.floor(rawCodewords / numBlocks);\n let blocks = [];\n const rsDiv = _QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (let i = 0, k = 0; i < numBlocks; i++) {\n let dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n k += dat.length;\n const ecc = _QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks)\n dat.push(0);\n blocks.push(dat.concat(ecc));\n }\n let result = [];\n for (let i = 0; i < blocks[0].length; i++) {\n blocks.forEach((block, j) => {\n if (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n result.push(block[i]);\n });\n }\n assert(result.length == rawCodewords);\n return result;\n }\n drawCodewords(data) {\n if (data.length != Math.floor(_QrCode.getNumRawDataModules(this.version) / 8))\n throw new RangeError(\"Invalid argument\");\n let i = 0;\n for (let right = this.size - 1; right >= 1; right -= 2) {\n if (right == 6)\n right = 5;\n for (let vert = 0; vert < this.size; vert++) {\n for (let j = 0; j < 2; j++) {\n const x = right - j;\n const upward = (right + 1 & 2) == 0;\n const y = upward ? this.size - 1 - vert : vert;\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n }\n }\n }\n assert(i == data.length * 8);\n }\n applyMask(mask) {\n if (mask < 0 || mask > 7)\n throw new RangeError(\"Mask value out of range\");\n for (let y = 0; y < this.size; y++) {\n for (let x = 0; x < this.size; x++) {\n let invert;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 == 0;\n break;\n case 1:\n invert = y % 2 == 0;\n break;\n case 2:\n invert = x % 3 == 0;\n break;\n case 3:\n invert = (x + y) % 3 == 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0;\n break;\n case 5:\n invert = x * y % 2 + x * y % 3 == 0;\n break;\n case 6:\n invert = (x * y % 2 + x * y % 3) % 2 == 0;\n break;\n case 7:\n invert = ((x + y) % 2 + x * y % 3) % 2 == 0;\n break;\n default:\n throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert)\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n }\n getPenaltyScore() {\n let result = 0;\n for (let y = 0; y < this.size; y++) {\n let runColor = false;\n let runX = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let x = 0; x < this.size; x++) {\n if (this.modules[y][x] == runColor) {\n runX++;\n if (runX == 5)\n result += _QrCode.PENALTY_N1;\n else if (runX > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let x = 0; x < this.size; x++) {\n let runColor = false;\n let runY = 0;\n let runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (let y = 0; y < this.size; y++) {\n if (this.modules[y][x] == runColor) {\n runY++;\n if (runY == 5)\n result += _QrCode.PENALTY_N1;\n else if (runY > 5)\n result++;\n } else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * _QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * _QrCode.PENALTY_N3;\n }\n for (let y = 0; y < this.size - 1; y++) {\n for (let x = 0; x < this.size - 1; x++) {\n const color = this.modules[y][x];\n if (color == this.modules[y][x + 1] && color == this.modules[y + 1][x] && color == this.modules[y + 1][x + 1])\n result += _QrCode.PENALTY_N2;\n }\n }\n let dark = 0;\n for (const row of this.modules)\n dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark);\n const total = this.size * this.size;\n const k = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(0 <= k && k <= 9);\n result += k * _QrCode.PENALTY_N4;\n assert(0 <= result && result <= 2568888);\n return result;\n }\n getAlignmentPatternPositions() {\n if (this.version == 1)\n return [];\n else {\n const numAlign = Math.floor(this.version / 7) + 2;\n const step = this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;\n let result = [6];\n for (let pos = this.size - 7; result.length < numAlign; pos -= step)\n result.splice(1, 0, pos);\n return result;\n }\n }\n static getNumRawDataModules(ver) {\n if (ver < _QrCode.MIN_VERSION || ver > _QrCode.MAX_VERSION)\n throw new RangeError(\"Version number out of range\");\n let result = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n const numAlign = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7)\n result -= 36;\n }\n assert(208 <= result && result <= 29648);\n return result;\n }\n static getNumDataCodewords(ver, ecl) {\n return Math.floor(_QrCode.getNumRawDataModules(ver) / 8) - _QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] * _QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n }\n static reedSolomonComputeDivisor(degree) {\n if (degree < 1 || degree > 255)\n throw new RangeError(\"Degree out of range\");\n let result = [];\n for (let i = 0; i < degree - 1; i++)\n result.push(0);\n result.push(1);\n let root = 1;\n for (let i = 0; i < degree; i++) {\n for (let j = 0; j < result.length; j++) {\n result[j] = _QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length)\n result[j] ^= result[j + 1];\n }\n root = _QrCode.reedSolomonMultiply(root, 2);\n }\n return result;\n }\n static reedSolomonComputeRemainder(data, divisor) {\n let result = divisor.map((_) => 0);\n for (const b of data) {\n const factor = b ^ result.shift();\n result.push(0);\n divisor.forEach((coef, i) => result[i] ^= _QrCode.reedSolomonMultiply(coef, factor));\n }\n return result;\n }\n static reedSolomonMultiply(x, y) {\n if (x >>> 8 != 0 || y >>> 8 != 0)\n throw new RangeError(\"Byte out of range\");\n let z = 0;\n for (let i = 7; i >= 0; i--) {\n z = z << 1 ^ (z >>> 7) * 285;\n z ^= (y >>> i & 1) * x;\n }\n assert(z >>> 8 == 0);\n return z;\n }\n finderPenaltyCountPatterns(runHistory) {\n const n = runHistory[1];\n assert(n <= this.size * 3);\n const core = n > 0 && runHistory[2] == n && runHistory[3] == n * 3 && runHistory[4] == n && runHistory[5] == n;\n return (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0) + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0);\n }\n finderPenaltyTerminateAndCount(currentRunColor, currentRunLength, runHistory) {\n if (currentRunColor) {\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size;\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n }\n finderPenaltyAddHistory(currentRunLength, runHistory) {\n if (runHistory[0] == 0)\n currentRunLength += this.size;\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n }\n };\n let QrCode = _QrCode;\n QrCode.MIN_VERSION = 1;\n QrCode.MAX_VERSION = 40;\n QrCode.PENALTY_N1 = 3;\n QrCode.PENALTY_N2 = 3;\n QrCode.PENALTY_N3 = 40;\n QrCode.PENALTY_N4 = 10;\n QrCode.ECC_CODEWORDS_PER_BLOCK = [\n [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],\n [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]\n ];\n QrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],\n [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],\n [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],\n [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81]\n ];\n qrcodegen2.QrCode = QrCode;\n function appendBits(val, len, bb) {\n if (len < 0 || len > 31 || val >>> len != 0)\n throw new RangeError(\"Value out of range\");\n for (let i = len - 1; i >= 0; i--)\n bb.push(val >>> i & 1);\n }\n function getBit(x, i) {\n return (x >>> i & 1) != 0;\n }\n function assert(cond) {\n if (!cond)\n throw new Error(\"Assertion error\");\n }\n const _QrSegment = class {\n constructor(mode, numChars, bitData) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0)\n throw new RangeError(\"Invalid argument\");\n this.bitData = bitData.slice();\n }\n static makeBytes(data) {\n let bb = [];\n for (const b of data)\n appendBits(b, 8, bb);\n return new _QrSegment(_QrSegment.Mode.BYTE, data.length, bb);\n }\n static makeNumeric(digits) {\n if (!_QrSegment.isNumeric(digits))\n throw new RangeError(\"String contains non-numeric characters\");\n let bb = [];\n for (let i = 0; i < digits.length; ) {\n const n = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substr(i, n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new _QrSegment(_QrSegment.Mode.NUMERIC, digits.length, bb);\n }\n static makeAlphanumeric(text) {\n if (!_QrSegment.isAlphanumeric(text))\n throw new RangeError(\"String contains unencodable characters in alphanumeric mode\");\n let bb = [];\n let i;\n for (i = 0; i + 2 <= text.length; i += 2) {\n let temp = _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += _QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length)\n appendBits(_QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n return new _QrSegment(_QrSegment.Mode.ALPHANUMERIC, text.length, bb);\n }\n static makeSegments(text) {\n if (text == \"\")\n return [];\n else if (_QrSegment.isNumeric(text))\n return [_QrSegment.makeNumeric(text)];\n else if (_QrSegment.isAlphanumeric(text))\n return [_QrSegment.makeAlphanumeric(text)];\n else\n return [_QrSegment.makeBytes(_QrSegment.toUtf8ByteArray(text))];\n }\n static makeEci(assignVal) {\n let bb = [];\n if (assignVal < 0)\n throw new RangeError(\"ECI assignment value out of range\");\n else if (assignVal < 1 << 7)\n appendBits(assignVal, 8, bb);\n else if (assignVal < 1 << 14) {\n appendBits(2, 2, bb);\n appendBits(assignVal, 14, bb);\n } else if (assignVal < 1e6) {\n appendBits(6, 3, bb);\n appendBits(assignVal, 21, bb);\n } else\n throw new RangeError(\"ECI assignment value out of range\");\n return new _QrSegment(_QrSegment.Mode.ECI, 0, bb);\n }\n static isNumeric(text) {\n return _QrSegment.NUMERIC_REGEX.test(text);\n }\n static isAlphanumeric(text) {\n return _QrSegment.ALPHANUMERIC_REGEX.test(text);\n }\n getData() {\n return this.bitData.slice();\n }\n static getTotalBits(segs, version) {\n let result = 0;\n for (const seg of segs) {\n const ccbits = seg.mode.numCharCountBits(version);\n if (seg.numChars >= 1 << ccbits)\n return Infinity;\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n }\n static toUtf8ByteArray(str) {\n str = encodeURI(str);\n let result = [];\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) != \"%\")\n result.push(str.charCodeAt(i));\n else {\n result.push(parseInt(str.substr(i + 1, 2), 16));\n i += 2;\n }\n }\n return result;\n }\n };\n let QrSegment = _QrSegment;\n QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n QrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n qrcodegen2.QrSegment = QrSegment;\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrCode;\n ((QrCode2) => {\n const _Ecc = class {\n constructor(ordinal, formatBits) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n };\n let Ecc = _Ecc;\n Ecc.LOW = new _Ecc(0, 1);\n Ecc.MEDIUM = new _Ecc(1, 0);\n Ecc.QUARTILE = new _Ecc(2, 3);\n Ecc.HIGH = new _Ecc(3, 2);\n QrCode2.Ecc = Ecc;\n })(QrCode = qrcodegen2.QrCode || (qrcodegen2.QrCode = {}));\n})(qrcodegen || (qrcodegen = {}));\n((qrcodegen2) => {\n let QrSegment;\n ((QrSegment2) => {\n const _Mode = class {\n constructor(modeBits, numBitsCharCount) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n numCharCountBits(ver) {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n }\n };\n let Mode = _Mode;\n Mode.NUMERIC = new _Mode(1, [10, 12, 14]);\n Mode.ALPHANUMERIC = new _Mode(2, [9, 11, 13]);\n Mode.BYTE = new _Mode(4, [8, 16, 16]);\n Mode.KANJI = new _Mode(8, [8, 10, 12]);\n Mode.ECI = new _Mode(7, [0, 0, 0]);\n QrSegment2.Mode = Mode;\n })(QrSegment = qrcodegen2.QrSegment || (qrcodegen2.QrSegment = {}));\n})(qrcodegen || (qrcodegen = {}));\nvar qrcodegen_default = qrcodegen;\n\n// src/index.tsx\n/**\n * @license qrcode.react\n * Copyright (c) Paul O'Shannessy\n * SPDX-License-Identifier: ISC\n */\nvar ERROR_LEVEL_MAP = {\n L: qrcodegen_default.QrCode.Ecc.LOW,\n M: qrcodegen_default.QrCode.Ecc.MEDIUM,\n Q: qrcodegen_default.QrCode.Ecc.QUARTILE,\n H: qrcodegen_default.QrCode.Ecc.HIGH\n};\nvar DEFAULT_SIZE = 128;\nvar DEFAULT_LEVEL = \"L\";\nvar DEFAULT_BGCOLOR = \"#FFFFFF\";\nvar DEFAULT_FGCOLOR = \"#000000\";\nvar DEFAULT_INCLUDEMARGIN = false;\nvar MARGIN_SIZE = 4;\nvar DEFAULT_IMG_SCALE = 0.1;\nfunction generatePath(modules, margin = 0) {\n const ops = [];\n modules.forEach(function(row, y) {\n let start = null;\n row.forEach(function(cell, x) {\n if (!cell && start !== null) {\n ops.push(`M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`);\n start = null;\n return;\n }\n if (x === row.length - 1) {\n if (!cell) {\n return;\n }\n if (start === null) {\n ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`);\n } else {\n ops.push(`M${start + margin},${y + margin} h${x + 1 - start}v1H${start + margin}z`);\n }\n return;\n }\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join(\"\");\n}\nfunction excavateModules(modules, excavation) {\n return modules.slice().map((row, y) => {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n return row.map((cell, x) => {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n return false;\n });\n });\n}\nfunction getImageSettings(cells, size, includeMargin, imageSettings) {\n if (imageSettings == null) {\n return null;\n }\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n const scale = numCells / size;\n const w = (imageSettings.width || defaultSize) * scale;\n const h = (imageSettings.height || defaultSize) * scale;\n const x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n const y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n let excavation = null;\n if (imageSettings.excavate) {\n let floorX = Math.floor(x);\n let floorY = Math.floor(y);\n let ceilW = Math.ceil(w + x - floorX);\n let ceilH = Math.ceil(h + y - floorY);\n excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };\n }\n return { x, y, h, w, excavation };\n}\nvar SUPPORTS_PATH2D = function() {\n try {\n new Path2D().addPath(new Path2D());\n } catch (e) {\n return false;\n }\n return true;\n}();\nfunction QRCodeCanvas(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n style,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"style\",\n \"imageSettings\"\n ]);\n const imgSrc = imageSettings == null ? void 0 : imageSettings.src;\n const _canvas = useRef(null);\n const _image = useRef(null);\n const [isImgLoaded, setIsImageLoaded] = useState(false);\n useEffect(() => {\n if (_canvas.current != null) {\n const canvas = _canvas.current;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return;\n }\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n const image = _image.current;\n const haveImageToRender = calculatedImageSettings != null && image !== null && image.complete && image.naturalHeight !== 0 && image.naturalWidth !== 0;\n if (haveImageToRender) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n }\n const pixelRatio = window.devicePixelRatio || 1;\n canvas.height = canvas.width = size * pixelRatio;\n const scale = size / numCells * pixelRatio;\n ctx.scale(scale, scale);\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, numCells, numCells);\n ctx.fillStyle = fgColor;\n if (SUPPORTS_PATH2D) {\n ctx.fill(new Path2D(generatePath(cells, margin)));\n } else {\n cells.forEach(function(row, rdx) {\n row.forEach(function(cell, cdx) {\n if (cell) {\n ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n }\n });\n });\n }\n if (haveImageToRender) {\n ctx.drawImage(image, calculatedImageSettings.x + margin, calculatedImageSettings.y + margin, calculatedImageSettings.w, calculatedImageSettings.h);\n }\n }\n });\n useEffect(() => {\n setIsImageLoaded(false);\n }, [imgSrc]);\n const canvasStyle = __spreadValues({ height: size, width: size }, style);\n let img = null;\n if (imgSrc != null) {\n img = /* @__PURE__ */ React.createElement(\"img\", {\n src: imgSrc,\n key: imgSrc,\n style: { display: \"none\" },\n onLoad: () => {\n setIsImageLoaded(true);\n },\n ref: _image\n });\n }\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"canvas\", __spreadValues({\n style: canvasStyle,\n height: size,\n width: size,\n ref: _canvas\n }, otherProps)), img);\n}\nfunction QRCodeSVG(props) {\n const _a = props, {\n value,\n size = DEFAULT_SIZE,\n level = DEFAULT_LEVEL,\n bgColor = DEFAULT_BGCOLOR,\n fgColor = DEFAULT_FGCOLOR,\n includeMargin = DEFAULT_INCLUDEMARGIN,\n imageSettings\n } = _a, otherProps = __objRest(_a, [\n \"value\",\n \"size\",\n \"level\",\n \"bgColor\",\n \"fgColor\",\n \"includeMargin\",\n \"imageSettings\"\n ]);\n let cells = qrcodegen_default.QrCode.encodeText(value, ERROR_LEVEL_MAP[level]).getModules();\n const margin = includeMargin ? MARGIN_SIZE : 0;\n const numCells = cells.length + margin * 2;\n const calculatedImageSettings = getImageSettings(cells, size, includeMargin, imageSettings);\n let image = null;\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n image = /* @__PURE__ */ React.createElement(\"image\", {\n xlinkHref: imageSettings.src,\n height: calculatedImageSettings.h,\n width: calculatedImageSettings.w,\n x: calculatedImageSettings.x + margin,\n y: calculatedImageSettings.y + margin,\n preserveAspectRatio: \"none\"\n });\n }\n const fgPath = generatePath(cells, margin);\n return /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n height: size,\n width: size,\n viewBox: `0 0 ${numCells} ${numCells}`\n }, otherProps), /* @__PURE__ */ React.createElement(\"path\", {\n fill: bgColor,\n d: `M0,0 h${numCells}v${numCells}H0z`,\n shapeRendering: \"crispEdges\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n fill: fgColor,\n d: fgPath,\n shapeRendering: \"crispEdges\"\n }), image);\n}\nvar QRCode = (props) => {\n const _a = props, { renderAs } = _a, otherProps = __objRest(_a, [\"renderAs\"]);\n if (renderAs === \"svg\") {\n return /* @__PURE__ */ React.createElement(QRCodeSVG, __spreadValues({}, otherProps));\n }\n return /* @__PURE__ */ React.createElement(QRCodeCanvas, __spreadValues({}, otherProps));\n};\nexport {\n QRCodeCanvas,\n QRCodeSVG,\n QRCode as default\n};\n","\"use strict\";\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 */\nvar aStackPool = [];\nvar bStackPool = [];\n/**\n * Checks if two values are equal. Values may be primitives, arrays, or objects.\n * Returns true if both arguments have the same keys and values.\n *\n * @see http://underscorejs.org\n * @copyright 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.\n * @license MIT\n */\n\nfunction areEqual(a, b) {\n var aStack = aStackPool.length ? aStackPool.pop() : [];\n var bStack = bStackPool.length ? bStackPool.pop() : [];\n var result = eq(a, b, aStack, bStack);\n aStack.length = 0;\n bStack.length = 0;\n aStackPool.push(aStack);\n bStackPool.push(bStack);\n return result;\n}\n\nfunction eq(a, b, aStack, bStack) {\n if (a === b) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n return a !== 0 || 1 / a == 1 / b;\n }\n\n if (a == null || b == null) {\n // a or b can be `null` or `undefined`\n return false;\n }\n\n if (typeof a != 'object' || typeof b != 'object') {\n return false;\n }\n\n var objToStr = Object.prototype.toString;\n var className = objToStr.call(a);\n\n if (className != objToStr.call(b)) {\n return false;\n }\n\n switch (className) {\n case '[object String]':\n return a == String(b);\n\n case '[object Number]':\n return isNaN(a) || isNaN(b) ? false : a == Number(b);\n\n case '[object Date]':\n case '[object Boolean]':\n return +a == +b;\n\n case '[object RegExp]':\n return a.source == b.source && a.global == b.global && a.multiline == b.multiline && a.ignoreCase == b.ignoreCase;\n } // Assume equality for cyclic structures.\n\n\n var length = aStack.length;\n\n while (length--) {\n if (aStack[length] == a) {\n return bStack[length] == b;\n }\n }\n\n aStack.push(a);\n bStack.push(b);\n var size = 0; // Recursively compare objects and arrays.\n\n if (className === '[object Array]') {\n size = a.length;\n\n if (size !== b.length) {\n return false;\n } // Deep compare the contents, ignoring non-numeric properties.\n\n\n while (size--) {\n if (!eq(a[size], b[size], aStack, bStack)) {\n return false;\n }\n }\n } else {\n if (a.constructor !== b.constructor) {\n return false;\n }\n\n if (a.hasOwnProperty('valueOf') && b.hasOwnProperty('valueOf')) {\n return a.valueOf() == b.valueOf();\n }\n\n var keys = Object.keys(a);\n\n if (keys.length != Object.keys(b).length) {\n return false;\n }\n\n for (var i = 0; i < keys.length; i++) {\n if (!eq(a[keys[i]], b[keys[i]], aStack, bStack)) {\n return false;\n }\n }\n }\n\n aStack.pop();\n bStack.pop();\n return true;\n}\n\nmodule.exports = areEqual;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _react=_interopRequireWildcard(require(\"react\"));var _excluded=[\"placeholder\",\"separator\",\"isLastChild\",\"inputStyle\",\"focus\",\"isDisabled\",\"hasErrored\",\"errorStyle\",\"focusStyle\",\"disabledStyle\",\"shouldAutoFocus\",\"isInputNum\",\"index\",\"value\",\"className\",\"isInputSecure\"];function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{\"default\":obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj);}return newObj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i=0)continue;target[key]=source[key];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target,props){for(var i=0;i0){console.error('Length of the placeholder should be equal to the number of inputs.');}}});_defineProperty(_assertThisInitialized(_this2),\"handleOtpChange\",function(otp){var onChange=_this2.props.onChange;var otpValue=otp.join('');onChange(otpValue);});_defineProperty(_assertThisInitialized(_this2),\"isInputValueValid\",function(value){var isTypeValid=_this2.props.isInputNum?!isNaN(parseInt(value,10)):typeof value==='string';return isTypeValid&&value.trim().length===1;});_defineProperty(_assertThisInitialized(_this2),\"focusInput\",function(input){var numInputs=_this2.props.numInputs;var activeInput=Math.max(Math.min(numInputs-1,input),0);_this2.setState({activeInput:activeInput});});_defineProperty(_assertThisInitialized(_this2),\"focusNextInput\",function(){var activeInput=_this2.state.activeInput;_this2.focusInput(activeInput+1);});_defineProperty(_assertThisInitialized(_this2),\"focusPrevInput\",function(){var activeInput=_this2.state.activeInput;_this2.focusInput(activeInput-1);});_defineProperty(_assertThisInitialized(_this2),\"changeCodeAtFocus\",function(value){var activeInput=_this2.state.activeInput;var otp=_this2.getOtpValue();otp[activeInput]=value[0];_this2.handleOtpChange(otp);});_defineProperty(_assertThisInitialized(_this2),\"handleOnPaste\",function(e){e.preventDefault();var activeInput=_this2.state.activeInput;var _this2$props2=_this2.props,numInputs=_this2$props2.numInputs,isDisabled=_this2$props2.isDisabled;if(isDisabled){return;}var otp=_this2.getOtpValue();var nextActiveInput=activeInput;var pastedData=e.clipboardData.getData('text/plain').slice(0,numInputs-activeInput).split('');for(var pos=0;pos=activeInput&&pastedData.length>0){otp[pos]=pastedData.shift();nextActiveInput++;}}_this2.setState({activeInput:nextActiveInput},function(){_this2.focusInput(nextActiveInput);_this2.handleOtpChange(otp);});});_defineProperty(_assertThisInitialized(_this2),\"handleOnChange\",function(e){var value=e.target.value;if(_this2.isInputValueValid(value)){_this2.changeCodeAtFocus(value);}});_defineProperty(_assertThisInitialized(_this2),\"handleOnKeyDown\",function(e){if(e.keyCode===BACKSPACE||e.key==='Backspace'){e.preventDefault();_this2.changeCodeAtFocus('');_this2.focusPrevInput();}else if(e.keyCode===DELETE||e.key==='Delete'){e.preventDefault();_this2.changeCodeAtFocus('');}else if(e.keyCode===LEFT_ARROW||e.key==='ArrowLeft'){e.preventDefault();_this2.focusPrevInput();}else if(e.keyCode===RIGHT_ARROW||e.key==='ArrowRight'){e.preventDefault();_this2.focusNextInput();}else if(e.keyCode===SPACEBAR||e.key===' '||e.key==='Spacebar'||e.key==='Space'){e.preventDefault();}});_defineProperty(_assertThisInitialized(_this2),\"handleOnInput\",function(e){var value=e.target.value;if(_this2.isInputValueValid(value)){_this2.focusNextInput();}else if(value&&value.trim().length>1){e.clipboardData={getData:function getData(){return value.trim();}};_this2.handleOnPaste(e);}else{if(!_this2.props.isInputNum){var nativeEvent=e.nativeEvent;if(nativeEvent.data===null&&nativeEvent.inputType==='deleteContentBackward'){e.preventDefault();_this2.changeCodeAtFocus('');_this2.focusPrevInput();}}}});_defineProperty(_assertThisInitialized(_this2),\"renderInputs\",function(){var activeInput=_this2.state.activeInput;var _this2$props3=_this2.props,numInputs=_this2$props3.numInputs,inputStyle=_this2$props3.inputStyle,focusStyle=_this2$props3.focusStyle,separator=_this2$props3.separator,isDisabled=_this2$props3.isDisabled,disabledStyle=_this2$props3.disabledStyle,hasErrored=_this2$props3.hasErrored,errorStyle=_this2$props3.errorStyle,shouldAutoFocus=_this2$props3.shouldAutoFocus,isInputNum=_this2$props3.isInputNum,isInputSecure=_this2$props3.isInputSecure,className=_this2$props3.className;var inputs=[];var otp=_this2.getOtpValue();var placeholder=_this2.getPlaceholderValue();var dataCy=_this2.props['data-cy'];var dataTestId=_this2.props['data-testid'];var _loop=function _loop(i){inputs.push(_react[\"default\"].createElement(SingleOtpInput,{placeholder:placeholder&&placeholder[i],key:i,index:i,focus:activeInput===i,value:otp&&otp[i],onChange:_this2.handleOnChange,onKeyDown:_this2.handleOnKeyDown,onInput:_this2.handleOnInput,onPaste:_this2.handleOnPaste,onFocus:function onFocus(e){_this2.setState({activeInput:i});},onBlur:function onBlur(){return _this2.setState({activeInput:-1});},separator:separator,inputStyle:inputStyle,focusStyle:focusStyle,isLastChild:i===numInputs-1,isDisabled:isDisabled,disabledStyle:disabledStyle,hasErrored:hasErrored,errorStyle:errorStyle,shouldAutoFocus:shouldAutoFocus,isInputNum:isInputNum,isInputSecure:isInputSecure,className:className,\"data-cy\":dataCy&&\"\".concat(dataCy,\"-\").concat(i),\"data-testid\":dataTestId&&\"\".concat(dataTestId,\"-\").concat(i)}));};for(var i=0;i,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${labelId} ${ariaLabelledby}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","import { Platform, Linking } from 'react-native'\n\nconst isString = (str) => Object.prototype.toString.call(str) === '[object String]'\nconst isBool = (bool) => Object.prototype.toString.call(bool) === '[object Boolean]'\n\nconst createError = (msg = '') => Promise.reject(new Error(msg))\n\nconst openLink = (url, skipCanOpen = false) => {\n if (skipCanOpen) {\n return Linking.openURL(url)\n }\n\n return Linking.canOpenURL(url).then(canOpen => {\n if (!canOpen) {\n return createError(`invalid URL provided: ${url}`)\n } else {\n return Linking.openURL(url)\n }\n })\n}\n\nconst call = (args = {}) => {\n const settings = Object.assign({\n skipCanOpen: false,\n prompt: true\n }, args)\n\n if (!settings.number) { return createError('no number provided') }\n if (!isString(settings.number)) { return createError('number should be string') }\n if (!isBool(settings.prompt)) { return createError('prompt should be boolean') }\n if (!isBool(settings.skipCanOpen)) { return createError('skipCanOpen should be boolean') }\n\n const url = `${Platform.OS === 'ios' && settings.prompt ? 'telprompt:' : 'tel:'}${settings.number}`\n\n return openLink(url, settings.skipCanOpen)\n}\n\nexport default call\n","import { Linking } from 'react-native'\nimport qs from 'qs'\n\nasync function sendEmail (to, { cc, bcc, subject, body, checkCanOpen = true } = {}) {\n let url = 'mailto:'\n\n if (to) {\n const toStr = Array.isArray(to) ? to.join(',') : to\n url += encodeURIComponent(toStr)\n\n if (cc) {\n cc = Array.isArray(cc) ? cc.join(',') : cc\n }\n\n if (bcc) {\n bcc = Array.isArray(bcc) ? bcc.join(',') : bcc\n }\n\n const query = qs.stringify({ cc, bcc, subject, body })\n\n if (query.length) {\n url += `?${query}`\n }\n }\n\n if (checkCanOpen) {\n const supported = await Linking.canOpenURL(url)\n if (!supported) {\n return Promise.reject(new Error('Provided URL can not be handled'))\n }\n }\n\n return Linking.openURL(url)\n}\n\nexport default sendEmail\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addQuarters\"),require(\"date-fns/addYears\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subQuarters\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/endOfYear\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\"),require(\"date-fns/set\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addQuarters\",\"date-fns/addYears\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subQuarters\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/endOfYear\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\",\"date-fns/set\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addQuarters,e.addYears,e.subDays,e.subWeeks,e.subMonths,e.subQuarters,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,e.endOfMonth,e.endOfYear,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper,e.set)}(this,(function(e,t,r,a,n,o,s,i,p,l,c,d,u,f,h,m,y,v,D,g,k,w,b,S,C,_,M,P,E,N,x,Y,O,I,T,R,L,F,A,W,q,K,B,Q,H,j,V,U,z,$,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe,le){\"use strict\";function ce(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=ce(t),ue=ce(a),fe=ce(n),he=ce(o),me=ce(s),ye=ce(i),ve=ce(p),De=ce(l),ge=ce(c),ke=ce(d),we=ce(u),be=ce(f),Se=ce(h),Ce=ce(m),_e=ce(y),Me=ce(v),Pe=ce(D),Ee=ce(g),Ne=ce(k),xe=ce(w),Ye=ce(b),Oe=ce(S),Ie=ce(C),Te=ce(_),Re=ce(M),Le=ce(P),Fe=ce(E),Ae=ce(N),We=ce(x),qe=ce(Y),Ke=ce(O),Be=ce(I),Qe=ce(T),He=ce(R),je=ce(L),Ve=ce(F),Ue=ce(A),ze=ce(W),$e=ce(q),Ge=ce(K),Je=ce(B),Xe=ce(Q),Ze=ce(H),et=ce(j),tt=ce(U),rt=ce(z),at=ce($),nt=ce(G),ot=ce(J),st=ce(X),it=ce(Z),pt=ce(ee),lt=ce(te),ct=ce(re),dt=ce(ae),ut=ce(ne),ft=ce(oe),ht=ce(se),mt=ce(ie),yt=ce(le);function vt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function Dt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Jt(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return Jt(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||p&&!p(At(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})})):r&&r.some((function(t){return Jt(e,t)}))||!1}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:Je.default(r),maxDate:tt.default(a)})||n&&n.some((function(t){return $t(e,t)}))||o&&!o.some((function(t){return $t(e,t)}))||s&&!s(At(e))||!1}function ir(e,t,r,a){var n=Le.default(e),o=Te.default(e),s=Le.default(t),i=Te.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Gt(e,t)}))||o&&!o.some((function(t){return Gt(e,t)}))||s&&!s(At(e))||!1}function lr(e,t,r){if(!he.default(t)||!he.default(r))return!1;var a=Le.default(t),n=Le.default(r);return a<=e&&n>=e}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate,i=new Date(e,0,1);return ur(i,{minDate:Ze.default(r),maxDate:rt.default(a)})||n&&n.some((function(e){return zt(i,e)}))||o&&!o.some((function(e){return zt(i,e)}))||s&&!s(At(i))||!1}function dr(e,t,r,a){var n=Le.default(e),o=Re.default(e),s=Le.default(t),i=Re.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&Ve.default(e,r)<0||a&&Ve.default(e,a)>0}function fr(e,t){return t.some((function(t){return xe.default(t)===xe.default(e)&&Ne.default(t)===Ne.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&fr(e,r)||a&&!fr(e,a)||n&&!n(e)||!1}function mr(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=At(),s=qe.default(We.default(o,Ne.default(e)),xe.default(e)),i=qe.default(We.default(o,Ne.default(r)),xe.default(r)),p=qe.default(We.default(o,Ne.default(a)),xe.default(a));try{n=!ct.default(s,{start:i,end:p})}catch(e){n=!1}return n}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=_e.default(e,1);return r&&Ue.default(r,n)>0||a&&a.every((function(e){return Ue.default(e,n)>0}))||!1}function vr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ke.default(e,1);return r&&Ue.default(n,r)>0||a&&a.every((function(e){return Ue.default(n,e)>0}))||!1}function Dr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Pe.default(e,1);return r&&ze.default(r,n)>0||a&&a.every((function(e){return ze.default(e,n)>0}))||!1}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=be.default(e,1);return r&&ze.default(n,r)>0||a&&a.every((function(e){return ze.default(n,e)>0}))||!1}function kr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)>=0}));return He.default(a)}return r?He.default(r):t}function wr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)<=0}));return je.default(a)}return r?je.default(r):t}function br(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--holidays\",r=new Map;return e.forEach((function(e){var a=e.date,n=e.holidayName;if(fe.default(a)){var o=qt(a,\"MM.dd.yyyy\"),s=r.get(o)||{};if(!(\"className\"in s)||s.className!==t||(i=s.holidayNames,p=[n],i.length!==p.length||!i.every((function(e,t){return e===p[t]})))){var i,p;s.className=t;var l=s.holidayNames;s.holidayNames=l?[].concat(xt(l),[n]):[n],r.set(o,s)}}})),r}function Cr(e,t,r,a,n){for(var o=n.length,s=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:Lt,r=Math.ceil(Le.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Pr(e){var t=e.getSeconds(),r=e.getMilliseconds();return dt.default(e.getTime()-1e3*t-r)}function Er(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Le.default(r)<=s),a&&i&&(i=Le.default(a)>=s),i&&n.push(s)}return n}var Nr=function(e){_t(a,e);var r=Nt(a);function a(e){var n;kt(this,a),St(Et(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(Et(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Le.default(n.props.minDate):null,a=n.props.maxDate?Le.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),St(Et(n),\"onChange\",(function(e){n.props.onChange(e)})),St(Et(n),\"handleClickOutside\",(function(){n.props.onCancel()})),St(Et(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),St(Et(n),\"incrementYears\",(function(){return n.shiftYears(1)})),St(Et(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Er(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return bt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:\"render\",value:function(){var e=ue.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),xr=ht.default(Nr),Yr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0?n.get(o).holidayNames.join(\", \"):\"\"})),St(Et(e),\"getTabIndex\",(function(t,r){var a=t||e.props.selected,n=r||e.props.preSelection;return(!e.props.showWeekPicker||!e.props.showWeekNumber&&e.isStartOfWeek())&&(e.isKeyboardSelected()||e.isSameDay(a)&&Jt(n,a))?0:-1})),St(Et(e),\"handleFocusDay\",(function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=!1;0===e.getTabIndex()&&!r.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(a=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(a=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(a=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(a=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(a=!1)),a&&(null===(t=e.dayEl.current)||void 0===t||t.focus({preventScroll:!0}))})),St(Et(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Oe.default(e.props.day),e.props.day):Oe.default(e.props.day)})),St(Et(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"option\",title:e.getTitle(),\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()||e.isInRange()},e.renderDayContents(),\"\"!==e.getTitle()&&de.default.createElement(\"span\",{className:\"holiday-overlay\"},e.getTitle()))})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),qr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&Jt(e.props.date,e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement&&document.activeElement.classList.contains(\"react-datepicker__week-number\")&&(r=!0)),r&&e.weekNumberEl.current&&e.weekNumberEl.current.focus({preventScroll:!0})})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusWeekNumber()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusWeekNumber(e)}},{key:\"render\",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,a=void 0===r?\"week \":r,n={\"react-datepicker__week-number\":!0,\"react-datepicker__week-number--clickable\":!!e.onClick,\"react-datepicker__week-number--selected\":Jt(this.props.date,this.props.selected),\"react-datepicker__week-number--keyboard-selected\":this.isKeyboardSelected()};return de.default.createElement(\"div\",{ref:this.weekNumberEl,className:ue.default(n),\"aria-label\":\"\".concat(a,\" \").concat(this.props.weekNumber),onClick:this.handleClick,onKeyDown:this.handleOnKeyDown,tabIndex:this.getTabIndex()},t)}}],[{key:\"defaultProps\",get:function(){return{ariaLabelPrefix:\"week \"}}}]),r}(de.default.Component),Kr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),St(Et(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Ht(Ke.default(e.props.day,r)),t)})),St(Et(e),\"onMonthMouseEnter\",(function(t){e.handleDayMouseEnter(Ht(Ke.default(e.props.day,t)))})),St(Et(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),St(Et(e),\"onMonthKeyDown\",(function(t,r){var a=e.props,n=a.selected,o=a.preSelection,s=a.disabledKeyboardNavigation,i=a.showTwoColumnMonthYearPicker,p=a.showFourColumnMonthYearPicker,l=a.setPreSelection,c=t.key;if(\"Tab\"!==c&&t.preventDefault(),!s){var d=Vr(p,i),u=jr[d].verticalNavigationOffset,f=jr[d].grid;switch(c){case\"Enter\":e.onMonthClick(t,r),l(n);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,ke.default(o,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,_e.default(o,1));break;case\"ArrowUp\":e.handleMonthNavigation(f[0].includes(r)?r+12-u:r-u,_e.default(o,u));break;case\"ArrowDown\":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+u:r+u,ke.default(o,u))}}})),St(Et(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(Vt(Be.default(e.props.day,r)),t)})),St(Et(e),\"onQuarterMouseEnter\",(function(t){e.handleDayMouseEnter(Vt(Be.default(e.props.day,t)))})),St(Et(e),\"handleQuarterNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),St(Et(e),\"onQuarterKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleQuarterNavigation(4===r?1:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleQuarterNavigation(1===r?4:r-1,Me.default(e.props.preSelection,1))}})),St(Et(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.monthClassName,d=r.excludeDates,u=r.includeDates,f=c?c(Ke.default(a,t)):void 0,h=Ke.default(a,t);return ue.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),f,{\"react-datepicker__month-text--disabled\":(i||p||d||u)&&sr(h,e.props),\"react-datepicker__month-text--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":!e.props.disabledKeyboardNavigation&&Te.default(l)===t,\"react-datepicker__month-text--in-selecting-range\":e.isInSelectingRangeMonth(t),\"react-datepicker__month-text--in-range\":ir(n,o,t,a),\"react-datepicker__month-text--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month-text--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--selecting-range-start\":e.isSelectingMonthRangeStart(t),\"react-datepicker__month-text--selecting-range-end\":e.isSelectingMonthRangeEnd(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),St(Et(e),\"getTabIndex\",(function(t){var r=Te.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getQuarterTabIndex\",(function(t){var r=Re.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.chooseDayAriaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ke.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(qt(p,\"MMMM yyyy\"))})),St(Et(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.disabledKeyboardNavigation;return ue.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter-text--disabled\":(i||p)&&pr(Be.default(a,t),e.props),\"react-datepicker__quarter-text--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter-text--keyboard-selected\":!c&&Re.default(l)===t,\"react-datepicker__quarter-text--in-selecting-range\":e.isInSelectingRangeQuarter(t),\"react-datepicker__quarter-text--in-range\":dr(n,o,t,a),\"react-datepicker__quarter-text--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter-text--range-end\":e.isRangeEndQuarter(t)})})),St(Et(e),\"getMonthContent\",(function(t){var r=e.props,a=r.showFullMonthYearPicker,n=r.renderMonthContent,o=r.locale,s=r.day,i=ar(t,o),p=rr(t,o);return n?n(t,i,p,s):a?p:i})),St(Et(e),\"getQuarterContent\",(function(t){var r=e.props,a=r.renderQuarterContent,n=function(e,t){return qt(Be.default(At(),e),\"QQQ\",t)}(t,r.locale);return a?a(t,n):n})),St(Et(e),\"renderMonths\",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,a=t.showFourColumnMonthYearPicker,n=t.day,o=t.selected;return jr[Vr(a,r)].grid.map((function(t,r){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:r},t.map((function(t,r){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"option\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(n,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(n,t,o)},e.getMonthContent(t))})))}))})),St(Et(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,ref:e.QUARTER_REFS[n],role:\"option\",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a),tabIndex:e.getQuarterTabIndex(t),\"aria-current\":e.isCurrentQuarter(r,t)?\"date\":void 0},e.getQuarterContent(t))})))})),St(Et(e),\"getClassNames\",(function(){var t=e.props,r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker,i=t.showWeekPicker;return ue.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s},{\"react-datepicker__weekPicker\":i})})),e}return bt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(qt(a,\"yyyy-MM\")),role:\"listbox\"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),zr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Xr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),St(Et(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=kr(a.props),s=wr(a.props),i=At(),p=n||r||t;return p||(o&<.default(i,o)?o:s&&pt.default(i,s)?s:i)})),St(Et(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:ke.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:_e.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),St(Et(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),St(Et(a),\"handleYearMouseEnter\",(function(e,t){a.setState({selectingDate:Qe.default(At(),t)}),a.props.onYearMouseEnter&&a.props.onYearMouseEnter(e,t)})),St(Et(a),\"handleYearMouseLeave\",(function(e,t){a.props.onYearMouseLeave&&a.props.onYearMouseLeave(e,t)})),St(Et(a),\"handleYearChange\",(function(e){a.props.onYearChange&&(a.props.onYearChange(e),a.setState({isRenderAriaLiveMessage:!0})),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleMonthChange\",(function(e){a.handleCustomMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleCustomMonthChange\",(function(e){a.props.onMonthChange&&(a.props.onMonthChange(e),a.setState({isRenderAriaLiveMessage:!0}))})),St(Et(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),St(Et(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ke.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(Ke.default(r,Te.default(e)),Le.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),St(Et(a),\"header\",(function(){var e=Qt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,a.props.locale,a.props.calendarStartDay),t=[];return a.props.showWeekNumbers&&t.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=De.default(e,t),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:t,className:ue.default(\"react-datepicker__day-name\",o)},n)})))})),St(Et(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(qt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return qt(e,\"EEE\",t)}(e,t):function(e,t){return qt(e,\"EEEEEE\",t)}(e,t)})),St(Et(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Pe.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"clearSelectingDate\",(function(){a.setState({selectingDate:null})})),St(Et(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=Dr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(jt(Pe.default(e,n)),n).endPeriod,s=r&&Le.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=yr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,c=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,d=p.previousYearAriaLabel,u=void 0===d?\"string\"==typeof i?i:\"Previous Year\":d;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:c},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),St(Et(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:be.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=gr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(be.default(e,n),n).startPeriod,s=r&&Le.default(r);return s&&s0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},qt(e,a.props.dateFormat,a.props.locale))})),St(Et(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Yr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Le.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),St(Et(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Tr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Te.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),St(Et(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ar,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),St(Et(a),\"handleTodayButtonClick\",(function(e){a.props.onSelect(Ut(),e),a.props.setPreSelection&&a.props.setPreSelection(Ut())})),St(Et(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.handleTodayButtonClick(e)}},a.props.todayButton)})),St(Et(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=yr(a.state.date,a.props),o=vr(a.state.date,a.props),s=Dr(a.state.date,a.props),i=gr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(Dt(Dt({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=Mr(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Le.default(e))})),St(Et(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),St(Et(a),\"renderMonths\",(function(){var e;if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var t=[],r=a.props.showPreviousMonths?a.props.monthsShown-1:0,n=_e.default(a.state.date,r),o=null!==(e=a.props.monthSelectedIn)&&void 0!==e?e:r,s=0;s0;t.push(de.default.createElement(\"div\",{key:l,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:p,i:s}),de.default.createElement(Ur,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,ariaLabelPrefix:a.props.monthAriaLabelPrefix,onChange:a.changeMonthYear,day:p,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:s,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,holidays:a.props.holidays,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:c,monthShowsDuplicateDaysStart:d})))}return t}})),St(Et(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement($r,Ct({onDayClick:a.handleDayClick,selectingDate:a.state.selectingDate,clearSelectingDate:a.clearSelectingDate,date:a.state.date},a.props,{onYearMouseEnter:a.handleYearMouseEnter,onYearMouseLeave:a.handleYearMouseLeave}))):void 0})),St(Et(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(zr,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),St(Et(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Wt(e)&&Boolean(a.props.selected)?\"\".concat(_r(e.getHours()),\":\").concat(_r(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Gr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=Mr(a.state.date,a.props.yearItemNumber),r=t.startPeriod,n=t.endPeriod;return e=a.props.showYearPicker?\"\".concat(r,\" - \").concat(n):a.props.showMonthYearPicker||a.props.showQuarterYearPicker?Le.default(a.state.date):\"\".concat(rr(Te.default(a.state.date),a.props.locale),\" \").concat(Le.default(a.state.date)),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},a.state.isRenderAriaLiveMessage&&e)})),St(Et(a),\"renderChildren\",(function(){if(a.props.children)return de.default.createElement(\"div\",{className:\"react-datepicker__children-container\"},a.props.children)})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},a}return bt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){var t=this;if(!this.props.preSelection||Jt(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!Jt(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!$t(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:\"render\",value:function(){var e=this.props.container||Jr;return de.default.createElement(\"div\",{style:{display:\"contents\"},ref:this.containerRef},de.default.createElement(e,{className:ue.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:Lt}}}]),r}(de.default.Component),ea=function(e){var t=e.icon,r=e.className,a=void 0===r?\"\":r,n=e.onClick,o=\"react-datepicker__calendar-icon\";return de.default.isValidElement(t)?de.default.cloneElement(t,{className:\"\".concat(t.props.className||\"\",\" \").concat(o,\" \").concat(a),onClick:function(e){\"function\"==typeof t.props.onClick&&t.props.onClick(e),\"function\"==typeof n&&n(e)}}):\"string\"==typeof t?de.default.createElement(\"i\",{className:\"\".concat(o,\" \").concat(t,\" \").concat(a),\"aria-hidden\":\"true\",onClick:n}):de.default.createElement(\"svg\",{className:\"\".concat(o,\" \").concat(a),xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 448 512\",onClick:n},de.default.createElement(\"path\",{d:\"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"}))},ta=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return bt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return mt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),ra=function(e){return!e.disabled&&-1!==e.tabIndex},aa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(ra)})),St(Et(a),\"handleFocusStart\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),St(Et(a),\"handleFocusEnd\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return bt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),na=function(e){_t(r,e);var t=Nt(r);function r(){return kt(this,r),t.apply(this,arguments)}return bt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,c=t.enableTabLoop,d=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ue.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,Ct({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(aa,{enableTabLoop:c},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:d},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(ta,{portalId:u,portalHost:f},e));var m=ue.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),oa=\"react-datepicker-ignore-onclickoutside\",sa=ht.default(Zr);var ia=\"Date input not valid.\",pa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:At()})),St(Et(a),\"modifyHolidays\",(function(){var e;return null===(e=a.props.holidays)||void 0===e?void 0:e.reduce((function(e,t){var r=new Date(t.date);return he.default(r)?[].concat(xt(e),[Dt(Dt({},t),{},{date:r})]):e}),[])})),St(Et(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=kr(a.props),n=wr(a.props),o=r&<.default(t,$e.default(r))?r:n&&pt.default(t,et.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:br(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),St(Et(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),St(Et(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),St(Et(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),St(Et(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:ca},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),St(Et(a),\"inputOk\",(function(){return fe.default(a.state.preSelection)})),St(Et(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),St(Et(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),St(Et(a),\"sendFocusBackToInput\",(function(){a.preventFocusTimeout&&a.clearPreventFocusTimeout(),a.setState({preventFocus:!0},(function(){a.preventFocusTimeout=setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))}))})),St(Et(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),St(Et(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),St(Et(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),St(Et(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),St(Et(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),St(Et(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&(c=ut.default(o,s.slice(0,o.length),new Date)),Wt(c)||(c=new Date(o))),Wt(c)&&u?c:null));a.props.showTimeSelectOnly&&a.props.selected&&f&&!Jt(f,a.props.selected)&&(f=yt.default(a.props.selected,{hours:xe.default(f),minutes:Ne.default(f),seconds:Ee.default(f)})),!f&&n.target.value||(a.props.showWeekPicker&&(f=Qt(f,a.props.locale,a.props.calendarStartDay)),a.setSelected(f,n,!0))}})),St(Et(a),\"handleSelect\",(function(e,t,r){if(a.props.shouldCloseOnSelect&&!a.props.showTimeSelect&&a.sendFocusBackToInput(),a.props.onChangeRaw&&a.props.onChangeRaw(t),a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay)),a.setSelected(e,t,!1,r),a.props.showDateSelect&&a.setState({isRenderAriaLiveMessage:!0}),!a.props.shouldCloseOnSelect||a.props.showTimeSelect)a.setPreSelection(e);else if(!a.props.inline){a.props.selectsRange||a.setOpen(!1);var n=a.props,o=n.startDate,s=n.endDate;!o||s||lt.default(e,o)||a.setOpen(!1)}})),St(Et(a),\"setSelected\",(function(e,t,r,n){var o=e;if(a.props.showYearPicker){if(null!==o&&cr(Le.default(o),a.props))return}else if(a.props.showMonthYearPicker){if(null!==o&&sr(o,a.props))return}else if(null!==o&&nr(o,a.props))return;var s=a.props,i=s.onChange,p=s.selectsRange,l=s.startDate,c=s.endDate;if(!Xt(a.props.selected,o)||a.props.allowSameDay||p)if(null!==o&&(!a.props.selected||r&&(a.props.showTimeSelect||a.props.showTimeSelectOnly||a.props.showTimeInput)||(o=Bt(o,{hour:xe.default(a.props.selected),minute:Ne.default(a.props.selected),second:Ee.default(a.props.selected)})),a.props.inline||a.setState({preSelection:o}),a.props.focusSelectedMonth||a.setState({monthSelectedIn:n})),p){var d=l&&!c,u=l&&c;!l&&!c?i([o,null],t):d&&(lt.default(o,l)?i([o,null],t):i([l,o],t)),u&&i([o,null],t)}else i(o,t);r||(a.props.onSelect(o,t),a.setState({inputValue:null}))})),St(Et(a),\"setPreSelection\",(function(e){var t=void 0!==a.props.minDate,r=void 0!==a.props.maxDate,n=!0;if(e){a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay));var o=$e.default(e);if(t&&r)n=Zt(e,a.props.minDate,a.props.maxDate);else if(t){var s=$e.default(a.props.minDate);n=pt.default(e,s)||Xt(o,s)}else if(r){var i=et.default(a.props.maxDate);n=lt.default(e,i)||Xt(o,i)}}n&&a.setState({preSelection:e})})),St(Et(a),\"toggleCalendar\",(function(){a.setOpen(!a.state.open)})),St(Et(a),\"handleTimeChange\",(function(e){var t=a.props.selected?a.props.selected:a.getPreSelection(),r=a.props.selected?e:Bt(t,{hour:xe.default(e),minute:Ne.default(e)});a.setState({preSelection:r}),a.props.onChange(r),a.props.shouldCloseOnSelect&&(a.sendFocusBackToInput(),a.setOpen(!1)),a.props.showTimeInput&&a.setOpen(!0),(a.props.showTimeSelectOnly||a.props.showTimeSelect)&&a.setState({isRenderAriaLiveMessage:!0}),a.setState({inputValue:null})})),St(Et(a),\"onInputClick\",(function(){a.props.disabled||a.props.readOnly||a.setOpen(!0),a.props.onInputClick()})),St(Et(a),\"onInputKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key;if(a.state.open||a.props.inline||a.props.preventOpenOnFocus){if(a.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=a.props.showWeekPicker&&a.props.showWeekNumbers?'.react-datepicker__week-number[tabindex=\"0\"]':'.react-datepicker__day[tabindex=\"0\"]',n=a.calendar.componentNode&&a.calendar.componentNode.querySelector(r);return void(n&&n.focus({preventScroll:!0}))}var o=At(a.state.preSelection);\"Enter\"===t?(e.preventDefault(),a.inputOk()&&a.state.lastPreSelectChange===ca?(a.handleSelect(o,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(o)):a.setOpen(!1)):\"Escape\"===t?(e.preventDefault(),a.sendFocusBackToInput(),a.setOpen(!1)):\"Tab\"===t&&a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||a.onInputClick()})),St(Et(a),\"onPortalKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.setState({preventFocus:!0},(function(){a.setOpen(!1),setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))})))})),St(Et(a),\"onDayKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key,r=At(a.state.preSelection);if(\"Enter\"===t)e.preventDefault(),a.handleSelect(r,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia});else if(!a.props.disabledKeyboardNavigation){var n;switch(t){case\"ArrowLeft\":n=a.props.showWeekPicker?Ce.default(r,1):Se.default(r,1);break;case\"ArrowRight\":n=a.props.showWeekPicker?ge.default(r,1):De.default(r,1);break;case\"ArrowUp\":n=Ce.default(r,1);break;case\"ArrowDown\":n=ge.default(r,1);break;case\"PageUp\":n=_e.default(r,1);break;case\"PageDown\":n=ke.default(r,1);break;case\"Home\":n=Pe.default(r,1);break;case\"End\":n=be.default(r,1);break;default:n=null}if(!n)return void(a.props.onInputError&&a.props.onInputError({code:1,msg:ia}));if(e.preventDefault(),a.setState({lastPreSelectChange:ca}),a.props.adjustDateOnChange&&a.setSelected(n),a.setPreSelection(n),a.props.inline){var o=Te.default(r),s=Te.default(n),i=Le.default(r),p=Le.default(n);o!==s||i!==p?a.setState({shouldFocusDayInline:!0}):a.setState({shouldFocusDayInline:!1})}}})),St(Et(a),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.sendFocusBackToInput())})),St(Et(a),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),a.sendFocusBackToInput(),a.props.selectsRange?a.props.onChange([null,null],e):a.props.onChange(null,e),a.setState({inputValue:null})})),St(Et(a),\"clear\",(function(){a.onClearClick()})),St(Et(a),\"onScroll\",(function(e){\"boolean\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||a.setOpen(!1):\"function\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll(e)&&a.setOpen(!1)})),St(Et(a),\"renderCalendar\",(function(){return a.props.inline||a.isCalendarOpen()?de.default.createElement(sa,{ref:function(e){a.calendar=e},locale:a.props.locale,calendarStartDay:a.props.calendarStartDay,chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,monthAriaLabelPrefix:a.props.monthAriaLabelPrefix,adjustDateOnChange:a.props.adjustDateOnChange,setOpen:a.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,dateFormat:a.props.dateFormatCalendar,useWeekdaysShort:a.props.useWeekdaysShort,formatWeekDay:a.props.formatWeekDay,dropdownMode:a.props.dropdownMode,selected:a.props.selected,preSelection:a.state.preSelection,onSelect:a.handleSelect,onWeekSelect:a.props.onWeekSelect,openToDate:a.props.openToDate,minDate:a.props.minDate,maxDate:a.props.maxDate,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,startDate:a.props.startDate,endDate:a.props.endDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,filterDate:a.props.filterDate,onClickOutside:a.handleCalendarClickOutside,formatWeekNumber:a.props.formatWeekNumber,highlightDates:a.state.highlightDates,holidays:Sr(a.modifyHolidays()),includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,includeTimes:a.props.includeTimes,injectTimes:a.props.injectTimes,inline:a.props.inline,shouldFocusDayInline:a.state.shouldFocusDayInline,peekNextMonth:a.props.peekNextMonth,showMonthDropdown:a.props.showMonthDropdown,showPreviousMonths:a.props.showPreviousMonths,useShortMonthInDropdown:a.props.useShortMonthInDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showWeekNumbers:a.props.showWeekNumbers,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,forceShowMonthNavigation:a.props.forceShowMonthNavigation,showDisabledMonthNavigation:a.props.showDisabledMonthNavigation,scrollableYearDropdown:a.props.scrollableYearDropdown,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown,todayButton:a.props.todayButton,weekLabel:a.props.weekLabel,outsideClickIgnoreClass:oa,fixedHeight:a.props.fixedHeight,monthsShown:a.props.monthsShown,monthSelectedIn:a.state.monthSelectedIn,onDropdownFocus:a.handleDropdownFocus,onMonthChange:a.props.onMonthChange,onYearChange:a.props.onYearChange,dayClassName:a.props.dayClassName,weekDayClassName:a.props.weekDayClassName,monthClassName:a.props.monthClassName,timeClassName:a.props.timeClassName,showDateSelect:a.props.showDateSelect,showTimeSelect:a.props.showTimeSelect,showTimeSelectOnly:a.props.showTimeSelectOnly,onTimeChange:a.handleTimeChange,timeFormat:a.props.timeFormat,timeIntervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,className:a.props.calendarClassName,container:a.props.calendarContainer,yearItemNumber:a.props.yearItemNumber,yearDropdownItemNumber:a.props.yearDropdownItemNumber,previousMonthAriaLabel:a.props.previousMonthAriaLabel,previousMonthButtonLabel:a.props.previousMonthButtonLabel,nextMonthAriaLabel:a.props.nextMonthAriaLabel,nextMonthButtonLabel:a.props.nextMonthButtonLabel,previousYearAriaLabel:a.props.previousYearAriaLabel,previousYearButtonLabel:a.props.previousYearButtonLabel,nextYearAriaLabel:a.props.nextYearAriaLabel,nextYearButtonLabel:a.props.nextYearButtonLabel,timeInputLabel:a.props.timeInputLabel,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,renderCustomHeader:a.props.renderCustomHeader,popperProps:a.props.popperProps,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,onDayMouseEnter:a.props.onDayMouseEnter,onMonthMouseLeave:a.props.onMonthMouseLeave,onYearMouseEnter:a.props.onYearMouseEnter,onYearMouseLeave:a.props.onYearMouseLeave,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showTimeInput:a.props.showTimeInput,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,showPopperArrow:a.props.showPopperArrow,excludeScrollbar:a.props.excludeScrollbar,handleOnKeyDown:a.props.onKeyDown,handleOnDayKeyDown:a.onDayKeyDown,isInputFocused:a.state.focused,customTimeInput:a.props.customTimeInput,setPreSelection:a.setPreSelection},a.props.children):null})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=a.props,r=t.dateFormat,n=t.locale,o=a.props.showTimeInput||a.props.showTimeSelect?\"PPPPp\":\"PPPP\";return e=a.props.selectsRange?\"Selected start date: \".concat(Kt(a.props.startDate,{dateFormat:o,locale:n}),\". \").concat(a.props.endDate?\"End date: \"+Kt(a.props.endDate,{dateFormat:o,locale:n}):\"\"):a.props.showTimeSelectOnly?\"Selected time: \".concat(Kt(a.props.selected,{dateFormat:r,locale:n})):a.props.showYearPicker?\"Selected year: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy\",locale:n})):a.props.showMonthYearPicker?\"Selected month: \".concat(Kt(a.props.selected,{dateFormat:\"MMMM yyyy\",locale:n})):a.props.showQuarterYearPicker?\"Selected quarter: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy, QQQ\",locale:n})):\"Selected date: \".concat(Kt(a.props.selected,{dateFormat:o,locale:n})),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},e)})),St(Et(a),\"renderDateInput\",(function(){var e,t=ue.default(a.props.className,St({},oa,a.state.open)),r=a.props.customInput||de.default.createElement(\"input\",{type:\"text\"}),n=a.props.customInputRef||\"ref\",o=\"string\"==typeof a.props.value?a.props.value:\"string\"==typeof a.state.inputValue?a.state.inputValue:a.props.selectsRange?function(e,t,r){if(!e)return\"\";var a=Kt(e,r),n=t?Kt(t,r):\"\";return\"\".concat(a,\" - \").concat(n)}(a.props.startDate,a.props.endDate,a.props):Kt(a.props.selected,a.props);return de.default.cloneElement(r,(St(St(St(St(St(St(St(St(St(St(e={},n,(function(e){a.input=e})),\"value\",o),\"onBlur\",a.handleBlur),\"onChange\",a.handleChange),\"onClick\",a.onInputClick),\"onFocus\",a.handleFocus),\"onKeyDown\",a.onInputKeyDown),\"id\",a.props.id),\"name\",a.props.name),\"form\",a.props.form),St(St(St(St(St(St(St(St(St(St(e,\"autoFocus\",a.props.autoFocus),\"placeholder\",a.props.placeholderText),\"disabled\",a.props.disabled),\"autoComplete\",a.props.autoComplete),\"className\",ue.default(r.props.className,t)),\"title\",a.props.title),\"readOnly\",a.props.readOnly),\"required\",a.props.required),\"tabIndex\",a.props.tabIndex),\"aria-describedby\",a.props.ariaDescribedBy),St(St(St(e,\"aria-invalid\",a.props.ariaInvalid),\"aria-labelledby\",a.props.ariaLabelledBy),\"aria-required\",a.props.ariaRequired)))})),St(Et(a),\"renderClearButton\",(function(){var e=a.props,t=e.isClearable,r=e.disabled,n=e.selected,o=e.startDate,s=e.endDate,i=e.clearButtonTitle,p=e.clearButtonClassName,l=void 0===p?\"\":p,c=e.ariaLabelClose,d=void 0===c?\"Close\":c;return!t||null==n&&null==o&&null==s?null:de.default.createElement(\"button\",{type:\"button\",className:ue.default(\"react-datepicker__close-icon\",l,{\"react-datepicker__close-icon--disabled\":r}),disabled:r,\"aria-label\":d,onClick:a.onClearClick,title:i,tabIndex:-1})})),a.state=a.calcInitialState(),a.preventFocusTimeout=null,a}return bt(r,[{key:\"componentDidMount\",value:function(){window.addEventListener(\"scroll\",this.onScroll,!0)}},{key:\"componentDidUpdate\",value:function(e,t){var r,a;e.inline&&(r=e.selected,a=this.props.selected,r&&a?Te.default(r)!==Te.default(a)||Le.default(r)!==Le.default(a):r!==a)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:br(this.props.highlightDates)}),t.focused||Xt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:\"componentWillUnmount\",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener(\"scroll\",this.onScroll,!0)}},{key:\"renderInputContainer\",value:function(){var e=this.props,t=e.showIcon,r=e.icon,a=e.calendarIconClassname,n=e.toggleCalendarOnIconClick,o=this.state.open;return de.default.createElement(\"div\",{className:\"react-datepicker__input-container\".concat(t?\" react-datepicker__view-calendar-icon\":\"\")},t&&de.default.createElement(ea,Ct({icon:r,className:\"\".concat(a,\" \").concat(o&&\"react-datepicker-ignore-onclickoutside\")},n?{onClick:this.toggleCalendar}:null)),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:\"render\",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(aa,{enableTabLoop:this.props.enableTabLoop},de.default.createElement(\"div\",{className:\"react-datepicker__portal\",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement(ta,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement(\"div\",null,this.renderInputContainer(),t)}return de.default.createElement(na,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:\"defaultProps\",get:function(){return{allowSameDay:!1,dateFormat:\"MM/dd/yyyy\",dateFormatCalendar:\"LLLL yyyy\",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:\"scroll\",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,showWeekPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:\"Time\",previousMonthAriaLabel:\"Previous Month\",previousMonthButtonLabel:\"Previous Month\",nextMonthAriaLabel:\"Next Month\",nextMonthButtonLabel:\"Next Month\",previousYearAriaLabel:\"Previous Year\",previousYearButtonLabel:\"Previous Year\",nextYearAriaLabel:\"Next Year\",nextYearButtonLabel:\"Next Year\",timeInputLabel:\"Time\",enableTabLoop:!0,yearItemNumber:Lt,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0,toggleCalendarOnIconClick:!1}}}]),r}(de.default.Component),la=\"input\",ca=\"navigate\";e.CalendarContainer=Jr,e.default=pa,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r=\"undefined\"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){(\"undefined\"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\"),require(\"prop-types\")):\"function\"==typeof define&&define.amd?define([\"react\",\"prop-types\"],t):\"object\"==typeof exports?exports.SmartBanner=t(require(\"react\"),require(\"prop-types\")):e.SmartBanner=t(e.React,e.PropTypes)}(\"undefined\"!=typeof self?self:this,function(i,n){return function(i){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return i[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=i,o.c=n,o.d=function(e,t,i){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},o.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var n in t)o.d(i,n,function(e){return t[e]}.bind(null,n));return i},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,\"a\",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p=\"\",o(o.s=3)}([function(e,t){e.exports=i},function(e,t){e.exports=n},function(e,t){t=e.exports=function(o){o||(o={}),\"string\"==typeof o&&(o={cookie:o}),void 0===o.cookie&&(o.cookie=\"\");var e={get:function(e){for(var t=o.cookie.split(/;\\s*/),i=0;i (options === null || options === void 0 ? void 0 : options.title) ?? (route === null || route === void 0 ? void 0 : route.name)\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const navigation = ref.current;\n if (navigation) {\n const title = formatter(navigation.getCurrentOptions(), navigation.getCurrentRoute());\n document.title = title;\n }\n return navigation === null || navigation === void 0 ? void 0 : navigation.addListener('options', e => {\n const title = formatter(e.data.options, navigation === null || navigation === void 0 ? void 0 : navigation.getCurrentRoute());\n document.title = title;\n });\n });\n}\n//# sourceMappingURL=useDocumentTitle.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import * as React from 'react';\nexport default function useThenable(create) {\n const [promise] = React.useState(create);\n let initialState = [false, undefined];\n\n // Check if our thenable is synchronous\n promise.then(result => {\n initialState = [true, result];\n });\n const [state, setState] = React.useState(initialState);\n const [resolved] = state;\n React.useEffect(() => {\n let cancelled = false;\n const resolve = async () => {\n let result;\n try {\n result = await promise;\n } finally {\n if (!cancelled) {\n setState([true, result]);\n }\n }\n };\n if (!resolved) {\n resolve();\n }\n return () => {\n cancelled = true;\n };\n }, [promise, resolved]);\n return state;\n}\n//# sourceMappingURL=useThenable.js.map","import * as React from 'react';\nconst LinkingContext = /*#__PURE__*/React.createContext({\n options: undefined\n});\nLinkingContext.displayName = 'LinkingContext';\nexport default LinkingContext;\n//# sourceMappingURL=LinkingContext.js.map","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function ThemeProvider(_ref) {\n let {\n value,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: value\n }, children);\n}\n//# sourceMappingURL=ThemeProvider.js.map","/**\n * SplashScreen\n * 启动屏\n * from:http://www.devio.org\n * Author:CrazyCodeBoy\n * GitHub:https://github.com/crazycodeboy\n * Email:crazycodeboy@gmail.com\n * @flow\n */\n'use strict';\n\nimport { NativeModules } from 'react-native';\nexport default NativeModules.SplashScreen;\n\n","import type { Transaction } from '@sentry/core';\nimport type { Span, SpanContext } from '@sentry/types';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nexport function isMeasurementValue(value: unknown): value is number {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n *\n * Note: this will not be possible anymore in v8,\n * unless we do some special handling for browser here...\n */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\n // eslint-disable-next-line deprecation/deprecation\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.startTimestamp = startTimestamp;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n","/* eslint-disable max-lines */\nimport type { IdleTransaction, Transaction } from '@sentry/core';\nimport {\n Span,\n getActiveTransaction,\n getClient,\n hasTracingEnabled,\n isValidSampleRate,\n setMeasurement,\n} from '@sentry/core';\nimport type { ClientOptions, Measurements, SpanContext, TransactionContext } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, getComponentName, htmlTreeAsString, logger, parseUrl } from '@sentry/utils';\n\nimport { spanToJSON } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport {\n addClsInstrumentationHandler,\n addFidInstrumentationHandler,\n addInpInstrumentationHandler,\n addLcpInstrumentationHandler,\n addPerformanceInstrumentationHandler,\n} from '../instrument';\nimport { WINDOW } from '../types';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher';\nimport type {\n InteractionRouteNameMapping,\n NavigatorDeviceMemory,\n NavigatorNetworkInformation,\n} from '../web-vitals/types';\nimport { _startChild, isMeasurementValue } from './utils';\n\nimport { createSpanEnvelope } from '@sentry/core';\n\nconst MAX_INT_AS_BYTES = 2147483647;\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time: number): number {\n return time / 1000;\n}\n\nfunction getBrowserPerformanceAPI(): Performance | undefined {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\nlet _performanceCursor: number = 0;\n\nlet _measurements: Measurements = {};\nlet _lcpEntry: LargestContentfulPaint | undefined;\nlet _clsEntry: LayoutShift | undefined;\n\n/**\n * Start tracking web vitals.\n * The callback returned by this function can be used to stop tracking & ensure all measurements are final & captured.\n *\n * @returns A function that forces web vitals collection\n */\nexport function startTrackingWebVitals(): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n const fidCallback = _trackFID();\n const clsCallback = _trackCLS();\n const lcpCallback = _trackLCP();\n\n return (): void => {\n fidCallback();\n clsCallback();\n lcpCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nexport function startTrackingLongTasks(): void {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n });\n}\n\n/**\n * Start tracking interaction events.\n */\nexport function startTrackingInteractions(): void {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const span: SpanContext = {\n description: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n };\n\n const componentName = getComponentName(entry.target);\n if (componentName) {\n span.attributes = { 'ui.component_name': componentName };\n }\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild(span);\n }\n }\n });\n}\n\n/**\n * Start tracking INP webvital events.\n */\nexport function startTrackingINP(interactionIdtoRouteNameMapping: InteractionRouteNameMapping): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP(interactionIdtoRouteNameMapping);\n\n return (): void => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS(): () => void {\n return addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry as LayoutShift;\n }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(): () => void {\n return addLcpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry as LargestContentfulPaint;\n }, true);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID(): () => void {\n return addFidInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\n/** Starts tracking the Interaction to Next Paint on the current page. */\nfunction _trackINP(interactionIdtoRouteNameMapping: InteractionRouteNameMapping): () => void {\n return addInpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries.find(e => e.name === 'click');\n const client = getClient();\n if (!entry || !client) {\n return;\n }\n const options = client.getOptions();\n /** Build the INP span, create an envelope from the span, and then send the envelope */\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(metric.value);\n const { routeName, parentContext, activeTransaction, user, replayId } =\n entry.interactionId !== undefined\n ? interactionIdtoRouteNameMapping[entry.interactionId]\n : {\n routeName: undefined,\n parentContext: undefined,\n activeTransaction: undefined,\n user: undefined,\n replayId: undefined,\n };\n const userDisplay = user !== undefined ? user.email || user.id || user.ip_address : undefined;\n // eslint-disable-next-line deprecation/deprecation\n const profileId = activeTransaction !== undefined ? activeTransaction.getProfileId() : undefined;\n const span = new Span({\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n op: 'ui.interaction.click',\n name: htmlTreeAsString(entry.target),\n attributes: {\n release: options.release,\n environment: options.environment,\n transaction: routeName,\n ...(userDisplay !== undefined && userDisplay !== '' ? { user: userDisplay } : {}),\n ...(profileId !== undefined ? { profile_id: profileId } : {}),\n ...(replayId !== undefined ? { replay_id: replayId } : {}),\n },\n exclusiveTime: metric.value,\n measurements: {\n inp: { value: metric.value, unit: 'millisecond' },\n },\n });\n\n /** Check to see if the span should be sampled */\n const sampleRate = getSampleRate(parentContext, options);\n if (!sampleRate) {\n return;\n }\n\n if (Math.random() < (sampleRate as number | boolean)) {\n const envelope = span ? createSpanEnvelope([span]) : undefined;\n const transport = client && client.getTransport();\n if (transport && envelope) {\n transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending interaction:', reason);\n });\n }\n return;\n }\n });\n}\n\n/** Add performance related spans to a transaction */\nexport function addPerformanceEntries(transaction: Transaction): void {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !WINDOW.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n let responseStartTimestamp: number | undefined;\n let requestStartTimestamp: number | undefined;\n\n const { op, start_timestamp: transactionStartTime } = spanToJSON(transaction);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n performanceEntries.slice(_performanceCursor).forEach((entry: Record) => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n if (transaction.op === 'navigation' && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n _addResourceSpans(transaction, entry, entry.name as string, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (op === 'pageload') {\n _addTtfbToMeasurements(_measurements, responseStartTimestamp, requestStartTimestamp, transactionStartTime);\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || !transactionStartTime || timeOrigin >= transactionStartTime) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n const oldValue = _measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transactionStartTime) * 1000);\n const delta = normalizedValue - oldValue;\n\n DEBUG_BUILD && logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'ui.action',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: fidMark.value,\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n\n Object.keys(_measurements).forEach(measurementName => {\n setMeasurement(measurementName, _measurements[measurementName].value, _measurements[measurementName].unit);\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nexport function _addMeasureSpans(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\n origin: 'auto.resource.browser.metrics',\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addNavigationSpans(transaction: Transaction, entry: Record, timeOrigin: number): void {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: description || event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addRequest(transaction: Transaction, entry: Record, timeOrigin: number): void {\n if (entry.responseEnd) {\n // It is possible that we are collecting these metrics when the page hasn't finished loading yet, for example when the HTML slowly streams in.\n // In this case, ie. when the document request hasn't finished yet, `entry.responseEnd` will be 0.\n // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect\n // these spans when the responseEnd value is available. The backend (Relay) would drop the entire transaction if it contained faulty spans.\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n }\n}\n\nexport interface ResourceEntry extends Record {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n renderBlockingStatus?: string;\n}\n\n/** Create resource-related spans */\nexport function _addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceUrl: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const parsedUrl = parseUrl(resourceUrl);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data: Record = {};\n setResourceEntrySizeData(data, entry, 'transferSize', 'http.response_transfer_size');\n setResourceEntrySizeData(data, entry, 'encodedBodySize', 'http.response_content_length');\n setResourceEntrySizeData(data, entry, 'decodedBodySize', 'http.decoded_response_content_length');\n\n if ('renderBlockingStatus' in entry) {\n data['resource.render_blocking_status'] = entry.renderBlockingStatus;\n }\n if (parsedUrl.protocol) {\n data['url.scheme'] = parsedUrl.protocol.split(':').pop(); // the protocol returned by parseUrl includes a :, but OTEL spec does not, so we remove it.\n }\n\n if (parsedUrl.host) {\n data['server.address'] = parsedUrl.host;\n }\n\n data['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin);\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceUrl.replace(WINDOW.location.origin, ''),\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n origin: 'auto.resource.browser.metrics',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction: Transaction): void {\n const navigator = WINDOW.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction: Transaction): void {\n if (_lcpEntry) {\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nfunction setResourceEntrySizeData(\n data: Record,\n entry: ResourceEntry,\n key: keyof Pick,\n dataKey: 'http.response_transfer_size' | 'http.response_content_length' | 'http.decoded_response_content_length',\n): void {\n const entryVal = entry[key];\n if (entryVal != null && entryVal < MAX_INT_AS_BYTES) {\n data[dataKey] = entryVal;\n }\n}\n\n/**\n * Add ttfb information to measurements\n *\n * Exported for tests\n */\nexport function _addTtfbToMeasurements(\n _measurements: Measurements,\n responseStartTimestamp: number | undefined,\n requestStartTimestamp: number | undefined,\n transactionStartTime: number | undefined,\n): void {\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number' && transactionStartTime) {\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = {\n // As per https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/responseStart,\n // responseStart can be 0 if the request is coming straight from the cache.\n // This might lead us to calculate a negative ttfb if we don't use Math.max here.\n //\n // This logic is the same as what is in the web-vitals library to calculate ttfb\n // https://github.com/GoogleChrome/web-vitals/blob/2301de5015e82b09925238a228a0893635854587/src/onTTFB.ts#L92\n // TODO(abhi): We should use the web-vitals library instead of this custom calculation.\n value: Math.max(responseStartTimestamp - transactionStartTime, 0) * 1000,\n unit: 'millisecond',\n };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n _measurements['ttfb.requestTime'] = {\n value: (responseStartTimestamp - requestStartTimestamp) * 1000,\n unit: 'millisecond',\n };\n }\n }\n}\n\n/** Taken from @sentry/core sampling.ts */\nfunction getSampleRate(transactionContext: TransactionContext | undefined, options: ClientOptions): number | boolean {\n if (!hasTracingEnabled(options)) {\n return false;\n }\n let sampleRate;\n if (transactionContext !== undefined && typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler({\n transactionContext,\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n location: WINDOW.location,\n });\n } else if (transactionContext !== undefined && transactionContext.sampled !== undefined) {\n sampleRate = transactionContext.sampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n } else {\n sampleRate = 1;\n }\n if (!isValidSampleRate(sampleRate)) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n return false;\n }\n return sampleRate;\n}\n","import type { MeasurementUnit } from '@sentry/types';\n\nimport { getActiveTransaction } from './utils';\n\n/**\n * Adds a measurement to the current active transaction.\n */\nexport function setMeasurement(name: string, value: number, unit: MeasurementUnit): void {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction();\n if (transaction) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.setMeasurement(name, value, unit);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataFetch } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsNativeFetch } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype FetchResource = string | { toString(): string } | { url: string };\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addFetchInstrumentationHandler(handler: (data: HandlerDataFetch) => void): void {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, instrumentFetch);\n}\n\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const { method, url } = parseFetchArgs(args);\n\n const handlerData: HandlerDataFetch = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n (response: Response) => {\n const finishedHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n };\n\n triggerHandlers('fetch', finishedHandlerData);\n return response;\n },\n (error: Error) => {\n const erroredHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n };\n\n triggerHandlers('fetch', erroredHandlerData);\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nfunction hasProp(obj: unknown, prop: T): obj is Record {\n return !!obj && typeof obj === 'object' && !!(obj as Record)[prop];\n}\n\nfunction getUrlFromResource(resource: FetchResource): string {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nexport function parseFetchArgs(fetchArgs: unknown[]): { method: string; url: string } {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs as [FetchResource, object];\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg as FetchResource),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, WrappedFunction } from '@sentry/types';\n\nimport { isString } from '../is';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nexport const SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addXhrInstrumentationHandler(handler: (data: HandlerDataXhr) => void): void {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nexport function instrumentXHR(): void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!(WINDOW as any).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const startTimestamp = Date.now();\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(args[0]) ? args[0].toUpperCase() : undefined;\n const url = parseUrl(args[1]);\n\n if (!method || !url) {\n return originalOpen.apply(this, args);\n }\n\n this[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler: () => void = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (this.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = this.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData: HandlerDataXhr = {\n args: [method, url],\n endTimestamp: Date.now(),\n startTimestamp,\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in this && typeof this.onreadystatechange === 'function') {\n fill(this, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(this, readyStateArgs);\n };\n });\n } else {\n this.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n fill(this, 'setRequestHeader', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...setRequestHeaderArgs: unknown[]): void {\n const [header, value] = setRequestHeaderArgs;\n\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return original.apply(this, setRequestHeaderArgs);\n };\n });\n\n return originalOpen.apply(this, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const sentryXhrData = this[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(this, args);\n }\n\n if (args[0] !== undefined) {\n sentryXhrData.body = args[0];\n }\n\n const handlerData: HandlerDataXhr = {\n args: [sentryXhrData.method, sentryXhrData.url],\n startTimestamp: Date.now(),\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nfunction parseUrl(url: string | unknown): string | undefined {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url as URL).toString();\n } catch {} // eslint-disable-line no-empty\n\n return undefined;\n}\n","import {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { Client, HandlerDataFetch, Scope, Span, SpanOrigin } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n isInstanceOf,\n} from '@sentry/utils';\n\ntype PolymorphicRequestHeaders =\n | Record\n | Array<[string, string]>\n // the below is not preicsely the Header type used in Request, but it'll pass duck-typing\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n append: (key: string, value: string) => void;\n get: (key: string) => string | null | undefined;\n };\n\n/**\n * Create and track fetch request spans for usage in combination with `addInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function instrumentFetchRequest(\n handlerData: HandlerDataFetch,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n spanOrigin: SpanOrigin = 'auto.http.browser',\n): Span | undefined {\n if (!hasTracingEnabled() || !handlerData.fetchData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(handlerData.fetchData.url);\n\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n setHttpStatus(span, handlerData.response.status);\n\n const contentLength =\n handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length');\n\n if (contentLength) {\n const contentLengthNum = parseInt(contentLength);\n if (contentLengthNum > 0) {\n span.setAttribute('http.response_content_length', contentLengthNum);\n }\n }\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.end();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const client = getClient();\n\n const { method, url } = handlerData.fetchData;\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${method} ${url}`,\n onlyIfParent: true,\n attributes: {\n url,\n type: 'fetch',\n 'http.method': method,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n handlerData.fetchData.__span = span.spanContext().spanId;\n spans[span.spanContext().spanId] = span;\n }\n\n if (shouldAttachHeaders(handlerData.fetchData.url) && client) {\n const request: string | Request = handlerData.args[0];\n\n // In case the user hasn't set the second argument of a fetch call we default it to `{}`.\n handlerData.args[1] = handlerData.args[1] || {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options: { [key: string]: any } = handlerData.args[1];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n options.headers = addTracingHeadersToFetchRequest(request, client, scope, options, span);\n }\n\n return span;\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers\n */\nexport function addTracingHeadersToFetchRequest(\n request: string | unknown, // unknown is actually type Request but we can't export DOM types from this package,\n client: Client,\n scope: Scope,\n options: {\n headers?:\n | {\n [key: string]: string[] | string | undefined;\n }\n | PolymorphicRequestHeaders;\n },\n requestSpan?: Span,\n): PolymorphicRequestHeaders | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const span = requestSpan || scope.getSpan();\n\n const isolationScope = getIsolationScope();\n\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n const headers =\n options.headers ||\n (typeof Request !== 'undefined' && isInstanceOf(request, Request) ? (request as Request).headers : undefined);\n\n if (!headers) {\n return { 'sentry-trace': sentryTraceHeader, baggage: sentryBaggageHeader };\n } else if (typeof Headers !== 'undefined' && isInstanceOf(headers, Headers)) {\n const newHeaders = new Headers(headers as Headers);\n\n newHeaders.append('sentry-trace', sentryTraceHeader);\n\n if (sentryBaggageHeader) {\n // If the same header is appended multiple times the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else if (Array.isArray(headers)) {\n const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];\n\n if (sentryBaggageHeader) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders: string[] = [];\n\n if (Array.isArray(existingBaggageHeader)) {\n newBaggageHeaders.push(...existingBaggageHeader);\n } else if (existingBaggageHeader) {\n newBaggageHeaders.push(existingBaggageHeader);\n }\n\n if (sentryBaggageHeader) {\n newBaggageHeaders.push(sentryBaggageHeader);\n }\n\n return {\n ...(headers as Exclude),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n","/* eslint-disable max-lines */\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToJSON,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, Span } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n SENTRY_XHR_DATA_KEY,\n addFetchInstrumentationHandler,\n addXhrInstrumentationHandler,\n browserPerformanceTimeOrigin,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n stringMatchesSomePattern,\n} from '@sentry/utils';\n\nimport { instrumentFetchRequest } from '../common/fetch';\nimport { addPerformanceInstrumentationHandler } from './instrument';\n\nexport const DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\\/(?!\\/)/];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * @deprecated Will be removed in v8.\n * Use `shouldCreateSpanForRequest` to control span creation and `tracePropagationTargets` to control\n * trace header attachment.\n */\n tracingOrigins: Array;\n\n /**\n * List of strings and/or regexes used to determine which outgoing requests will have `sentry-trace` and `baggage`\n * headers attached.\n *\n * @deprecated Use the top-level `tracePropagationTargets` option in `Sentry.init` instead.\n * This option will be removed in v8.\n *\n * Default: ['localhost', /^\\//] @see {DEFAULT_TRACE_PROPAGATION_TARGETS}\n */\n tracePropagationTargets: Array;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * If true, Sentry will capture http timings and add them to the corresponding http spans.\n *\n * Default: true\n */\n enableHTTPTimings: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * Default: (url: string) => true\n */\n shouldCreateSpanForRequest?(this: void, url: string): boolean;\n}\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n enableHTTPTimings: true,\n // TODO (v8): Remove this property\n tracingOrigins: DEFAULT_TRACE_PROPAGATION_TARGETS,\n tracePropagationTargets: DEFAULT_TRACE_PROPAGATION_TARGETS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options?: Partial): void {\n const {\n traceFetch,\n traceXHR,\n // eslint-disable-next-line deprecation/deprecation\n tracePropagationTargets,\n // eslint-disable-next-line deprecation/deprecation\n tracingOrigins,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_: string) => true;\n\n // TODO(v8) Remove tracingOrigins here\n // The only reason we're passing it in here is because this instrumentOutgoingRequests function is publicly exported\n // and we don't want to break the API. We can remove it in v8.\n const shouldAttachHeadersWithTargets = (url: string): boolean =>\n shouldAttachHeaders(url, tracePropagationTargets || tracingOrigins);\n\n const spans: Record = {};\n\n if (traceFetch) {\n addFetchInstrumentationHandler(handlerData => {\n const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n\n if (traceXHR) {\n addXhrInstrumentationHandler(handlerData => {\n const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n}\n\nfunction isPerformanceResourceTiming(entry: PerformanceEntry): entry is PerformanceResourceTiming {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry as PerformanceResourceTiming).nextHopProtocol === 'string' &&\n (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span: Span): void {\n const { url } = spanToJSON(span).data || {};\n\n if (!url || typeof url !== 'string') {\n return;\n }\n\n const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n entries.forEach(entry => {\n if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n const spanData = resourceTimingEntryToSpanData(entry);\n spanData.forEach(data => span.setAttribute(...data));\n // In the next tick, clean this handler up\n // We have to wait here because otherwise this cleans itself up before it is fully done\n setTimeout(cleanup);\n }\n });\n });\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nexport function extractNetworkProtocol(nextHopProtocol: string): { name: string; version: string } {\n let name = 'unknown';\n let version = 'unknown';\n let _name = '';\n for (const char of nextHopProtocol) {\n // http/1.1 etc.\n if (char === '/') {\n [name, version] = nextHopProtocol.split('/');\n break;\n }\n // h2, h3 etc.\n if (!isNaN(Number(char))) {\n name = _name === 'h' ? 'http' : _name;\n version = nextHopProtocol.split(_name)[1];\n break;\n }\n _name += char;\n }\n if (_name === nextHopProtocol) {\n // webrtc, ftp, etc.\n name = _name;\n }\n return { name, version };\n}\n\nfunction getAbsoluteTime(time: number = 0): number {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming: PerformanceResourceTiming): [string, string | number][] {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData: [string, string | number][] = [];\n\n timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n\n if (!browserPerformanceTimeOrigin) {\n return timingSpanData;\n }\n return [\n ...timingSpanData,\n ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n ];\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * This was extracted from `instrumentOutgoingRequests` to make it easier to test shouldAttachHeaders.\n * We only export this fuction for testing purposes.\n */\nexport function shouldAttachHeaders(url: string, tracePropagationTargets: (string | RegExp)[] | undefined): boolean {\n return stringMatchesSomePattern(url, tracePropagationTargets || DEFAULT_TRACE_PROPAGATION_TARGETS);\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\n// eslint-disable-next-line complexity\nexport function xhrCallback(\n handlerData: HandlerDataXhr,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n): Span | undefined {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (!hasTracingEnabled() || !xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(sentryXhrData.url);\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span && sentryXhrData.status_code !== undefined) {\n setHttpStatus(span, sentryXhrData.status_code);\n span.end();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const isolationScope = getIsolationScope();\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${sentryXhrData.method} ${sentryXhrData.url}`,\n onlyIfParent: true,\n attributes: {\n type: 'xhr',\n 'http.method': sentryXhrData.method,\n url: sentryXhrData.url,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser',\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n }\n\n const client = getClient();\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url) && client) {\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader);\n }\n\n return span;\n}\n\nfunction setHeaderOnXhr(\n xhr: SentryWrappedXMLHttpRequest,\n sentryTraceHeader: string,\n sentryBaggageHeader: string | undefined,\n): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!('sentry-trace', sentryTraceHeader);\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n}\n","// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n// Copyright (c) 2010-2016 Google, Inc. http://angularjs.org\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { getGlobalObject } from '../worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (WINDOW as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataHistory } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsHistory } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nlet lastHref: string | undefined;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addHistoryInstrumentationHandler(handler: (data: HandlerDataHistory) => void): void {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n","/* eslint-disable max-lines */\nimport type { Hub, IdleTransaction } from '@sentry/core';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n TRACING_DEFAULTS,\n addTracingExtensions,\n getActiveTransaction,\n startIdleTransaction,\n} from '@sentry/core';\nimport type { EventProcessor, Integration, Transaction, TransactionContext, TransactionSource } from '@sentry/types';\nimport { getDomElement, logger, propagationContextFromHeaders } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport {\n addPerformanceEntries,\n startTrackingInteractions,\n startTrackingLongTasks,\n startTrackingWebVitals,\n} from './metrics';\nimport type { RequestInstrumentationOptions } from './request';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nimport { WINDOW } from './types';\n\nexport const BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished during an idle state. An idle state is defined\n * by a moment where there are no in-progress spans.\n *\n * The transaction will use the end timestamp of the last finished span as the endtime for the transaction.\n * If there are still active spans when this the `idleTimeout` is set, the `idleTimeout` will get reset.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * The max duration for a transaction. If a transaction duration hits the `finalTimeout` value, it\n * will be finished.\n * Time is in ms.\n *\n * Default: 30000\n */\n finalTimeout: number;\n\n /**\n * The heartbeat interval. If no new spans are started or open spans are finished within 3 heartbeats,\n * the transaction will be finished.\n * Time is in ms.\n *\n * Default: 5000\n */\n heartbeatInterval: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * If true, Sentry will capture long tasks and add them to the corresponding transaction.\n *\n * Default: true\n */\n enableLongTask: boolean;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{\n /**\n * @deprecated This property no longer has any effect and will be removed in v8.\n */\n _reportAllChanges: boolean;\n }>;\n\n /**\n * _experiments allows the user to send options to define how this integration works.\n * Note that the `enableLongTask` options is deprecated in favor of the option at the top level, and will be removed in v8.\n *\n * TODO (v8): Remove enableLongTask\n *\n * Default: undefined\n */\n _experiments: Partial<{\n enableLongTask: boolean;\n enableInteractions: boolean;\n onStartRouteTransaction: (t: Transaction | undefined, ctx: TransactionContext, getCurrentHub: () => Hub) => void;\n }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(this: void, context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation(\n this: void,\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS: BrowserTracingOptions = {\n ...TRACING_DEFAULTS,\n markBackgroundTransactions: true,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n enableLongTask: true,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n *\n * @deprecated Use `browserTracingIntegration()` instead.\n */\nexport class BrowserTracing implements Integration {\n // This class currently doesn't have a static `id` field like the other integration classes, because it prevented\n // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.\n // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all\n // integrations.\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private _getCurrentHub?: () => Hub;\n\n private _latestRouteName?: string;\n private _latestRouteSource?: TransactionSource;\n\n private _collectWebVitals: () => void;\n\n private _hasSetTracePropagationTargets: boolean;\n\n public constructor(_options?: Partial) {\n this.name = BROWSER_TRACING_INTEGRATION_ID;\n this._hasSetTracePropagationTargets = false;\n\n addTracingExtensions();\n\n if (DEBUG_BUILD) {\n this._hasSetTracePropagationTargets = !!(\n _options &&\n // eslint-disable-next-line deprecation/deprecation\n (_options.tracePropagationTargets || _options.tracingOrigins)\n );\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n // Special case: enableLongTask can be set in _experiments\n // TODO (v8): Remove this in v8\n if (this.options._experiments.enableLongTask !== undefined) {\n this.options.enableLongTask = this.options._experiments.enableLongTask;\n }\n\n // TODO (v8): remove this block after tracingOrigins is removed\n // Set tracePropagationTargets to tracingOrigins if specified by the user\n // In case both are specified, tracePropagationTargets takes precedence\n // eslint-disable-next-line deprecation/deprecation\n if (_options && !_options.tracePropagationTargets && _options.tracingOrigins) {\n // eslint-disable-next-line deprecation/deprecation\n this.options.tracePropagationTargets = _options.tracingOrigins;\n }\n\n this._collectWebVitals = startTrackingWebVitals();\n if (this.options.enableLongTask) {\n startTrackingLongTasks();\n }\n if (this.options._experiments.enableInteractions) {\n startTrackingInteractions();\n }\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const clientOptions = client && client.getOptions();\n\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n _experiments,\n } = this.options;\n\n const clientOptionsTracePropagationTargets = clientOptions && clientOptions.tracePropagationTargets;\n // There are three ways to configure tracePropagationTargets:\n // 1. via top level client option `tracePropagationTargets`\n // 2. via BrowserTracing option `tracePropagationTargets`\n // 3. via BrowserTracing option `tracingOrigins` (deprecated)\n //\n // To avoid confusion, favour top level client option `tracePropagationTargets`, and fallback to\n // BrowserTracing option `tracePropagationTargets` and then `tracingOrigins` (deprecated).\n // This is done as it minimizes bundle size (we don't have to have undefined checks).\n //\n // If both 1 and either one of 2 or 3 are set (from above), we log out a warning.\n // eslint-disable-next-line deprecation/deprecation\n const tracePropagationTargets = clientOptionsTracePropagationTargets || this.options.tracePropagationTargets;\n if (DEBUG_BUILD && this._hasSetTracePropagationTargets && clientOptionsTracePropagationTargets) {\n logger.warn(\n '[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used.',\n );\n }\n\n instrumentRouting(\n (context: TransactionContext) => {\n const transaction = this._createRouteTransaction(context);\n\n this.options._experiments.onStartRouteTransaction &&\n this.options._experiments.onStartRouteTransaction(transaction, context, getCurrentHub);\n\n return transaction;\n },\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n if (_experiments.enableInteractions) {\n this._registerInteractionListener();\n }\n\n instrumentOutgoingRequests({\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n\n const { beforeNavigate, idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n\n const isPageloadTransaction = context.op === 'pageload';\n\n let expandedContext: TransactionContext;\n if (isPageloadTransaction) {\n const sentryTrace = isPageloadTransaction ? getMetaContent('sentry-trace') : '';\n const baggage = isPageloadTransaction ? getMetaContent('baggage') : undefined;\n const { traceId, dsc, parentSpanId, sampled } = propagationContextFromHeaders(sentryTrace, baggage);\n expandedContext = {\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...context,\n metadata: {\n // eslint-disable-next-line deprecation/deprecation\n ...context.metadata,\n dynamicSamplingContext: dsc,\n },\n trimEnd: true,\n };\n } else {\n expandedContext = {\n trimEnd: true,\n ...context,\n };\n }\n\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n // If `beforeNavigate` set a custom name, record that fact\n // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata =\n finalContext.name !== expandedContext.name\n ? // eslint-disable-next-line deprecation/deprecation\n { ...finalContext.metadata, source: 'custom' }\n : // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata;\n\n this._latestRouteName = finalContext.name;\n this._latestRouteSource = getSource(finalContext);\n\n // eslint-disable-next-line deprecation/deprecation\n if (finalContext.sampled === false) {\n DEBUG_BUILD && logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n DEBUG_BUILD && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const { location } = WINDOW;\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n isPageloadTransaction, // should wait for finish signal if it's a pageload transaction\n );\n\n if (isPageloadTransaction) {\n WINDOW.document.addEventListener('readystatechange', () => {\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n });\n\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n }\n\n idleTransaction.registerBeforeFinishCallback(transaction => {\n this._collectWebVitals();\n addPerformanceEntries(transaction);\n });\n\n return idleTransaction as Transaction;\n }\n\n /** Start listener for interaction transactions */\n private _registerInteractionListener(): void {\n let inflightInteractionTransaction: IdleTransaction | undefined;\n const registerInteractionTransaction = (): void => {\n const { idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n const op = 'ui.action.click';\n\n // eslint-disable-next-line deprecation/deprecation\n const currentTransaction = getActiveTransaction();\n if (currentTransaction && currentTransaction.op && ['navigation', 'pageload'].includes(currentTransaction.op)) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Did not create ${op} transaction because a pageload or navigation transaction is in progress.`,\n );\n return undefined;\n }\n\n if (inflightInteractionTransaction) {\n inflightInteractionTransaction.setFinishReason('interactionInterrupted');\n inflightInteractionTransaction.end();\n inflightInteractionTransaction = undefined;\n }\n\n if (!this._getCurrentHub) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n if (!this._latestRouteName) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n const { location } = WINDOW;\n\n const context: TransactionContext = {\n name: this._latestRouteName,\n op,\n trimEnd: true,\n data: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: this._latestRouteSource || 'url',\n },\n };\n\n inflightInteractionTransaction = startIdleTransaction(\n hub,\n context,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n };\n\n ['click'].forEach(type => {\n addEventListener(type, registerInteractionTransaction, { once: false, capture: true });\n });\n }\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | undefined {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : undefined;\n}\n\nfunction getSource(context: TransactionContext): TransactionSource | undefined {\n const sourceFromAttributes = context.attributes && context.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromData = context.data && context.data[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromMetadata = context.metadata && context.metadata.source;\n\n return sourceFromAttributes || sourceFromData || sourceFromMetadata;\n}\n","import type { Transaction, TransactionContext } from '@sentry/types';\nimport { addHistoryInstrumentationHandler, browserPerformanceTimeOrigin, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { WINDOW } from './types';\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!WINDOW || !WINDOW.location) {\n DEBUG_BUILD && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = WINDOW.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin (and needs to be in s, not ms)\n startTimestamp: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined,\n op: 'pageload',\n origin: 'auto.pageload.browser',\n metadata: { source: 'url' },\n });\n }\n\n if (startTransactionOnLocationChange) {\n addHistoryInstrumentationHandler(({ to, from }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.end();\n }\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n op: 'navigation',\n origin: 'auto.navigation.browser',\n metadata: { source: 'url' },\n });\n }\n });\n }\n}\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\nimport type { GenericFunction } from './types';\n\n/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nexport function _optionalChain(ops: unknown[]): unknown {\n let lastAccessLHS: unknown = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i] as string;\n const fn = ops[i + 1] as (intermediateValue: unknown) => unknown;\n i += 2;\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n return;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args: unknown[]) => (value as GenericFunction).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// const op = ops[i];\n// const fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n","import type { Hub } from '@sentry/types';\n\n/**\n * Check if Sentry auto-instrumentation should be disabled.\n *\n * @param getCurrentHub A method to fetch the current hub\n * @returns boolean\n */\nexport function shouldDisableAutoInstrumentation(getCurrentHub: () => Hub): boolean {\n // eslint-disable-next-line deprecation/deprecation\n const clientOptions = getCurrentHub().getClient()?.getOptions();\n const instrumenter = clientOptions?.instrumenter || 'sentry';\n\n return instrumenter !== 'sentry';\n}\n","import type { Hub } from '@sentry/core';\nimport type { EventProcessor } from '@sentry/types';\nimport { arrayify, fill, isThenable, loadModule, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport type { LazyLoadedIntegration } from './lazy';\nimport { shouldDisableAutoInstrumentation } from './utils/node-utils';\n\ninterface ApolloOptions {\n useNestjs?: boolean;\n}\n\ntype ApolloResolverGroup = {\n [key: string]: () => unknown;\n};\n\ntype ApolloModelResolvers = {\n [key: string]: ApolloResolverGroup;\n};\n\ntype GraphQLModule = {\n GraphQLFactory: {\n prototype: {\n create: (resolvers: ApolloModelResolvers[]) => unknown;\n };\n };\n};\n\ntype ApolloModule = {\n ApolloServerBase: {\n prototype: {\n constructSchema: (config: unknown) => unknown;\n };\n };\n};\n\n/** Tracing integration for Apollo */\nexport class Apollo implements LazyLoadedIntegration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Apollo';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private readonly _useNest: boolean;\n\n private _module?: GraphQLModule & ApolloModule;\n\n /**\n * @inheritDoc\n */\n public constructor(\n options: ApolloOptions = {\n useNestjs: false,\n },\n ) {\n this.name = Apollo.id;\n this._useNest = !!options.useNestjs;\n }\n\n /** @inheritdoc */\n public loadDependency(): (GraphQLModule & ApolloModule) | undefined {\n if (this._useNest) {\n this._module = this._module || loadModule('@nestjs/graphql');\n } else {\n this._module = this._module || loadModule('apollo-server-core');\n }\n\n return this._module;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (shouldDisableAutoInstrumentation(getCurrentHub)) {\n DEBUG_BUILD && logger.log('Apollo Integration is skipped because of instrumenter configuration.');\n return;\n }\n\n if (this._useNest) {\n const pkg = this.loadDependency();\n\n if (!pkg) {\n DEBUG_BUILD && logger.error('Apollo-NestJS Integration was unable to require @nestjs/graphql package.');\n return;\n }\n\n /**\n * Iterate over resolvers of NestJS ResolversExplorerService before schemas are constructed.\n */\n fill(\n pkg.GraphQLFactory.prototype,\n 'mergeWithSchema',\n function (orig: (this: unknown, ...args: unknown[]) => unknown) {\n return function (\n this: { resolversExplorerService: { explore: () => ApolloModelResolvers[] } },\n ...args: unknown[]\n ) {\n fill(this.resolversExplorerService, 'explore', function (orig: () => ApolloModelResolvers[]) {\n return function (this: unknown) {\n const resolvers = arrayify(orig.call(this));\n\n const instrumentedResolvers = instrumentResolvers(resolvers, getCurrentHub);\n\n return instrumentedResolvers;\n };\n });\n\n return orig.call(this, ...args);\n };\n },\n );\n } else {\n const pkg = this.loadDependency();\n\n if (!pkg) {\n DEBUG_BUILD && logger.error('Apollo Integration was unable to require apollo-server-core package.');\n return;\n }\n\n /**\n * Iterate over resolvers of the ApolloServer instance before schemas are constructed.\n */\n fill(pkg.ApolloServerBase.prototype, 'constructSchema', function (orig: (config: unknown) => unknown) {\n return function (this: {\n config: { resolvers?: ApolloModelResolvers[]; schema?: unknown; modules?: unknown };\n }) {\n if (!this.config.resolvers) {\n if (DEBUG_BUILD) {\n if (this.config.schema) {\n logger.warn(\n 'Apollo integration is not able to trace `ApolloServer` instances constructed via `schema` property.' +\n 'If you are using NestJS with Apollo, please use `Sentry.Integrations.Apollo({ useNestjs: true })` instead.',\n );\n logger.warn();\n } else if (this.config.modules) {\n logger.warn(\n 'Apollo integration is not able to trace `ApolloServer` instances constructed via `modules` property.',\n );\n }\n\n logger.error('Skipping tracing as no resolvers found on the `ApolloServer` instance.');\n }\n\n return orig.call(this);\n }\n\n const resolvers = arrayify(this.config.resolvers);\n\n this.config.resolvers = instrumentResolvers(resolvers, getCurrentHub);\n\n return orig.call(this);\n };\n });\n }\n }\n}\n\nfunction instrumentResolvers(resolvers: ApolloModelResolvers[], getCurrentHub: () => Hub): ApolloModelResolvers[] {\n return resolvers.map(model => {\n Object.keys(model).forEach(resolverGroupName => {\n Object.keys(model[resolverGroupName]).forEach(resolverName => {\n if (typeof model[resolverGroupName][resolverName] !== 'function') {\n return;\n }\n\n wrapResolver(model, resolverGroupName, resolverName, getCurrentHub);\n });\n });\n\n return model;\n });\n}\n\n/**\n * Wrap a single resolver which can be a parent of other resolvers and/or db operations.\n */\nfunction wrapResolver(\n model: ApolloModelResolvers,\n resolverGroupName: string,\n resolverName: string,\n getCurrentHub: () => Hub,\n): void {\n fill(model[resolverGroupName], resolverName, function (orig: () => unknown | Promise) {\n return function (this: unknown, ...args: unknown[]) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = getCurrentHub().getScope();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n // eslint-disable-next-line deprecation/deprecation\n const span = parentSpan?.startChild({\n description: `${resolverGroupName}.${resolverName}`,\n op: 'graphql.resolve',\n origin: 'auto.graphql.apollo',\n });\n\n const rv = orig.call(this, ...args);\n\n if (isThenable(rv)) {\n return rv.then((res: unknown) => {\n span?.end();\n return res;\n });\n }\n\n span?.end();\n\n return rv;\n };\n });\n}\n","import type {\n Event,\n ExtractedNodeRequestData,\n PolymorphicRequest,\n Transaction,\n TransactionSource,\n WebFetchHeaders,\n WebFetchRequest,\n} from '@sentry/types';\n\nimport { parseCookie } from './cookie';\nimport { DEBUG_BUILD } from './debug-build';\nimport { isPlainObject, isString } from './is';\nimport { logger } from './logger';\nimport { normalize } from './normalize';\nimport { stripUrlQueryAndFragment } from './url';\n\nconst DEFAULT_INCLUDES = {\n ip: false,\n request: true,\n transaction: true,\n user: true,\n};\nconst DEFAULT_REQUEST_INCLUDES = ['cookies', 'data', 'headers', 'method', 'query_string', 'url'];\nexport const DEFAULT_USER_INCLUDES = ['id', 'username', 'email'];\n\ntype InjectedNodeDeps = {\n cookie: {\n parse: (cookieStr: string) => Record;\n };\n url: {\n parse: (urlStr: string) => {\n query: string | null;\n };\n };\n};\n\n/**\n * Options deciding what parts of the request to use when enhancing an event\n */\nexport type AddRequestDataToEventOptions = {\n /** Flags controlling whether each type of data should be added to the event */\n include?: {\n ip?: boolean;\n request?: boolean | Array<(typeof DEFAULT_REQUEST_INCLUDES)[number]>;\n transaction?: boolean | TransactionNamingScheme;\n user?: boolean | Array<(typeof DEFAULT_USER_INCLUDES)[number]>;\n };\n\n /** Injected platform-specific dependencies */\n deps?: {\n cookie: {\n parse: (cookieStr: string) => Record;\n };\n url: {\n parse: (urlStr: string) => {\n query: string | null;\n };\n };\n };\n};\n\nexport type TransactionNamingScheme = 'path' | 'methodPath' | 'handler';\n\n/**\n * Sets parameterized route as transaction name e.g.: `GET /users/:id`\n * Also adds more context data on the transaction from the request\n */\nexport function addRequestDataToTransaction(\n transaction: Transaction | undefined,\n req: PolymorphicRequest,\n deps?: InjectedNodeDeps,\n): void {\n if (!transaction) return;\n // eslint-disable-next-line deprecation/deprecation\n if (!transaction.metadata.source || transaction.metadata.source === 'url') {\n // Attempt to grab a parameterized route off of the request\n const [name, source] = extractPathForTransaction(req, { path: true, method: true });\n transaction.updateName(name);\n // TODO: SEMANTIC_ATTRIBUTE_SENTRY_SOURCE is in core, align this once we merge utils & core\n // eslint-disable-next-line deprecation/deprecation\n transaction.setMetadata({ source });\n }\n transaction.setAttribute('url', req.originalUrl || req.url);\n if (req.baseUrl) {\n transaction.setAttribute('baseUrl', req.baseUrl);\n }\n // TODO: We need to rewrite this to a flat format?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setData('query', extractQueryParams(req, deps));\n}\n\n/**\n * Extracts a complete and parameterized path from the request object and uses it to construct transaction name.\n * If the parameterized transaction name cannot be extracted, we fall back to the raw URL.\n *\n * Additionally, this function determines and returns the transaction name source\n *\n * eg. GET /mountpoint/user/:id\n *\n * @param req A request object\n * @param options What to include in the transaction name (method, path, or a custom route name to be\n * used instead of the request's route)\n *\n * @returns A tuple of the fully constructed transaction name [0] and its source [1] (can be either 'route' or 'url')\n */\nexport function extractPathForTransaction(\n req: PolymorphicRequest,\n options: { path?: boolean; method?: boolean; customRoute?: string } = {},\n): [string, TransactionSource] {\n const method = req.method && req.method.toUpperCase();\n\n let path = '';\n let source: TransactionSource = 'url';\n\n // Check to see if there's a parameterized route we can use (as there is in Express)\n if (options.customRoute || req.route) {\n path = options.customRoute || `${req.baseUrl || ''}${req.route && req.route.path}`;\n source = 'route';\n }\n\n // Otherwise, just take the original URL\n else if (req.originalUrl || req.url) {\n path = stripUrlQueryAndFragment(req.originalUrl || req.url || '');\n }\n\n let name = '';\n if (options.method && method) {\n name += method;\n }\n if (options.method && options.path) {\n name += ' ';\n }\n if (options.path && path) {\n name += path;\n }\n\n return [name, source];\n}\n\n/** JSDoc */\nfunction extractTransaction(req: PolymorphicRequest, type: boolean | TransactionNamingScheme): string {\n switch (type) {\n case 'path': {\n return extractPathForTransaction(req, { path: true })[0];\n }\n case 'handler': {\n return (req.route && req.route.stack && req.route.stack[0] && req.route.stack[0].name) || '';\n }\n case 'methodPath':\n default: {\n // if exist _reconstructedRoute return that path instead of route.path\n const customRoute = req._reconstructedRoute ? req._reconstructedRoute : undefined;\n return extractPathForTransaction(req, { path: true, method: true, customRoute })[0];\n }\n }\n}\n\n/** JSDoc */\nfunction extractUserData(\n user: {\n [key: string]: unknown;\n },\n keys: boolean | string[],\n): { [key: string]: unknown } {\n const extractedUser: { [key: string]: unknown } = {};\n const attributes = Array.isArray(keys) ? keys : DEFAULT_USER_INCLUDES;\n\n attributes.forEach(key => {\n if (user && key in user) {\n extractedUser[key] = user[key];\n }\n });\n\n return extractedUser;\n}\n\n/**\n * Normalize data from the request object, accounting for framework differences.\n *\n * @param req The request object from which to extract data\n * @param options.include An optional array of keys to include in the normalized data. Defaults to\n * DEFAULT_REQUEST_INCLUDES if not provided.\n * @param options.deps Injected, platform-specific dependencies\n * @returns An object containing normalized request data\n */\nexport function extractRequestData(\n req: PolymorphicRequest,\n options?: {\n include?: string[];\n deps?: InjectedNodeDeps;\n },\n): ExtractedNodeRequestData {\n const { include = DEFAULT_REQUEST_INCLUDES, deps } = options || {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const requestData: { [key: string]: any } = {};\n\n // headers:\n // node, express, koa, nextjs: req.headers\n const headers = (req.headers || {}) as {\n host?: string;\n cookie?: string;\n };\n // method:\n // node, express, koa, nextjs: req.method\n const method = req.method;\n // host:\n // express: req.hostname in > 4 and req.host in < 4\n // koa: req.host\n // node, nextjs: req.headers.host\n // Express 4 mistakenly strips off port number from req.host / req.hostname so we can't rely on them\n // See: https://github.com/expressjs/express/issues/3047#issuecomment-236653223\n // Also: https://github.com/getsentry/sentry-javascript/issues/1917\n const host = headers.host || req.hostname || req.host || '';\n // protocol:\n // node, nextjs: \n // express, koa: req.protocol\n const protocol = req.protocol === 'https' || (req.socket && req.socket.encrypted) ? 'https' : 'http';\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n const originalUrl = req.originalUrl || req.url || '';\n // absolute url\n const absoluteUrl = originalUrl.startsWith(protocol) ? originalUrl : `${protocol}://${host}${originalUrl}`;\n include.forEach(key => {\n switch (key) {\n case 'headers': {\n requestData.headers = headers;\n\n // Remove the Cookie header in case cookie data should not be included in the event\n if (!include.includes('cookies')) {\n delete (requestData.headers as { cookie?: string }).cookie;\n }\n\n break;\n }\n case 'method': {\n requestData.method = method;\n break;\n }\n case 'url': {\n requestData.url = absoluteUrl;\n break;\n }\n case 'cookies': {\n // cookies:\n // node, express, koa: req.headers.cookie\n // vercel, sails.js, express (w/ cookie middleware), nextjs: req.cookies\n requestData.cookies =\n // TODO (v8 / #5257): We're only sending the empty object for backwards compatibility, so the last bit can\n // come off in v8\n req.cookies || (headers.cookie && parseCookie(headers.cookie)) || {};\n break;\n }\n case 'query_string': {\n // query string:\n // node: req.url (raw)\n // express, koa, nextjs: req.query\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n requestData.query_string = extractQueryParams(req, deps);\n break;\n }\n case 'data': {\n if (method === 'GET' || method === 'HEAD') {\n break;\n }\n // body data:\n // express, koa, nextjs: req.body\n //\n // when using node by itself, you have to read the incoming stream(see\n // https://nodejs.dev/learn/get-http-request-body-data-using-nodejs); if a user is doing that, we can't know\n // where they're going to store the final result, so they'll have to capture this data themselves\n if (req.body !== undefined) {\n requestData.data = isString(req.body) ? req.body : JSON.stringify(normalize(req.body));\n }\n break;\n }\n default: {\n if ({}.hasOwnProperty.call(req, key)) {\n requestData[key] = (req as { [key: string]: unknown })[key];\n }\n }\n }\n });\n\n return requestData;\n}\n\n/**\n * Add data from the given request to the given event\n *\n * @param event The event to which the request data will be added\n * @param req Request object\n * @param options.include Flags to control what data is included\n * @param options.deps Injected platform-specific dependencies\n * @returns The mutated `Event` object\n */\nexport function addRequestDataToEvent(\n event: Event,\n req: PolymorphicRequest,\n options?: AddRequestDataToEventOptions,\n): Event {\n const include = {\n ...DEFAULT_INCLUDES,\n ...(options && options.include),\n };\n\n if (include.request) {\n const extractedRequestData = Array.isArray(include.request)\n ? extractRequestData(req, { include: include.request, deps: options && options.deps })\n : extractRequestData(req, { deps: options && options.deps });\n\n event.request = {\n ...event.request,\n ...extractedRequestData,\n };\n }\n\n if (include.user) {\n const extractedUser = req.user && isPlainObject(req.user) ? extractUserData(req.user, include.user) : {};\n\n if (Object.keys(extractedUser).length) {\n event.user = {\n ...event.user,\n ...extractedUser,\n };\n }\n }\n\n // client ip:\n // node, nextjs: req.socket.remoteAddress\n // express, koa: req.ip\n if (include.ip) {\n const ip = req.ip || (req.socket && req.socket.remoteAddress);\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip,\n };\n }\n }\n\n if (include.transaction && !event.transaction) {\n // TODO do we even need this anymore?\n // TODO make this work for nextjs\n event.transaction = extractTransaction(req, include.transaction);\n }\n\n return event;\n}\n\nfunction extractQueryParams(\n req: PolymorphicRequest,\n deps?: InjectedNodeDeps,\n): string | Record | undefined {\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n let originalUrl = req.originalUrl || req.url || '';\n\n if (!originalUrl) {\n return;\n }\n\n // The `URL` constructor can't handle internal URLs of the form `/some/path/here`, so stick a dummy protocol and\n // hostname on the beginning. Since the point here is just to grab the query string, it doesn't matter what we use.\n if (originalUrl.startsWith('/')) {\n originalUrl = `http://dogs.are.great${originalUrl}`;\n }\n\n try {\n return (\n req.query ||\n (typeof URL !== 'undefined' && new URL(originalUrl).search.slice(1)) ||\n // In Node 8, `URL` isn't in the global scope, so we have to use the built-in module from Node\n (deps && deps.url && deps.url.parse(originalUrl).query) ||\n undefined\n );\n } catch {\n return undefined;\n }\n}\n\n/**\n * Transforms a `Headers` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into a simple key-value dict.\n * The header keys will be lower case: e.g. A \"Content-Type\" header will be stored as \"content-type\".\n */\n// TODO(v8): Make this function return undefined when the extraction fails.\nexport function winterCGHeadersToDict(winterCGHeaders: WebFetchHeaders): Record {\n const headers: Record = {};\n try {\n winterCGHeaders.forEach((value, key) => {\n if (typeof value === 'string') {\n // We check that value is a string even though it might be redundant to make sure prototype pollution is not possible.\n headers[key] = value;\n }\n });\n } catch (e) {\n DEBUG_BUILD &&\n logger.warn('Sentry failed extracting headers from a request object. If you see this, please file an issue.');\n }\n\n return headers;\n}\n\n/**\n * Converts a `Request` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into the format that the `RequestData` integration understands.\n */\nexport function winterCGRequestToRequestData(req: WebFetchRequest): PolymorphicRequest {\n const headers = winterCGHeadersToDict(req.headers);\n return {\n method: req.method,\n url: req.url,\n headers,\n };\n}\n","/* eslint-disable max-lines */\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, spanToJSON } from '@sentry/core';\nimport type { Hub, Integration, PolymorphicRequest, Transaction } from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n extractPathForTransaction,\n getNumberOfUrlSegments,\n isRegExp,\n logger,\n stripUrlQueryAndFragment,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport { shouldDisableAutoInstrumentation } from './utils/node-utils';\n\ntype Method =\n | 'all'\n | 'get'\n | 'post'\n | 'put'\n | 'delete'\n | 'patch'\n | 'options'\n | 'head'\n | 'checkout'\n | 'copy'\n | 'lock'\n | 'merge'\n | 'mkactivity'\n | 'mkcol'\n | 'move'\n | 'm-search'\n | 'notify'\n | 'purge'\n | 'report'\n | 'search'\n | 'subscribe'\n | 'trace'\n | 'unlock'\n | 'unsubscribe'\n | 'use';\n\ntype Router = {\n [method in Method]: (...args: any) => any; // eslint-disable-line @typescript-eslint/no-explicit-any\n};\n\n/* Extend the PolymorphicRequest type with a patched parameter to build a reconstructed route */\ntype PatchedRequest = PolymorphicRequest & { _reconstructedRoute?: string; _hasParameters?: boolean };\n\n/* Types used for patching the express router prototype */\ntype ExpressRouter = Router & {\n _router?: ExpressRouter;\n stack?: Layer[];\n lazyrouter?: () => void;\n settings?: unknown;\n process_params: (\n layer: Layer,\n called: unknown,\n req: PatchedRequest,\n res: ExpressResponse,\n done: () => void,\n ) => unknown;\n};\n\ntype Layer = {\n match: (path: string) => boolean;\n handle_request: (req: PatchedRequest, res: ExpressResponse, next: () => void) => void;\n route?: { path: RouteType | RouteType[] };\n path?: string;\n regexp?: RegExp;\n keys?: { name: string | number; offset: number; optional: boolean }[];\n};\n\ntype RouteType = string | RegExp;\n\ninterface ExpressResponse {\n once(name: string, callback: () => void): void;\n}\n\n/**\n * Internal helper for `__sentry_transaction`\n * @hidden\n */\ninterface SentryTracingResponse {\n __sentry_transaction?: Transaction;\n}\n\n/**\n * Express integration\n *\n * Provides an request and error handler for Express framework as well as tracing capabilities\n */\nexport class Express implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Express';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * Express App instance\n */\n private readonly _router?: Router;\n private readonly _methods?: Method[];\n\n /**\n * @inheritDoc\n */\n public constructor(options: { app?: Router; router?: Router; methods?: Method[] } = {}) {\n this.name = Express.id;\n this._router = options.router || options.app;\n this._methods = (Array.isArray(options.methods) ? options.methods : []).concat('use');\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: unknown, getCurrentHub: () => Hub): void {\n if (!this._router) {\n DEBUG_BUILD && logger.error('ExpressIntegration is missing an Express instance');\n return;\n }\n\n if (shouldDisableAutoInstrumentation(getCurrentHub)) {\n DEBUG_BUILD && logger.log('Express Integration is skipped because of instrumenter configuration.');\n return;\n }\n\n instrumentMiddlewares(this._router, this._methods);\n instrumentRouter(this._router as ExpressRouter);\n }\n}\n\n/**\n * Wraps original middleware function in a tracing call, which stores the info about the call as a span,\n * and finishes it once the middleware is done invoking.\n *\n * Express middlewares have 3 various forms, thus we have to take care of all of them:\n * // sync\n * app.use(function (req, res) { ... })\n * // async\n * app.use(function (req, res, next) { ... })\n * // error handler\n * app.use(function (err, req, res, next) { ... })\n *\n * They all internally delegate to the `router[method]` of the given application instance.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any\nfunction wrap(fn: Function, method: Method): (...args: any[]) => void {\n const arity = fn.length;\n\n switch (arity) {\n case 2: {\n return function (this: NodeJS.Global, req: unknown, res: ExpressResponse & SentryTracingResponse): void {\n const transaction = res.__sentry_transaction;\n if (transaction) {\n // eslint-disable-next-line deprecation/deprecation\n const span = transaction.startChild({\n description: fn.name,\n op: `middleware.express.${method}`,\n origin: 'auto.middleware.express',\n });\n res.once('finish', () => {\n span.end();\n });\n }\n return fn.call(this, req, res);\n };\n }\n case 3: {\n return function (\n this: NodeJS.Global,\n req: unknown,\n res: ExpressResponse & SentryTracingResponse,\n next: () => void,\n ): void {\n const transaction = res.__sentry_transaction;\n // eslint-disable-next-line deprecation/deprecation\n const span = transaction?.startChild({\n description: fn.name,\n op: `middleware.express.${method}`,\n origin: 'auto.middleware.express',\n });\n fn.call(this, req, res, function (this: NodeJS.Global, ...args: unknown[]): void {\n span?.end();\n next.call(this, ...args);\n });\n };\n }\n case 4: {\n return function (\n this: NodeJS.Global,\n err: Error,\n req: Request,\n res: Response & SentryTracingResponse,\n next: () => void,\n ): void {\n const transaction = res.__sentry_transaction;\n // eslint-disable-next-line deprecation/deprecation\n const span = transaction?.startChild({\n description: fn.name,\n op: `middleware.express.${method}`,\n origin: 'auto.middleware.express',\n });\n fn.call(this, err, req, res, function (this: NodeJS.Global, ...args: unknown[]): void {\n span?.end();\n next.call(this, ...args);\n });\n };\n }\n default: {\n throw new Error(`Express middleware takes 2-4 arguments. Got: ${arity}`);\n }\n }\n}\n\n/**\n * Takes all the function arguments passed to the original `app` or `router` method, eg. `app.use` or `router.use`\n * and wraps every function, as well as array of functions with a call to our `wrap` method.\n * We have to take care of the arrays as well as iterate over all of the arguments,\n * as `app.use` can accept middlewares in few various forms.\n *\n * app.use([], )\n * app.use([], , ...)\n * app.use([], ...[])\n */\nfunction wrapMiddlewareArgs(args: unknown[], method: Method): unknown[] {\n return args.map((arg: unknown) => {\n if (typeof arg === 'function') {\n return wrap(arg, method);\n }\n\n if (Array.isArray(arg)) {\n return arg.map((a: unknown) => {\n if (typeof a === 'function') {\n return wrap(a, method);\n }\n return a;\n });\n }\n\n return arg;\n });\n}\n\n/**\n * Patches original router to utilize our tracing functionality\n */\nfunction patchMiddleware(router: Router, method: Method): Router {\n const originalCallback = router[method];\n\n router[method] = function (...args: unknown[]): void {\n return originalCallback.call(this, ...wrapMiddlewareArgs(args, method));\n };\n\n return router;\n}\n\n/**\n * Patches original router methods\n */\nfunction instrumentMiddlewares(router: Router, methods: Method[] = []): void {\n methods.forEach((method: Method) => patchMiddleware(router, method));\n}\n\n/**\n * Patches the prototype of Express.Router to accumulate the resolved route\n * if a layer instance's `match` function was called and it returned a successful match.\n *\n * @see https://github.com/expressjs/express/blob/master/lib/router/index.js\n *\n * @param appOrRouter the router instance which can either be an app (i.e. top-level) or a (nested) router.\n */\nfunction instrumentRouter(appOrRouter: ExpressRouter): void {\n // This is how we can distinguish between app and routers\n const isApp = 'settings' in appOrRouter;\n\n // In case the app's top-level router hasn't been initialized yet, we have to do it now\n if (isApp && appOrRouter._router === undefined && appOrRouter.lazyrouter) {\n appOrRouter.lazyrouter();\n }\n\n const router = isApp ? appOrRouter._router : appOrRouter;\n\n if (!router) {\n /*\n If we end up here, this means likely that this integration is used with Express 3 or Express 5.\n For now, we don't support these versions (3 is very old and 5 is still in beta). To support Express 5,\n we'd need to make more changes to the routing instrumentation because the router is no longer part of\n the Express core package but maintained in its own package. The new router has different function\n signatures and works slightly differently, demanding more changes than just taking the router from\n `app.router` instead of `app._router`.\n @see https://github.com/pillarjs/router\n\n TODO: Proper Express 5 support\n */\n DEBUG_BUILD && logger.debug('Cannot instrument router for URL Parameterization (did not find a valid router).');\n DEBUG_BUILD && logger.debug('Routing instrumentation is currently only supported in Express 4.');\n return;\n }\n\n const routerProto = Object.getPrototypeOf(router) as ExpressRouter;\n\n const originalProcessParams = routerProto.process_params;\n routerProto.process_params = function process_params(\n layer: Layer,\n called: unknown,\n req: PatchedRequest,\n res: ExpressResponse & SentryTracingResponse,\n done: () => unknown,\n ) {\n // Base case: We're in the first part of the URL (thus we start with the root '/')\n if (!req._reconstructedRoute) {\n req._reconstructedRoute = '';\n }\n\n // If the layer's partial route has params, is a regex or an array, the route is stored in layer.route.\n const { layerRoutePath, isRegex, isArray, numExtraSegments }: LayerRoutePathInfo = getLayerRoutePathInfo(layer);\n\n if (layerRoutePath || isRegex || isArray) {\n req._hasParameters = true;\n }\n\n // Otherwise, the hardcoded path (i.e. a partial route without params) is stored in layer.path\n let partialRoute;\n\n if (layerRoutePath) {\n partialRoute = layerRoutePath;\n } else {\n /**\n * prevent duplicate segment in _reconstructedRoute param if router match multiple routes before final path\n * example:\n * original url: /api/v1/1234\n * prevent: /api/api/v1/:userId\n * router structure\n * /api -> middleware\n * /api/v1 -> middleware\n * /1234 -> endpoint with param :userId\n * final _reconstructedRoute is /api/v1/:userId\n */\n partialRoute = preventDuplicateSegments(req.originalUrl, req._reconstructedRoute, layer.path) || '';\n }\n\n // Normalize the partial route so that it doesn't contain leading or trailing slashes\n // and exclude empty or '*' wildcard routes.\n // The exclusion of '*' routes is our best effort to not \"pollute\" the transaction name\n // with interim handlers (e.g. ones that check authentication or do other middleware stuff).\n // We want to end up with the parameterized URL of the incoming request without any extraneous path segments.\n const finalPartialRoute = partialRoute\n .split('/')\n .filter(segment => segment.length > 0 && (isRegex || isArray || !segment.includes('*')))\n .join('/');\n\n // If we found a valid partial URL, we append it to the reconstructed route\n if (finalPartialRoute && finalPartialRoute.length > 0) {\n // If the partial route is from a regex route, we append a '/' to close the regex\n req._reconstructedRoute += `/${finalPartialRoute}${isRegex ? '/' : ''}`;\n }\n\n // Now we check if we are in the \"last\" part of the route. We determine this by comparing the\n // number of URL segments from the original URL to that of our reconstructed parameterized URL.\n // If we've reached our final destination, we update the transaction name.\n const urlLength = getNumberOfUrlSegments(stripUrlQueryAndFragment(req.originalUrl || '')) + numExtraSegments;\n const routeLength = getNumberOfUrlSegments(req._reconstructedRoute);\n\n if (urlLength === routeLength) {\n if (!req._hasParameters) {\n if (req._reconstructedRoute !== req.originalUrl) {\n req._reconstructedRoute = req.originalUrl ? stripUrlQueryAndFragment(req.originalUrl) : req.originalUrl;\n }\n }\n\n const transaction = res.__sentry_transaction;\n const attributes = (transaction && spanToJSON(transaction).data) || {};\n if (transaction && attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] !== 'custom') {\n // If the request URL is '/' or empty, the reconstructed route will be empty.\n // Therefore, we fall back to setting the final route to '/' in this case.\n const finalRoute = req._reconstructedRoute || '/';\n\n const [name, source] = extractPathForTransaction(req, { path: true, method: true, customRoute: finalRoute });\n transaction.updateName(name);\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, source);\n }\n }\n\n return originalProcessParams.call(this, layer, called, req, res, done);\n };\n}\n\ntype LayerRoutePathInfo = {\n layerRoutePath?: string;\n isRegex: boolean;\n isArray: boolean;\n numExtraSegments: number;\n};\n\n/**\n * Recreate layer.route.path from layer.regexp and layer.keys.\n * Works until express.js used package path-to-regexp@0.1.7\n * or until layer.keys contain offset attribute\n *\n * @param layer the layer to extract the stringified route from\n *\n * @returns string in layer.route.path structure 'router/:pathParam' or undefined\n */\nexport const extractOriginalRoute = (\n path?: Layer['path'],\n regexp?: Layer['regexp'],\n keys?: Layer['keys'],\n): string | undefined => {\n if (!path || !regexp || !keys || Object.keys(keys).length === 0 || !keys[0]?.offset) {\n return undefined;\n }\n\n const orderedKeys = keys.sort((a, b) => a.offset - b.offset);\n\n // add d flag for getting indices from regexp result\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- regexp comes from express.js\n const pathRegex = new RegExp(regexp, `${regexp.flags}d`);\n /**\n * use custom type cause of TS error with missing indices in RegExpExecArray\n */\n const execResult = pathRegex.exec(path) as (RegExpExecArray & { indices: [number, number][] }) | null;\n\n if (!execResult || !execResult.indices) {\n return undefined;\n }\n /**\n * remove first match from regex cause contain whole layer.path\n */\n const [, ...paramIndices] = execResult.indices;\n\n if (paramIndices.length !== orderedKeys.length) {\n return undefined;\n }\n let resultPath = path;\n let indexShift = 0;\n\n /**\n * iterate param matches from regexp.exec\n */\n paramIndices.forEach((item: [number, number] | undefined, index: number) => {\n /** check if offsets is define because in some cases regex d flag returns undefined */\n if (item) {\n const [startOffset, endOffset] = item;\n /**\n * isolate part before param\n */\n const substr1 = resultPath.substring(0, startOffset - indexShift);\n /**\n * define paramName as replacement in format :pathParam\n */\n const replacement = `:${orderedKeys[index].name}`;\n\n /**\n * isolate part after param\n */\n const substr2 = resultPath.substring(endOffset - indexShift);\n\n /**\n * recreate original path but with param replacement\n */\n resultPath = substr1 + replacement + substr2;\n\n /**\n * calculate new index shift after resultPath was modified\n */\n indexShift = indexShift + (endOffset - startOffset - replacement.length);\n }\n });\n\n return resultPath;\n};\n\n/**\n * Extracts and stringifies the layer's route which can either be a string with parameters (`users/:id`),\n * a RegEx (`/test/`) or an array of strings and regexes (`['/path1', /\\/path[2-5]/, /path/:id]`). Additionally\n * returns extra information about the route, such as if the route is defined as regex or as an array.\n *\n * @param layer the layer to extract the stringified route from\n *\n * @returns an object containing the stringified route, a flag determining if the route was a regex\n * and the number of extra segments to the matched path that are additionally in the route,\n * if the route was an array (defaults to 0).\n */\nfunction getLayerRoutePathInfo(layer: Layer): LayerRoutePathInfo {\n let lrp = layer.route?.path;\n\n const isRegex = isRegExp(lrp);\n const isArray = Array.isArray(lrp);\n\n if (!lrp) {\n // parse node.js major version\n // Next.js will complain if we directly use `proces.versions` here because of edge runtime.\n const [major] = (GLOBAL_OBJ as unknown as NodeJS.Global).process.versions.node.split('.').map(Number);\n\n // allow call extractOriginalRoute only if node version support Regex d flag, node 16+\n if (major >= 16) {\n /**\n * If lrp does not exist try to recreate original layer path from route regexp\n */\n lrp = extractOriginalRoute(layer.path, layer.regexp, layer.keys);\n }\n }\n\n if (!lrp) {\n return { isRegex, isArray, numExtraSegments: 0 };\n }\n\n const numExtraSegments = isArray\n ? Math.max(getNumberOfArrayUrlSegments(lrp as RouteType[]) - getNumberOfUrlSegments(layer.path || ''), 0)\n : 0;\n\n const layerRoutePath = getLayerRoutePathString(isArray, lrp);\n\n return { layerRoutePath, isRegex, isArray, numExtraSegments };\n}\n\n/**\n * Returns the number of URL segments in an array of routes\n *\n * Example: ['/api/test', /\\/api\\/post[0-9]/, '/users/:id/details`] -> 7\n */\nfunction getNumberOfArrayUrlSegments(routesArray: RouteType[]): number {\n return routesArray.reduce((accNumSegments: number, currentRoute: RouteType) => {\n // array members can be a RegEx -> convert them toString\n return accNumSegments + getNumberOfUrlSegments(currentRoute.toString());\n }, 0);\n}\n\n/**\n * Extracts and returns the stringified version of the layers route path\n * Handles route arrays (by joining the paths together) as well as RegExp and normal\n * string values (in the latter case the toString conversion is technically unnecessary but\n * it doesn't hurt us either).\n */\nfunction getLayerRoutePathString(isArray: boolean, lrp?: RouteType | RouteType[]): string | undefined {\n if (isArray) {\n return (lrp as RouteType[]).map(r => r.toString()).join(',');\n }\n return lrp && lrp.toString();\n}\n\n/**\n * remove duplicate segment contain in layerPath against reconstructedRoute,\n * and return only unique segment that can be added into reconstructedRoute\n */\nexport function preventDuplicateSegments(\n originalUrl?: string,\n reconstructedRoute?: string,\n layerPath?: string,\n): string | undefined {\n // filter query params\n const normalizeURL = stripUrlQueryAndFragment(originalUrl || '');\n const originalUrlSplit = normalizeURL?.split('/').filter(v => !!v);\n let tempCounter = 0;\n const currentOffset = reconstructedRoute?.split('/').filter(v => !!v).length || 0;\n const result = layerPath\n ?.split('/')\n .filter(segment => {\n if (originalUrlSplit?.[currentOffset + tempCounter] === segment) {\n tempCounter += 1;\n return true;\n }\n return false;\n })\n .join('/');\n return result;\n}\n","import type { Hub } from '@sentry/core';\nimport type { EventProcessor } from '@sentry/types';\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport type { LazyLoadedIntegration } from './lazy';\nimport { shouldDisableAutoInstrumentation } from './utils/node-utils';\n\ntype GraphQLModule = {\n [method: string]: (...args: unknown[]) => unknown;\n};\n\n/** Tracing integration for graphql package */\nexport class GraphQL implements LazyLoadedIntegration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GraphQL';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private _module?: GraphQLModule;\n\n public constructor() {\n this.name = GraphQL.id;\n }\n\n /** @inheritdoc */\n public loadDependency(): GraphQLModule | undefined {\n return (this._module = this._module || loadModule('graphql/execution/execute.js'));\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (shouldDisableAutoInstrumentation(getCurrentHub)) {\n DEBUG_BUILD && logger.log('GraphQL Integration is skipped because of instrumenter configuration.');\n return;\n }\n\n const pkg = this.loadDependency();\n\n if (!pkg) {\n DEBUG_BUILD && logger.error('GraphQL Integration was unable to require graphql/execution package.');\n return;\n }\n\n fill(pkg, 'execute', function (orig: () => void | Promise) {\n return function (this: unknown, ...args: unknown[]) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = getCurrentHub().getScope();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n // eslint-disable-next-line deprecation/deprecation\n const span = parentSpan?.startChild({\n description: 'execute',\n op: 'graphql.execute',\n origin: 'auto.graphql.graphql',\n });\n\n // eslint-disable-next-line deprecation/deprecation\n scope?.setSpan(span);\n\n const rv = orig.call(this, ...args);\n\n if (isThenable(rv)) {\n return rv.then((res: unknown) => {\n span?.end();\n // eslint-disable-next-line deprecation/deprecation\n scope?.setSpan(parentSpan);\n\n return res;\n });\n }\n\n span?.end();\n // eslint-disable-next-line deprecation/deprecation\n scope?.setSpan(parentSpan);\n return rv;\n };\n });\n }\n}\n","import type { Hub } from '@sentry/core';\nimport type { EventProcessor, SpanContext } from '@sentry/types';\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport type { LazyLoadedIntegration } from './lazy';\nimport { shouldDisableAutoInstrumentation } from './utils/node-utils';\n\n// This allows us to use the same array for both defaults options and the type itself.\n// (note `as const` at the end to make it a union of string literal types (i.e. \"a\" | \"b\" | ... )\n// and not just a string[])\ntype Operation = (typeof OPERATIONS)[number];\nconst OPERATIONS = [\n 'aggregate', // aggregate(pipeline, options, callback)\n 'bulkWrite', // bulkWrite(operations, options, callback)\n 'countDocuments', // countDocuments(query, options, callback)\n 'createIndex', // createIndex(fieldOrSpec, options, callback)\n 'createIndexes', // createIndexes(indexSpecs, options, callback)\n 'deleteMany', // deleteMany(filter, options, callback)\n 'deleteOne', // deleteOne(filter, options, callback)\n 'distinct', // distinct(key, query, options, callback)\n 'drop', // drop(options, callback)\n 'dropIndex', // dropIndex(indexName, options, callback)\n 'dropIndexes', // dropIndexes(options, callback)\n 'estimatedDocumentCount', // estimatedDocumentCount(options, callback)\n 'find', // find(query, options, callback)\n 'findOne', // findOne(query, options, callback)\n 'findOneAndDelete', // findOneAndDelete(filter, options, callback)\n 'findOneAndReplace', // findOneAndReplace(filter, replacement, options, callback)\n 'findOneAndUpdate', // findOneAndUpdate(filter, update, options, callback)\n 'indexes', // indexes(options, callback)\n 'indexExists', // indexExists(indexes, options, callback)\n 'indexInformation', // indexInformation(options, callback)\n 'initializeOrderedBulkOp', // initializeOrderedBulkOp(options, callback)\n 'insertMany', // insertMany(docs, options, callback)\n 'insertOne', // insertOne(doc, options, callback)\n 'isCapped', // isCapped(options, callback)\n 'mapReduce', // mapReduce(map, reduce, options, callback)\n 'options', // options(options, callback)\n 'parallelCollectionScan', // parallelCollectionScan(options, callback)\n 'rename', // rename(newName, options, callback)\n 'replaceOne', // replaceOne(filter, doc, options, callback)\n 'stats', // stats(options, callback)\n 'updateMany', // updateMany(filter, update, options, callback)\n 'updateOne', // updateOne(filter, update, options, callback)\n] as const;\n\n// All of the operations above take `options` and `callback` as their final parameters, but some of them\n// take additional parameters as well. For those operations, this is a map of\n// { : [] }, as a way to know what to call the operation's\n// positional arguments when we add them to the span's `data` object later\nconst OPERATION_SIGNATURES: {\n [op in Operation]?: string[];\n} = {\n // aggregate intentionally not included because `pipeline` arguments are too complex to serialize well\n // see https://github.com/getsentry/sentry-javascript/pull/3102\n bulkWrite: ['operations'],\n countDocuments: ['query'],\n createIndex: ['fieldOrSpec'],\n createIndexes: ['indexSpecs'],\n deleteMany: ['filter'],\n deleteOne: ['filter'],\n distinct: ['key', 'query'],\n dropIndex: ['indexName'],\n find: ['query'],\n findOne: ['query'],\n findOneAndDelete: ['filter'],\n findOneAndReplace: ['filter', 'replacement'],\n findOneAndUpdate: ['filter', 'update'],\n indexExists: ['indexes'],\n insertMany: ['docs'],\n insertOne: ['doc'],\n mapReduce: ['map', 'reduce'],\n rename: ['newName'],\n replaceOne: ['filter', 'doc'],\n updateMany: ['filter', 'update'],\n updateOne: ['filter', 'update'],\n};\n\ninterface MongoCollection {\n collectionName: string;\n dbName: string;\n namespace: string;\n prototype: {\n [operation in Operation]: (...args: unknown[]) => unknown;\n };\n}\n\ninterface MongoOptions {\n operations?: Operation[];\n describeOperations?: boolean | Operation[];\n useMongoose?: boolean;\n}\n\ninterface MongoCursor {\n once(event: 'close', listener: () => void): void;\n}\n\nfunction isCursor(maybeCursor: MongoCursor): maybeCursor is MongoCursor {\n return maybeCursor && typeof maybeCursor === 'object' && maybeCursor.once && typeof maybeCursor.once === 'function';\n}\n\ntype MongoModule = { Collection: MongoCollection };\n\n/** Tracing integration for mongo package */\nexport class Mongo implements LazyLoadedIntegration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Mongo';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private _operations: Operation[];\n private _describeOperations?: boolean | Operation[];\n private _useMongoose: boolean;\n\n private _module?: MongoModule;\n\n /**\n * @inheritDoc\n */\n public constructor(options: MongoOptions = {}) {\n this.name = Mongo.id;\n this._operations = Array.isArray(options.operations) ? options.operations : (OPERATIONS as unknown as Operation[]);\n this._describeOperations = 'describeOperations' in options ? options.describeOperations : true;\n this._useMongoose = !!options.useMongoose;\n }\n\n /** @inheritdoc */\n public loadDependency(): MongoModule | undefined {\n const moduleName = this._useMongoose ? 'mongoose' : 'mongodb';\n return (this._module = this._module || loadModule(moduleName));\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (shouldDisableAutoInstrumentation(getCurrentHub)) {\n DEBUG_BUILD && logger.log('Mongo Integration is skipped because of instrumenter configuration.');\n return;\n }\n\n const pkg = this.loadDependency();\n\n if (!pkg) {\n const moduleName = this._useMongoose ? 'mongoose' : 'mongodb';\n DEBUG_BUILD && logger.error(`Mongo Integration was unable to require \\`${moduleName}\\` package.`);\n return;\n }\n\n this._instrumentOperations(pkg.Collection, this._operations, getCurrentHub);\n }\n\n /**\n * Patches original collection methods\n */\n private _instrumentOperations(collection: MongoCollection, operations: Operation[], getCurrentHub: () => Hub): void {\n operations.forEach((operation: Operation) => this._patchOperation(collection, operation, getCurrentHub));\n }\n\n /**\n * Patches original collection to utilize our tracing functionality\n */\n private _patchOperation(collection: MongoCollection, operation: Operation, getCurrentHub: () => Hub): void {\n if (!(operation in collection.prototype)) return;\n\n const getSpanContext = this._getSpanContextFromOperationArguments.bind(this);\n\n fill(collection.prototype, operation, function (orig: () => void | Promise) {\n return function (this: unknown, ...args: unknown[]) {\n const lastArg = args[args.length - 1];\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const scope = hub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const sendDefaultPii = client?.getOptions().sendDefaultPii;\n\n // Check if the operation was passed a callback. (mapReduce requires a different check, as\n // its (non-callback) arguments can also be functions.)\n if (typeof lastArg !== 'function' || (operation === 'mapReduce' && args.length === 2)) {\n // eslint-disable-next-line deprecation/deprecation\n const span = parentSpan?.startChild(getSpanContext(this, operation, args, sendDefaultPii));\n const maybePromiseOrCursor = orig.call(this, ...args);\n\n if (isThenable(maybePromiseOrCursor)) {\n return maybePromiseOrCursor.then((res: unknown) => {\n span?.end();\n return res;\n });\n }\n // If the operation returns a Cursor\n // we need to attach a listener to it to finish the span when the cursor is closed.\n else if (isCursor(maybePromiseOrCursor)) {\n const cursor = maybePromiseOrCursor as MongoCursor;\n\n try {\n cursor.once('close', () => {\n span?.end();\n });\n } catch (e) {\n // If the cursor is already closed, `once` will throw an error. In that case, we can\n // finish the span immediately.\n span?.end();\n }\n\n return cursor;\n } else {\n span?.end();\n return maybePromiseOrCursor;\n }\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const span = parentSpan?.startChild(getSpanContext(this, operation, args.slice(0, -1)));\n\n return orig.call(this, ...args.slice(0, -1), function (err: Error, result: unknown) {\n span?.end();\n lastArg(err, result);\n });\n };\n });\n }\n\n /**\n * Form a SpanContext based on the user input to a given operation.\n */\n private _getSpanContextFromOperationArguments(\n collection: MongoCollection,\n operation: Operation,\n args: unknown[],\n sendDefaultPii: boolean | undefined = false,\n ): SpanContext {\n const data: { [key: string]: string } = {\n 'db.system': 'mongodb',\n 'db.name': collection.dbName,\n 'db.operation': operation,\n 'db.mongodb.collection': collection.collectionName,\n };\n const spanContext: SpanContext = {\n op: 'db',\n // TODO v8: Use `${collection.collectionName}.${operation}`\n origin: 'auto.db.mongo',\n description: operation,\n data,\n };\n\n // If the operation takes no arguments besides `options` and `callback`, or if argument\n // collection is disabled for this operation, just return early.\n const signature = OPERATION_SIGNATURES[operation];\n const shouldDescribe = Array.isArray(this._describeOperations)\n ? this._describeOperations.includes(operation)\n : this._describeOperations;\n\n if (!signature || !shouldDescribe || !sendDefaultPii) {\n return spanContext;\n }\n\n try {\n // Special case for `mapReduce`, as the only one accepting functions as arguments.\n if (operation === 'mapReduce') {\n const [map, reduce] = args as { name?: string }[];\n data[signature[0]] = typeof map === 'string' ? map : map.name || '';\n data[signature[1]] = typeof reduce === 'string' ? reduce : reduce.name || '';\n } else {\n for (let i = 0; i < signature.length; i++) {\n data[`db.mongodb.${signature[i]}`] = JSON.stringify(args[i]);\n }\n }\n } catch (_oO) {\n // no-empty\n }\n\n return spanContext;\n }\n}\n","import type { Hub } from '@sentry/core';\nimport type { EventProcessor, Span } from '@sentry/types';\nimport { fill, loadModule, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport type { LazyLoadedIntegration } from './lazy';\nimport { shouldDisableAutoInstrumentation } from './utils/node-utils';\n\ninterface MysqlConnection {\n prototype: {\n connect: () => void;\n };\n createQuery: () => void;\n}\n\ninterface MysqlConnectionConfig {\n host: string;\n port: number;\n user: string;\n}\n\n/** Tracing integration for node-mysql package */\nexport class Mysql implements LazyLoadedIntegration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Mysql';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private _module?: MysqlConnection;\n\n public constructor() {\n this.name = Mysql.id;\n }\n\n /** @inheritdoc */\n public loadDependency(): MysqlConnection | undefined {\n return (this._module = this._module || loadModule('mysql/lib/Connection.js'));\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (shouldDisableAutoInstrumentation(getCurrentHub)) {\n DEBUG_BUILD && logger.log('Mysql Integration is skipped because of instrumenter configuration.');\n return;\n }\n\n const pkg = this.loadDependency();\n\n if (!pkg) {\n DEBUG_BUILD && logger.error('Mysql Integration was unable to require `mysql` package.');\n return;\n }\n\n let mySqlConfig: MysqlConnectionConfig | undefined = undefined;\n\n try {\n pkg.prototype.connect = new Proxy(pkg.prototype.connect, {\n apply(wrappingTarget, thisArg: { config: MysqlConnectionConfig }, args) {\n if (!mySqlConfig) {\n mySqlConfig = thisArg.config;\n }\n return wrappingTarget.apply(thisArg, args);\n },\n });\n } catch (e) {\n DEBUG_BUILD && logger.error('Mysql Integration was unable to instrument `mysql` config.');\n }\n\n function spanDataFromConfig(): Record {\n if (!mySqlConfig) {\n return {};\n }\n return {\n 'server.address': mySqlConfig.host,\n 'server.port': mySqlConfig.port,\n 'db.user': mySqlConfig.user,\n };\n }\n\n function finishSpan(span: Span | undefined): void {\n if (!span) {\n return;\n }\n\n const data = spanDataFromConfig();\n Object.keys(data).forEach(key => {\n span.setAttribute(key, data[key]);\n });\n\n span.end();\n }\n\n // The original function will have one of these signatures:\n // function (callback) => void\n // function (options, callback) => void\n // function (options, values, callback) => void\n fill(pkg, 'createQuery', function (orig: () => void) {\n return function (this: unknown, options: unknown, values: unknown, callback: unknown) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = getCurrentHub().getScope();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n // eslint-disable-next-line deprecation/deprecation\n const span = parentSpan?.startChild({\n description: typeof options === 'string' ? options : (options as { sql: string }).sql,\n op: 'db',\n origin: 'auto.db.mysql',\n data: {\n 'db.system': 'mysql',\n },\n });\n\n if (typeof callback === 'function') {\n return orig.call(this, options, values, function (err: Error, result: unknown, fields: unknown) {\n finishSpan(span);\n callback(err, result, fields);\n });\n }\n\n if (typeof values === 'function') {\n return orig.call(this, options, function (err: Error, result: unknown, fields: unknown) {\n finishSpan(span);\n values(err, result, fields);\n });\n }\n\n // streaming, no callback!\n const query = orig.call(this, options, values) as { on: (event: string, callback: () => void) => void };\n\n query.on('end', () => {\n finishSpan(span);\n });\n\n return query;\n };\n });\n }\n}\n","import type { Hub } from '@sentry/core';\nimport type { EventProcessor } from '@sentry/types';\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport type { LazyLoadedIntegration } from './lazy';\nimport { shouldDisableAutoInstrumentation } from './utils/node-utils';\n\ntype PgClientQuery = (\n config: unknown,\n values?: unknown,\n callback?: (err: unknown, result: unknown) => void,\n) => void | Promise;\n\ninterface PgClient {\n prototype: {\n query: PgClientQuery;\n };\n}\n\ninterface PgClientThis {\n database?: string;\n host?: string;\n port?: number;\n user?: string;\n}\n\ninterface PgOptions {\n usePgNative?: boolean;\n /**\n * Supply your postgres module directly, instead of having Sentry attempt automatic resolution.\n * Use this if you (a) use a module that's not `pg`, or (b) use a bundler that breaks resolution (e.g. esbuild).\n *\n * Usage:\n * ```\n * import pg from 'pg';\n *\n * Sentry.init({\n * integrations: [new Sentry.Integrations.Postgres({ module: pg })],\n * });\n * ```\n */\n module?: PGModule;\n}\n\ntype PGModule = { Client: PgClient; native: { Client: PgClient } | null };\n\n/** Tracing integration for node-postgres package */\nexport class Postgres implements LazyLoadedIntegration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Postgres';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private _usePgNative: boolean;\n\n private _module?: PGModule;\n\n public constructor(options: PgOptions = {}) {\n this.name = Postgres.id;\n this._usePgNative = !!options.usePgNative;\n this._module = options.module;\n }\n\n /** @inheritdoc */\n public loadDependency(): PGModule | undefined {\n return (this._module = this._module || loadModule('pg'));\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (shouldDisableAutoInstrumentation(getCurrentHub)) {\n DEBUG_BUILD && logger.log('Postgres Integration is skipped because of instrumenter configuration.');\n return;\n }\n\n const pkg = this.loadDependency();\n\n if (!pkg) {\n DEBUG_BUILD && logger.error('Postgres Integration was unable to require `pg` package.');\n return;\n }\n\n const Client = this._usePgNative ? pkg.native?.Client : pkg.Client;\n\n if (!Client) {\n DEBUG_BUILD && logger.error(\"Postgres Integration was unable to access 'pg-native' bindings.\");\n return;\n }\n\n /**\n * function (query, callback) => void\n * function (query, params, callback) => void\n * function (query) => Promise\n * function (query, params) => Promise\n * function (pg.Cursor) => pg.Cursor\n */\n fill(Client.prototype, 'query', function (orig: PgClientQuery) {\n return function (this: PgClientThis, config: unknown, values: unknown, callback: unknown) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = getCurrentHub().getScope();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const data: Record = {\n 'db.system': 'postgresql',\n };\n\n try {\n if (this.database) {\n data['db.name'] = this.database;\n }\n if (this.host) {\n data['server.address'] = this.host;\n }\n if (this.port) {\n data['server.port'] = this.port;\n }\n if (this.user) {\n data['db.user'] = this.user;\n }\n } catch (e) {\n // ignore\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const span = parentSpan?.startChild({\n description: typeof config === 'string' ? config : (config as { text: string }).text,\n op: 'db',\n origin: 'auto.db.postgres',\n data,\n });\n\n if (typeof callback === 'function') {\n return orig.call(this, config, values, function (err: Error, result: unknown) {\n span?.end();\n callback(err, result);\n });\n }\n\n if (typeof values === 'function') {\n return orig.call(this, config, function (err: Error, result: unknown) {\n span?.end();\n values(err, result);\n });\n }\n\n const rv = typeof values !== 'undefined' ? orig.call(this, config, values) : orig.call(this, config);\n\n if (isThenable(rv)) {\n return rv.then((res: unknown) => {\n span?.end();\n return res;\n });\n }\n\n span?.end();\n return rv;\n };\n });\n }\n}\n","import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getCurrentHub, startSpan } from '@sentry/core';\nimport type { Integration } from '@sentry/types';\nimport { addNonEnumerableProperty, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport { shouldDisableAutoInstrumentation } from './utils/node-utils';\n\ntype PrismaAction =\n | 'findUnique'\n | 'findMany'\n | 'findFirst'\n | 'create'\n | 'createMany'\n | 'update'\n | 'updateMany'\n | 'upsert'\n | 'delete'\n | 'deleteMany'\n | 'executeRaw'\n | 'queryRaw'\n | 'aggregate'\n | 'count'\n | 'runCommandRaw';\n\ninterface PrismaMiddlewareParams {\n model?: unknown;\n action: PrismaAction;\n args: unknown;\n dataPath: string[];\n runInTransaction: boolean;\n}\n\ntype PrismaMiddleware = (\n params: PrismaMiddlewareParams,\n next: (params: PrismaMiddlewareParams) => Promise,\n) => Promise;\n\ninterface PrismaClient {\n _sentryInstrumented?: boolean;\n _engineConfig?: {\n activeProvider?: string;\n clientVersion?: string;\n };\n $use: (cb: PrismaMiddleware) => void;\n}\n\nfunction isValidPrismaClient(possibleClient: unknown): possibleClient is PrismaClient {\n return !!possibleClient && !!(possibleClient as PrismaClient)['$use'];\n}\n\n/** Tracing integration for @prisma/client package */\nexport class Prisma implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Prisma';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * @inheritDoc\n */\n public constructor(options: { client?: unknown } = {}) {\n this.name = Prisma.id;\n\n // We instrument the PrismaClient inside the constructor and not inside `setupOnce` because in some cases of server-side\n // bundling (Next.js) multiple Prisma clients can be instantiated, even though users don't intend to. When instrumenting\n // in setupOnce we can only ever instrument one client.\n // https://github.com/getsentry/sentry-javascript/issues/7216#issuecomment-1602375012\n // In the future we might explore providing a dedicated PrismaClient middleware instead of this hack.\n if (isValidPrismaClient(options.client) && !options.client._sentryInstrumented) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n addNonEnumerableProperty(options.client as any, '_sentryInstrumented', true);\n\n const clientData: Record = {};\n try {\n const engineConfig = (options.client as PrismaClient)._engineConfig;\n if (engineConfig) {\n const { activeProvider, clientVersion } = engineConfig;\n if (activeProvider) {\n clientData['db.system'] = activeProvider;\n }\n if (clientVersion) {\n clientData['db.prisma.version'] = clientVersion;\n }\n }\n } catch (e) {\n // ignore\n }\n\n options.client.$use((params, next: (params: PrismaMiddlewareParams) => Promise) => {\n // eslint-disable-next-line deprecation/deprecation\n if (shouldDisableAutoInstrumentation(getCurrentHub)) {\n return next(params);\n }\n\n const action = params.action;\n const model = params.model;\n\n return startSpan(\n {\n name: model ? `${model} ${action}` : action,\n onlyIfParent: true,\n op: 'db.prisma',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.prisma',\n },\n data: { ...clientData, 'db.operation': action },\n },\n () => next(params),\n );\n });\n } else {\n DEBUG_BUILD &&\n logger.warn('Unsupported Prisma client provided to PrismaIntegration. Provided client:', options.client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // Noop - here for backwards compatibility\n }\n}\n","import type {\n RequestInstrumentationOptions as RequestInstrumentationOptionsT,\n SpanStatusType as SpanStatusTypeT,\n} from '@sentry-internal/tracing';\nimport {\n Apollo,\n BROWSER_TRACING_INTEGRATION_ID as BROWSER_TRACING_INTEGRATION_ID_T,\n BrowserTracing as BrowserTracingT,\n Express,\n GraphQL,\n IdleTransaction as IdleTransactionT,\n Mongo,\n Mysql,\n Postgres,\n Prisma,\n Span as SpanT,\n SpanStatus as SpanStatusT,\n TRACEPARENT_REGEXP as TRACEPARENT_REGEXP_T,\n Transaction as TransactionT,\n addExtensionMethods as addExtensionMethodsT,\n defaultRequestInstrumentationOptions as defaultRequestInstrumentationOptionsT,\n extractTraceparentData as extractTraceparentDataT,\n getActiveTransaction as getActiveTransactionT,\n hasTracingEnabled as hasTracingEnabledT,\n instrumentOutgoingRequests as instrumentOutgoingRequestsT,\n spanStatusfromHttpCode as spanStatusfromHttpCodeT,\n startIdleTransaction as startIdleTransactionT,\n stripUrlQueryAndFragment as stripUrlQueryAndFragmentT,\n} from '@sentry-internal/tracing';\n\n// BrowserTracing is already exported as part of `Integrations` below (and for the moment will remain so for\n// backwards compatibility), but that interferes with treeshaking, so we also export it separately\n// here.\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `BrowserTracing` can be imported from `@sentry/browser` or your framework SDK\n *\n * import { BrowserTracing } from '@sentry/browser';\n * new BrowserTracing()\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const BrowserTracing = BrowserTracingT;\n\n// BrowserTracing is already exported as part of `Integrations` below (and for the moment will remain so for\n// backwards compatibility), but that interferes with treeshaking, so we also export it separately\n// here.\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `BrowserTracing` can be imported from `@sentry/browser` or your framework SDK\n *\n * import { BrowserTracing } from '@sentry/browser';\n * new BrowserTracing()\n */\n// eslint-disable-next-line deprecation/deprecation\nexport type BrowserTracing = BrowserTracingT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\nexport const addExtensionMethods = addExtensionMethodsT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `getActiveTransaction` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const getActiveTransaction = getActiveTransactionT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `extractTraceparentData` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const extractTraceparentData = extractTraceparentDataT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `spanStatusfromHttpCode` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const spanStatusfromHttpCode = spanStatusfromHttpCodeT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `SpanStatusType` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\nexport type SpanStatusType = SpanStatusTypeT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `Transaction` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\nexport const Transaction = TransactionT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `Transaction` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\nexport type Transaction = TransactionT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `Span` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\nexport const Span = SpanT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `Span` can be imported from `@sentry/node`, `@sentry/browser`, or your framework SDK\n */\nexport type Span = SpanT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\nexport const BROWSER_TRACING_INTEGRATION_ID = BROWSER_TRACING_INTEGRATION_ID_T;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `defaultRequestInstrumentationOptions` can be imported from `@sentry/browser`, or your framework SDK\n */\nexport const defaultRequestInstrumentationOptions = defaultRequestInstrumentationOptionsT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `hasTracingEnabled` can be imported from `@sentry/utils`\n */\nexport const hasTracingEnabled = hasTracingEnabledT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `stripUrlQueryAndFragment` can be imported from `@sentry/utils`\n */\nexport const stripUrlQueryAndFragment = stripUrlQueryAndFragmentT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n *\n * `TRACEPARENT_REGEXP` can be imported from `@sentry/utils`\n */\nexport const TRACEPARENT_REGEXP = TRACEPARENT_REGEXP_T;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\nexport const IdleTransaction = IdleTransactionT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\nexport type IdleTransaction = IdleTransactionT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\nexport const instrumentOutgoingRequests = instrumentOutgoingRequestsT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\nexport const startIdleTransaction = startIdleTransactionT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const SpanStatus = SpanStatusT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport type SpanStatus = SpanStatusT;\n\n/**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n */\nexport type RequestInstrumentationOptions = RequestInstrumentationOptionsT;\n\nexport const Integrations = {\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `BrowserTracing` can be imported from `@sentry/browser` or your framework SDK\n *\n * import { BrowserTracing } from '@sentry/browser';\n * new BrowserTracing()\n */\n // eslint-disable-next-line deprecation/deprecation\n BrowserTracing: BrowserTracing,\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `Apollo` can be imported from `@sentry/node`\n *\n * import { Integrations } from '@sentry/node';\n * new Integrations.Apollo({ ... })\n */\n // eslint-disable-next-line deprecation/deprecation\n Apollo: Apollo,\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `Express` can be imported from `@sentry/node`\n *\n * import { Integrations } from '@sentry/node';\n * new Integrations.Express({ ... })\n */\n // eslint-disable-next-line deprecation/deprecation\n Express: Express,\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `GraphQL` can be imported from `@sentry/node`\n *\n * import { Integrations } from '@sentry/node';\n * new Integrations.GraphQL({ ... })\n */\n // eslint-disable-next-line deprecation/deprecation\n GraphQL: GraphQL,\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `Mongo` can be imported from `@sentry/node`\n *\n * import { Integrations } from '@sentry/node';\n * new Integrations.Mongo({ ... })\n */\n // eslint-disable-next-line deprecation/deprecation\n Mongo: Mongo,\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `Mysql` can be imported from `@sentry/node`\n *\n * import { Integrations } from '@sentry/node';\n * new Integrations.Mysql({ ... })\n */\n // eslint-disable-next-line deprecation/deprecation\n Mysql: Mysql,\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `Postgres` can be imported from `@sentry/node`\n *\n * import { Integrations } from '@sentry/node';\n * new Integrations.Postgres({ ... })\n */\n // eslint-disable-next-line deprecation/deprecation\n Postgres: Postgres,\n /**\n * @deprecated `@sentry/tracing` has been deprecated and will be moved to to `@sentry/node`, `@sentry/browser`, or your framework SDK in the next major version.\n * `Prisma` can be imported from `@sentry/node`\n *\n * import { Integrations } from '@sentry/node';\n * new Integrations.Prisma({ ... })\n */\n // eslint-disable-next-line deprecation/deprecation\n Prisma: Prisma,\n};\n\n// Treeshakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean;\n\n// Guard for tree\nif (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {\n // We are patching the global object with our hub extension methods\n addExtensionMethodsT();\n}\n","import type { IdleTransaction, SpanStatusType } from '@sentry/core';\nimport { getActiveTransaction, spanToJSON } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { WINDOW } from './types';\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection(): void {\n if (WINDOW && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction() as IdleTransaction;\n if (WINDOW.document.hidden && activeTransaction) {\n const statusType: SpanStatusType = 'cancelled';\n\n const { op, status } = spanToJSON(activeTransaction);\n\n DEBUG_BUILD &&\n logger.log(`[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${op}`);\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!status) {\n activeTransaction.setStatus(statusType);\n }\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.end();\n }\n });\n } else {\n DEBUG_BUILD && logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n","import { View } from 'react-native';\n\nexport default View;\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 Component: React.ComponentType

,\n containerStyles?: StyleProp\n): React.ComponentType

{\n function Wrapper(props: P) {\n return (\n \n \n \n );\n }\n\n Wrapper.displayName = `gestureHandlerRootHOC(${\n Component.displayName || Component.name\n })`;\n\n hoistNonReactStatics(Wrapper, Component);\n\n return Wrapper;\n}\n\nconst styles = StyleSheet.create({\n container: { flex: 1 },\n});\n","export default {\n get forceTouchAvailable() {\n return false;\n },\n};\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 -> React.createRef.\n// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.\nimport * as React from 'react';\n\nimport createHandler from './createHandler';\nimport PlatformConstants from '../PlatformConstants';\nimport { State } from '../State';\nimport { ValueOf } from '../typeUtils';\n\nexport interface GestureEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf;\n}\n\nexport interface HandlerStateChangeEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf;\n oldState: ValueOf;\n}\n\n//TODO(TS) events in handlers\n\nexport interface GestureEvent> {\n nativeEvent: Readonly;\n}\nexport interface HandlerStateChangeEvent<\n ExtraEventPayloadT = Record\n> {\n nativeEvent: Readonly;\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 = Record\n> = {\n id?: string;\n enabled?: boolean;\n minPointers?: number;\n waitFor?: React.Ref | React.Ref[];\n simultaneousHandlers?: React.Ref | React.Ref[];\n shouldCancelWhenOutside?: boolean;\n hitSlop?:\n | number\n // TODO(TS) take into consideration types from GestureHandler#setHitSlop\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 // 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) => void;\n onHandlerStateChange?: (\n event: HandlerStateChangeEvent\n ) => void;\n};\n\nexport const baseProps = [\n 'id',\n 'enabled',\n 'minPointers',\n 'waitFor',\n 'simultaneousHandlers',\n 'shouldCancelWhenOutside',\n 'hitSlop',\n 'onBegan',\n 'onFailed',\n 'onCancelled',\n 'onActivated',\n 'onEnded',\n 'onGestureEvent',\n 'onHandlerStateChange',\n] as const;\n\nexport type TapGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface TapGestureHandlerProps\n extends BaseGestureHandlerProps {\n minPointers?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n numberOfTaps?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n maxDist?: number;\n}\n\nexport type TapGestureHandler = typeof TapGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const TapGestureHandler = createHandler<\n TapGestureHandlerProps,\n TapGestureHandlerEventPayload\n>({\n name: 'TapGestureHandler',\n allowedProps: [\n ...baseProps,\n 'maxDurationMs',\n 'maxDelayMs',\n 'numberOfTaps',\n 'maxDeltaX',\n 'maxDeltaY',\n 'maxDist',\n 'minPointers',\n ] as const,\n config: {},\n});\n\nexport type FlingGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface FlingGestureHandlerProps\n extends BaseGestureHandlerProps {\n direction?: number;\n numberOfPointers?: number;\n}\n\nexport type FlingGestureHandler = typeof FlingGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const FlingGestureHandler = createHandler<\n FlingGestureHandlerProps,\n FlingGestureHandlerEventPayload\n>({\n name: 'FlingGestureHandler',\n allowedProps: [...baseProps, 'numberOfPointers', 'direction'] as const,\n config: {},\n});\n\nclass ForceTouchFallback extends React.Component {\n static forceTouchAvailable = false;\n componentDidMount() {\n console.warn(\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 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 force: number;\n};\n\nexport interface ForceTouchGestureHandlerProps\n extends BaseGestureHandlerProps {\n minForce?: number;\n maxForce?: number;\n feedbackOnActivation?: boolean;\n}\n\nexport type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {\n forceTouchAvailable: boolean;\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable\n ? createHandler<\n ForceTouchGestureHandlerProps,\n ForceTouchGestureHandlerEventPayload\n >({\n name: 'ForceTouchGestureHandler',\n allowedProps: [\n ...baseProps,\n 'minForce',\n 'maxForce',\n 'feedbackOnActivation',\n ] as const,\n config: {},\n })\n : ForceTouchFallback;\n\n(ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =\n PlatformConstants?.forceTouchAvailable || false;\n\nexport type LongPressGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface LongPressGestureHandlerProps\n extends BaseGestureHandlerProps {\n minDurationMs?: number;\n maxDist?: number;\n}\n\nexport type LongPressGestureHandler = typeof LongPressGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const LongPressGestureHandler = createHandler<\n LongPressGestureHandlerProps,\n LongPressGestureHandlerEventPayload\n>({\n name: 'LongPressGestureHandler',\n allowedProps: [...baseProps, 'minDurationMs', 'maxDist'] as const,\n config: {},\n});\n\nfunction validatePanGestureHandlerProps(props: PanGestureHandlerProps) {\n if (props.minDeltaX && props.activeOffsetX) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`\n );\n }\n if (props.maxDeltaX && props.failOffsetX) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`\n );\n }\n if (props.minDeltaY && props.activeOffsetY) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`\n );\n }\n if (props.maxDeltaY && props.failOffsetY) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`\n );\n }\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\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>;\n\n const res: PanGestureHandlerInternalProps = { ...props };\n if (props.minDeltaX !== undefined) {\n delete res.minDeltaX;\n res.activeOffsetXStart = -props.minDeltaX;\n res.activeOffsetXEnd = props.minDeltaX;\n }\n if (props.maxDeltaX !== undefined) {\n delete res.maxDeltaX;\n res.failOffsetXStart = -props.maxDeltaX;\n res.failOffsetXEnd = props.maxDeltaX;\n }\n if (props.minOffsetX !== undefined) {\n delete res.minOffsetX;\n if (props.minOffsetX < 0) {\n res.activeOffsetXStart = props.minOffsetX;\n } else {\n res.activeOffsetXEnd = props.minOffsetX;\n }\n }\n\n if (props.minDeltaY !== undefined) {\n delete res.minDeltaY;\n res.activeOffsetYStart = -props.minDeltaY;\n res.activeOffsetYEnd = props.minDeltaY;\n }\n if (props.maxDeltaY !== undefined) {\n delete res.maxDeltaY;\n res.failOffsetYStart = -props.maxDeltaY;\n res.failOffsetYEnd = props.maxDeltaY;\n }\n\n if (props.minOffsetY !== undefined) {\n delete res.minOffsetY;\n if (props.minOffsetY < 0) {\n res.activeOffsetYStart = props.minOffsetY;\n } else {\n res.activeOffsetYEnd = props.minOffsetY;\n }\n }\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\nfunction managePanProps(props: PanGestureHandlerProps) {\n if (__DEV__) {\n validatePanGestureHandlerProps(props);\n }\n return transformPanGestureHandlerProps(props);\n}\n\nexport type PanGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n translationX: number;\n translationY: number;\n velocityX: number;\n velocityY: number;\n};\n\nexport interface PanGestureHandlerProps\n extends BaseGestureHandlerProps {\n /** @deprecated use activeOffsetX*/\n minDeltaX?: number;\n /** @deprecated use activeOffsetY*/\n minDeltaY?: number;\n /** @deprecated use failOffsetX*/\n maxDeltaX?: number;\n /** @deprecated use failOffsetY*/\n maxDeltaY?: number;\n /** @deprecated use activeOffsetX*/\n minOffsetX?: number;\n /** @deprecated use failOffsetY*/\n minOffsetY?: number;\n activeOffsetY?: number | number[];\n activeOffsetX?: number | number[];\n failOffsetY?: number | number[];\n failOffsetX?: number | number[];\n minDist?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minPointers?: number;\n maxPointers?: number;\n avgTouches?: boolean;\n enableTrackpadTwoFingerGesture?: boolean;\n}\n\nexport type PanGestureHandler = typeof PanGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const PanGestureHandler = createHandler<\n PanGestureHandlerProps,\n PanGestureHandlerEventPayload\n>({\n name: 'PanGestureHandler',\n allowedProps: [\n ...baseProps,\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 ] as const,\n config: {},\n transformProps: managePanProps,\n customNativeProps: [\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n ],\n});\n\nexport type PinchGestureHandlerEventPayload = {\n scale: number;\n focalX: number;\n focalY: number;\n velocity: number;\n};\n\nexport interface PinchGestureHandlerProps\n extends BaseGestureHandlerProps {}\n\nexport type PinchGestureHandler = typeof PinchGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const PinchGestureHandler = createHandler<\n PinchGestureHandlerProps,\n PinchGestureHandlerEventPayload\n>({\n name: 'PinchGestureHandler',\n allowedProps: baseProps,\n config: {},\n});\n\nexport type RotationGestureHandlerEventPayload = {\n rotation: number;\n anchorX: number;\n anchorY: number;\n velocity: number;\n};\n\nexport interface RotationGestureHandlerProps\n extends BaseGestureHandlerProps {}\n\nexport type RotationGestureHandler = typeof RotationGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const RotationGestureHandler = createHandler<\n RotationGestureHandlerProps,\n RotationGestureHandlerEventPayload\n>({\n name: 'RotationGestureHandler',\n allowedProps: baseProps,\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

(\n Component: React.ComponentType

,\n config: Readonly = {}\n) {\n const ComponentWrapper = React.forwardRef<\n React.ComponentType,\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>();\n const _gestureHandlerRef = useRef>();\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 \n \n \n );\n });\n\n ComponentWrapper.displayName = Component.displayName || 'ComponentWrapper';\n\n return ComponentWrapper;\n}\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/gestureHandlers';\nimport {\n NativeViewGestureHandlerPayload,\n NativeViewGestureHandlerProps,\n} from '../handlers/NativeViewGestureHandler';\n\nexport interface RawButtonProps extends NativeViewGestureHandlerProps {\n exclusive?: boolean;\n // TODO: we should transform props in `createNativeWrapper`\n rippleColor?: any; // it was present in BaseButtonProps before but is used here in code\n}\n\nexport interface BaseButtonProps extends RawButtonProps {\n onPress?: (pointerInside: boolean) => void;\n onActiveStateChange?: (active: boolean) => void;\n style?: StyleProp;\n testID?: string;\n}\n\nexport interface RectButtonProps extends BaseButtonProps {\n underlayColor?: string;\n activeOpacity?: number;\n}\n\nexport interface BorderlessButtonProps extends BaseButtonProps {\n borderless?: boolean;\n activeOpacity?: number;\n}\n\nexport const RawButton = createNativeWrapper(GestureHandlerButton, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: false,\n});\n\nexport class BaseButton extends React.Component {\n private lastActive: boolean;\n\n constructor(props: BaseButtonProps) {\n super(props);\n this.lastActive = false;\n }\n\n private handleEvent = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\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 oldState === State.ACTIVE &&\n state !== State.CANCELLED &&\n this.lastActive &&\n this.props.onPress\n ) {\n this.props.onPress(active);\n }\n\n this.lastActive = active;\n };\n\n // Normally, the parent would execute it's handler first,\n // then forward the event to listeners. However, here our handler\n // is virtually only forwarding events to listeners, so we reverse the order\n // to keep the proper order of the callbacks (from \"raw\" ones to \"processed\").\n private onHandlerStateChange = (\n e: HandlerStateChangeEvent\n ) => {\n this.props.onHandlerStateChange?.(e);\n this.handleEvent(e);\n };\n\n private onGestureEvent = (\n e: GestureEvent\n ) => {\n this.props.onGestureEvent?.(e);\n this.handleEvent(\n e as HandlerStateChangeEvent\n ); // TODO: maybe it is not correct\n };\n\n render() {\n const { rippleColor, ...rest } = this.props;\n\n return (\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 {\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 \n \n {children}\n \n );\n }\n}\n\nexport class BorderlessButton extends React.Component {\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 \n {children}\n \n );\n }\n}\n\nexport { default as PureNativeButton } from './GestureHandlerButton';\n","import * as React from 'react';\nimport { View } from 'react-native';\n\nexport default React.forwardRef((props, ref) => (\n \n));\n","import { TouchableNativeFeedback } from 'react-native';\n\nexport default TouchableNativeFeedback;\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/gestureHandlers';\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;\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 | 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 },\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) => {\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) => {\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 nativeID: this.props.nativeID,\n onLayout: this.props.onLayout,\n hitSlop: this.props.hitSlop,\n };\n\n return (\n \n \n {this.props.children}\n \n \n );\n }\n}\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport GenericTouchable, { GenericTouchableProps } from './GenericTouchable';\n\nconst TouchableWithoutFeedback = React.forwardRef<\n GenericTouchable,\n PropsWithChildren\n>((props, ref) => );\n\nTouchableWithoutFeedback.defaultProps = GenericTouchable.defaultProps;\n\nexport default TouchableWithoutFeedback;\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\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\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: 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 \n {this.props.children ? this.props.children : }\n \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 ;\n }\n\n const child = React.Children.only(\n this.props.children\n ) as React.ReactElement; // 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 \n {this.renderChildren()}\n \n );\n }\n}\n","import * as React from 'react';\nimport {\n DrawerLayoutAndroid as RNDrawerLayoutAndroid,\n FlatList as RNFlatList,\n Switch as RNSwitch,\n TextInput as RNTextInput,\n ScrollView as RNScrollView,\n FlatListProps,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\n\nexport const ScrollView = createNativeWrapper(RNScrollView, {\n disallowInterruption: true,\n});\n\nexport const Switch = createNativeWrapper(RNSwitch, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: true,\n disallowInterruption: true,\n});\nexport const TextInput = createNativeWrapper(RNTextInput);\nexport const DrawerLayoutAndroid = createNativeWrapper(RNDrawerLayoutAndroid, {\n disallowInterruption: true,\n});\n// @ts-ignore -- TODO(TS) to investigate if it's needed\nDrawerLayoutAndroid.positions = RNDrawerLayoutAndroid.positions;\n\nexport const FlatList = React.forwardRef(\n (props: FlatListProps, ref: any) => (\n }\n />\n )\n);\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\n// to 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 PanGestureHandler,\n TapGestureHandler,\n PanGestureHandlerProps,\n GestureEvent,\n PanGestureHandlerEventPayload,\n HandlerStateChangeEvent,\n TapGestureHandlerEventPayload,\n} from '../handlers/gestureHandlers';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\ntype SwipeableExcludes = Exclude<\n keyof PanGestureHandlerProps,\n 'onGestureEvent' | 'onHandlerStateChange'\n>;\n\ninterface SwipeableProps\n extends Pick {\n enableTrackpadTwoFingerGesture?: boolean;\n friction?: number;\n leftThreshold?: number;\n rightThreshold?: number;\n overshootLeft?: boolean;\n overshootRight?: boolean;\n overshootFriction?: number;\n onSwipeableLeftOpen?: () => void;\n onSwipeableRightOpen?: () => void;\n onSwipeableOpen?: () => void;\n onSwipeableClose?: () => void;\n onSwipeableLeftWillOpen?: () => void;\n onSwipeableRightWillOpen?: () => void;\n onSwipeableWillOpen?: () => void;\n onSwipeableWillClose?: () => void;\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1]\n * dragAnimatedValue: [0, +]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderLeftActions?: (\n progressAnimatedValue: Animated.AnimatedInterpolation,\n dragAnimatedValue: Animated.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]\n * dragAnimatedValue: [0, -]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderRightActions?: (\n progressAnimatedValue: Animated.AnimatedInterpolation,\n dragAnimatedValue: Animated.AnimatedInterpolation\n ) => React.ReactNode;\n useNativeAnimations?: boolean;\n animationOptions?: Record;\n containerStyle?: StyleProp;\n childrenContainerStyle?: StyleProp;\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 UNSAFE_componentWillUpdate(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\n private onGestureEvent?: (\n event: GestureEvent\n ) => void;\n private transX?: Animated.AnimatedInterpolation;\n private showLeftAction?: Animated.AnimatedInterpolation | Animated.Value;\n private leftActionTranslate?: Animated.AnimatedInterpolation;\n private showRightAction?: Animated.AnimatedInterpolation | Animated.Value;\n private rightActionTranslate?: Animated.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 {\n overshootLeft = leftWidth > 0,\n 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: [\n -rightWidth - (overshootRight ? 1 : overshootFriction!),\n -rightWidth,\n leftWidth,\n leftWidth + (overshootLeft ? 1 : overshootFriction!),\n ],\n outputRange: [\n -rightWidth - (overshootRight || overshootFriction! > 1 ? 1 : 0),\n -rightWidth,\n leftWidth,\n leftWidth + (overshootLeft || overshootFriction! > 1 ? 1 : 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) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.close();\n }\n };\n\n private onHandlerStateChange = (\n ev: HandlerStateChangeEvent\n ) => {\n if (ev.nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease(ev);\n }\n };\n\n private handleRelease = (\n ev: HandlerStateChangeEvent\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 && this.props.onSwipeableLeftOpen) {\n this.props.onSwipeableLeftOpen();\n } else if (toValue < 0 && this.props.onSwipeableRightOpen) {\n this.props.onSwipeableRightOpen();\n }\n\n if (toValue === 0) {\n this.props.onSwipeableClose?.();\n } else {\n this.props.onSwipeableOpen?.();\n }\n }\n });\n if (toValue > 0 && this.props.onSwipeableLeftWillOpen) {\n this.props.onSwipeableLeftWillOpen();\n } else if (toValue < 0 && this.props.onSwipeableRightWillOpen) {\n this.props.onSwipeableRightWillOpen();\n }\n\n if (toValue === 0) {\n this.props.onSwipeableWillClose?.();\n } else {\n this.props.onSwipeableWillOpen?.();\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 \n {renderLeftActions(this.showLeftAction!, this.transX!)}\n \n this.setState({ leftWidth: nativeEvent.layout.x })\n }\n />\n \n );\n\n const right = renderRightActions && (\n \n {renderRightActions(this.showRightAction!, this.transX!)}\n \n this.setState({ rightOffset: nativeEvent.layout.x })\n }\n />\n \n );\n\n return (\n \n \n {left}\n {right}\n \n \n {children}\n \n \n \n \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\n// on react-native-gesture-handler library which isn't very popular at the\n// moment I decided to keep it here for the time being. It will allow us\n// to move faster and fix issues that may arise in gesture handler library\n// that could be found 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 PanGestureHandler,\n PanGestureHandlerEventPayload,\n TapGestureHandler,\n HandlerStateChangeEvent,\n TapGestureHandlerEventPayload,\n} from '../handlers/gestureHandlers';\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\nexport interface DrawerLayoutProps {\n renderNavigationView: (\n progressAnimatedValue: Animated.Value\n ) => React.ReactNode;\n drawerPosition?: DrawerPosition;\n drawerWidth?: number;\n drawerBackgroundColor?: string;\n drawerLockMode?: DrawerLockMode;\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n onDrawerClose?: () => void;\n onDrawerOpen?: () => void;\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n useNativeAnimations?: boolean;\n\n drawerType?: DrawerType;\n edgeWidth?: number;\n minSwipeDistance?: number;\n hideStatusBar?: boolean;\n statusBarAnimation?: StatusBarAnimation;\n overlayColor?: string;\n contentContainerStyle?: StyleProp;\n drawerContainerStyle?: StyleProp;\n enableTrackpadTwoFingerGesture?: boolean;\n onDrawerSlide?: (position: number) => void;\n onGestureRef?: (ref: PanGestureHandler) => void;\n}\n\nexport type DrawerLayoutState = {\n dragX: Animated.Value;\n touchX: Animated.Value;\n drawerTranslation: Animated.Value;\n containerWidth: number;\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 };\n\n this.updateAnimatedEvent(props, this.state);\n }\n\n UNSAFE_componentWillUpdate(\n props: DrawerLayoutProps,\n state: DrawerLayoutState\n ) {\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\n private openValue?: Animated.AnimatedInterpolation;\n private onGestureEvent?: (\n event: GestureEvent\n ) => void;\n private accessibilityIsModalView = React.createRef();\n private pointerEventsView = React.createRef();\n private panGestureHandler = React.createRef();\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.\n // In order to handle right-side drawer the only thing we need to\n // do is to reverse events coming from gesture handler in a way they\n // emulate left-side drawer gestures. E.g. dragX is simply -dragX, and\n // touchX is calulcated by subtracing real touchX from the width of the\n // container (such that when touch happens at the right edge the value\n // 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 start position\n // of the gesture. Then we use that value to calculate how much we need to subtract from\n // the dragX. If the gesture started on the greyed out area we take the distance from the\n // edge of the drawer to the start position. Otherwise we don't subtract at all and the\n // drawer be 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\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) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease({ nativeEvent });\n } else if (nativeEvent.state === State.ACTIVE) {\n this.emitStateChanged(DRAGGING, false);\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) => {\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) => {\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 -1 otherwise\n // e.g. when drawer is on the left and is closed we expect left to right gesture, thus\n // 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\n // than the container size by the value of SLOP. This will make it only\n // activate 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 animation\n // because it takes one frame of a roundtrip to pass RELEASE event from\n // native driver to JS before we can start animating. Without it, it is more\n // 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 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 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 );\n\n // We need to force the update, otherwise the overlay is not rerendered and 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(undefined, 0, options.velocity ? options.velocity : 0);\n\n // We need to force the update, otherwise the overlay is not rerendered and it would be still clickable\n this.forceUpdate();\n };\n\n private renderOverlay = () => {\n /* Overlay styles */\n invariant(this.openValue, 'should be set');\n const overlayOpacity = this.openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n });\n const dynamicOverlayStyles = {\n opacity: overlayOpacity,\n backgroundColor: this.props.overlayColor,\n };\n\n return (\n \n \n \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 according\n // 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 | Animated.AnimatedInterpolation = 0;\n if (drawerSlide) {\n const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp',\n });\n }\n const drawerStyles: {\n transform: { translateX: number | Animated.AnimatedInterpolation }[];\n flexDirection: 'row-reverse' | 'row';\n } = {\n transform: [{ translateX: drawerTranslateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n\n return (\n \n \n {typeof this.props.children === 'function'\n ? this.props.children(this.openValue)\n : this.props.children}\n {this.renderOverlay()}\n \n \n \n {this.props.renderNavigationView(this.openValue as Animated.Value)}\n \n \n \n );\n };\n\n private setPanGestureRef = (ref: PanGestureHandler) => {\n // TODO(TS): make sure it is OK\n // taken from https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842\n (this\n .panGestureHandler as React.MutableRefObject).current = ref;\n this.props.onGestureRef?.(ref);\n };\n\n render() {\n const {\n drawerPosition,\n drawerLockMode,\n edgeWidth,\n 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 -1 otherwise\n // e.g. when drawer is on the left and is closed we expect left to right gesture, thus\n // 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\n // than the container size by the value of SLOP. This will make it only\n // activate 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 \n {this.renderDrawer()}\n \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","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","var 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\nexport default memoizeOne;\n","// @flow\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\n\nconst hasNativePerformanceNow =\n typeof performance === 'object' && typeof performance.now === 'function';\n\nconst now = hasNativePerformanceNow\n ? () => performance.now()\n : () => Date.now();\n\nexport type TimeoutID = {|\n id: AnimationFrameID,\n|};\n\nexport function cancelTimeout(timeoutID: TimeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\n\nexport function requestTimeout(callback: Function, delay: number): TimeoutID {\n const start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n const timeoutID: TimeoutID = {\n id: requestAnimationFrame(tick),\n };\n\n return timeoutID;\n}\n","// @flow\n\nlet size: number = -1;\n\n// This utility copied from \"dom-helpers\" package.\nexport function getScrollbarSize(recalculate?: boolean = false): number {\n if (size === -1 || recalculate) {\n const div = document.createElement('div');\n const style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n\n ((document.body: any): HTMLBodyElement).appendChild(div);\n\n size = div.offsetWidth - div.clientWidth;\n\n ((document.body: any): HTMLBodyElement).removeChild(div);\n }\n\n return size;\n}\n\nexport type RTLOffsetType =\n | 'negative'\n | 'positive-descending'\n | 'positive-ascending';\n\nlet cachedRTLResult: RTLOffsetType | null = null;\n\n// TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\nexport function getRTLOffsetType(recalculate?: boolean = false): RTLOffsetType {\n if (cachedRTLResult === null || recalculate) {\n const outerDiv = document.createElement('div');\n const outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n\n const innerDiv = document.createElement('div');\n const innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n\n outerDiv.appendChild(innerDiv);\n\n ((document.body: any): HTMLBodyElement).appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n ((document.body: any): HTMLBodyElement).removeChild(outerDiv);\n\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n","// @flow\n\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport { cancelTimeout, requestTimeout } from './timer';\nimport { getScrollbarSize, getRTLOffsetType } from './domHelpers';\n\nimport type { TimeoutID } from './timer';\n\ntype Direction = 'ltr' | 'rtl';\nexport type ScrollToAlign = 'auto' | 'smart' | 'center' | 'start' | 'end';\n\ntype itemSize = number | ((index: number) => number);\n\ntype RenderComponentProps = {|\n columnIndex: number,\n data: T,\n isScrolling?: boolean,\n rowIndex: number,\n style: Object,\n|};\nexport type RenderComponent = React$ComponentType<\n $Shape>\n>;\n\ntype ScrollDirection = 'forward' | 'backward';\n\ntype OnItemsRenderedCallback = ({\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number,\n}) => void;\ntype OnScrollCallback = ({\n horizontalScrollDirection: ScrollDirection,\n scrollLeft: number,\n scrollTop: number,\n scrollUpdateWasRequested: boolean,\n verticalScrollDirection: ScrollDirection,\n}) => void;\n\ntype ScrollEvent = SyntheticEvent;\ntype ItemStyleCache = { [key: string]: Object };\n\ntype OuterProps = {|\n children: React$Node,\n className: string | void,\n onScroll: ScrollEvent => void,\n style: {\n [string]: mixed,\n },\n|};\n\ntype InnerProps = {|\n children: React$Node,\n style: {\n [string]: mixed,\n },\n|};\n\nexport type Props = {|\n children: RenderComponent,\n className?: string,\n columnCount: number,\n columnWidth: itemSize,\n direction: Direction,\n height: number,\n initialScrollLeft?: number,\n initialScrollTop?: number,\n innerRef?: any,\n innerElementType?: string | React$AbstractComponent,\n innerTagName?: string, // deprecated\n itemData: T,\n itemKey?: (params: {|\n columnIndex: number,\n data: T,\n rowIndex: number,\n |}) => any,\n onItemsRendered?: OnItemsRenderedCallback,\n onScroll?: OnScrollCallback,\n outerRef?: any,\n outerElementType?: string | React$AbstractComponent,\n outerTagName?: string, // deprecated\n overscanColumnCount?: number,\n overscanColumnsCount?: number, // deprecated\n overscanCount?: number, // deprecated\n overscanRowCount?: number,\n overscanRowsCount?: number, // deprecated\n rowCount: number,\n rowHeight: itemSize,\n style?: Object,\n useIsScrolling: boolean,\n width: number,\n|};\n\ntype State = {|\n instance: any,\n isScrolling: boolean,\n horizontalScrollDirection: ScrollDirection,\n scrollLeft: number,\n scrollTop: number,\n scrollUpdateWasRequested: boolean,\n verticalScrollDirection: ScrollDirection,\n|};\n\ntype getItemOffset = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype getItemSize = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype getEstimatedTotalSize = (props: Props, instanceProps: any) => number;\ntype GetOffsetForItemAndAlignment = (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: any,\n scrollbarSize: number\n) => number;\ntype GetStartIndexForOffset = (\n props: Props,\n offset: number,\n instanceProps: any\n) => number;\ntype GetStopIndexForStartIndex = (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype InitInstanceProps = (props: Props, instance: any) => any;\ntype ValidateProps = (props: Props) => void;\n\nconst IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nconst defaultItemKey = ({ columnIndex, data, rowIndex }) =>\n `${rowIndex}:${columnIndex}`;\n\n// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nlet devWarningsOverscanCount = null;\nlet devWarningsOverscanRowsColumnsCount = null;\nlet devWarningsTagName = null;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount = new WeakSet();\n devWarningsOverscanRowsColumnsCount = new WeakSet();\n devWarningsTagName = new WeakSet();\n }\n}\n\nexport default function createGridComponent({\n getColumnOffset,\n getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex,\n getColumnWidth,\n getEstimatedTotalHeight,\n getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment,\n getRowHeight,\n getRowOffset,\n getRowStartIndexForOffset,\n getRowStopIndexForStartIndex,\n initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange,\n validateProps,\n}: {|\n getColumnOffset: getItemOffset,\n getColumnStartIndexForOffset: GetStartIndexForOffset,\n getColumnStopIndexForStartIndex: GetStopIndexForStartIndex,\n getColumnWidth: getItemSize,\n getEstimatedTotalHeight: getEstimatedTotalSize,\n getEstimatedTotalWidth: getEstimatedTotalSize,\n getOffsetForColumnAndAlignment: GetOffsetForItemAndAlignment,\n getOffsetForRowAndAlignment: GetOffsetForItemAndAlignment,\n getRowOffset: getItemOffset,\n getRowHeight: getItemSize,\n getRowStartIndexForOffset: GetStartIndexForOffset,\n getRowStopIndexForStartIndex: GetStopIndexForStartIndex,\n initInstanceProps: InitInstanceProps,\n shouldResetStyleCacheOnItemSizeChange: boolean,\n validateProps: ValidateProps,\n|}) {\n return class Grid extends PureComponent, State> {\n _instanceProps: any = initInstanceProps(this.props, this);\n _resetIsScrollingTimeoutId: TimeoutID | null = null;\n _outerRef: ?HTMLDivElement;\n\n static defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false,\n };\n\n state: State = {\n instance: this,\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft:\n typeof this.props.initialScrollLeft === 'number'\n ? this.props.initialScrollLeft\n : 0,\n scrollTop:\n typeof this.props.initialScrollTop === 'number'\n ? this.props.initialScrollTop\n : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward',\n };\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n static getDerivedStateFromProps(\n nextProps: Props,\n prevState: State\n ): $Shape | null {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n }\n\n scrollTo({\n scrollLeft,\n scrollTop,\n }: {\n scrollLeft: number,\n scrollTop: number,\n }): void {\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(prevState => {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (\n prevState.scrollLeft === scrollLeft &&\n prevState.scrollTop === scrollTop\n ) {\n return null;\n }\n\n return {\n horizontalScrollDirection:\n prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection:\n prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n };\n }, this._resetIsScrollingDebounced);\n }\n\n scrollToItem({\n align = 'auto',\n columnIndex,\n rowIndex,\n }: {\n align: ScrollToAlign,\n columnIndex?: number,\n rowIndex?: number,\n }): void {\n const { columnCount, height, rowCount, width } = this.props;\n const { scrollLeft, scrollTop } = this.state;\n const scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n const estimatedTotalHeight = getEstimatedTotalHeight(\n this.props,\n this._instanceProps\n );\n const estimatedTotalWidth = getEstimatedTotalWidth(\n this.props,\n this._instanceProps\n );\n\n // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n const horizontalScrollbarSize =\n estimatedTotalWidth > width ? scrollbarSize : 0;\n const verticalScrollbarSize =\n estimatedTotalHeight > height ? scrollbarSize : 0;\n\n this.scrollTo({\n scrollLeft:\n columnIndex !== undefined\n ? getOffsetForColumnAndAlignment(\n this.props,\n columnIndex,\n align,\n scrollLeft,\n this._instanceProps,\n verticalScrollbarSize\n )\n : scrollLeft,\n scrollTop:\n rowIndex !== undefined\n ? getOffsetForRowAndAlignment(\n this.props,\n rowIndex,\n align,\n scrollTop,\n this._instanceProps,\n horizontalScrollbarSize\n )\n : scrollTop,\n });\n }\n\n componentDidMount() {\n const { initialScrollLeft, initialScrollTop } = this.props;\n\n if (this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentDidUpdate() {\n const { direction } = this.props;\n const { scrollLeft, scrollTop, scrollUpdateWasRequested } = this.state;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n default:\n const { clientWidth, scrollWidth } = outerRef;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n }\n\n componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n }\n\n render() {\n const {\n children,\n className,\n columnCount,\n direction,\n height,\n innerRef,\n innerElementType,\n innerTagName,\n itemData,\n itemKey = defaultItemKey,\n outerElementType,\n outerTagName,\n rowCount,\n style,\n useIsScrolling,\n width,\n } = this.props;\n const { isScrolling } = this.state;\n\n const [\n columnStartIndex,\n columnStopIndex,\n ] = this._getHorizontalRangeToRender();\n const [rowStartIndex, rowStopIndex] = this._getVerticalRangeToRender();\n\n const items = [];\n if (columnCount > 0 && rowCount) {\n for (\n let rowIndex = rowStartIndex;\n rowIndex <= rowStopIndex;\n rowIndex++\n ) {\n for (\n let columnIndex = columnStartIndex;\n columnIndex <= columnStopIndex;\n columnIndex++\n ) {\n items.push(\n createElement(children, {\n columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({ columnIndex, data: itemData, rowIndex }),\n rowIndex,\n style: this._getItemStyle(rowIndex, columnIndex),\n })\n );\n }\n }\n }\n\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalHeight = getEstimatedTotalHeight(\n this.props,\n this._instanceProps\n );\n const estimatedTotalWidth = getEstimatedTotalWidth(\n this.props,\n this._instanceProps\n );\n\n return createElement(\n outerElementType || outerTagName || 'div',\n {\n className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: {\n position: 'relative',\n height,\n width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction,\n ...style,\n },\n },\n createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth,\n },\n })\n );\n }\n\n _callOnItemsRendered: (\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number\n ) => void;\n _callOnItemsRendered = memoizeOne(\n (\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number\n ) =>\n ((this.props.onItemsRendered: any): OnItemsRenderedCallback)({\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n })\n );\n\n _callOnScroll: (\n scrollLeft: number,\n scrollTop: number,\n horizontalScrollDirection: ScrollDirection,\n verticalScrollDirection: ScrollDirection,\n scrollUpdateWasRequested: boolean\n ) => void;\n _callOnScroll = memoizeOne(\n (\n scrollLeft: number,\n scrollTop: number,\n horizontalScrollDirection: ScrollDirection,\n verticalScrollDirection: ScrollDirection,\n scrollUpdateWasRequested: boolean\n ) =>\n ((this.props.onScroll: any): OnScrollCallback)({\n horizontalScrollDirection,\n scrollLeft,\n scrollTop,\n verticalScrollDirection,\n scrollUpdateWasRequested,\n })\n );\n\n _callPropsCallbacks() {\n const { columnCount, onItemsRendered, onScroll, rowCount } = this.props;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n const [\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n ] = this._getHorizontalRangeToRender();\n const [\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n ] = this._getVerticalRangeToRender();\n this._callOnItemsRendered(\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex\n );\n }\n }\n\n if (typeof onScroll === 'function') {\n const {\n horizontalScrollDirection,\n scrollLeft,\n scrollTop,\n scrollUpdateWasRequested,\n verticalScrollDirection,\n } = this.state;\n this._callOnScroll(\n scrollLeft,\n scrollTop,\n horizontalScrollDirection,\n verticalScrollDirection,\n scrollUpdateWasRequested\n );\n }\n }\n\n // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n _getItemStyle: (rowIndex: number, columnIndex: number) => Object;\n _getItemStyle = (rowIndex: number, columnIndex: number): Object => {\n const { columnWidth, direction, rowHeight } = this.props;\n\n const itemStyleCache = this._getItemStyleCache(\n shouldResetStyleCacheOnItemSizeChange && columnWidth,\n shouldResetStyleCacheOnItemSizeChange && direction,\n shouldResetStyleCacheOnItemSizeChange && rowHeight\n );\n\n const key = `${rowIndex}:${columnIndex}`;\n\n let style;\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n const offset = getColumnOffset(\n this.props,\n columnIndex,\n this._instanceProps\n );\n const isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offset,\n right: isRtl ? offset : undefined,\n top: getRowOffset(this.props, rowIndex, this._instanceProps),\n height: getRowHeight(this.props, rowIndex, this._instanceProps),\n width: getColumnWidth(this.props, columnIndex, this._instanceProps),\n };\n }\n\n return style;\n };\n\n _getItemStyleCache: (_: any, __: any, ___: any) => ItemStyleCache;\n _getItemStyleCache = memoizeOne((_: any, __: any, ___: any) => ({}));\n\n _getHorizontalRangeToRender(): [number, number, number, number] {\n const {\n columnCount,\n overscanColumnCount,\n overscanColumnsCount,\n overscanCount,\n rowCount,\n } = this.props;\n const { horizontalScrollDirection, isScrolling, scrollLeft } = this.state;\n\n const overscanCountResolved: number =\n overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getColumnStartIndexForOffset(\n this.props,\n scrollLeft,\n this._instanceProps\n );\n const stopIndex = getColumnStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollLeft,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || horizontalScrollDirection === 'backward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n const overscanForward =\n !isScrolling || horizontalScrollDirection === 'forward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _getVerticalRangeToRender(): [number, number, number, number] {\n const {\n columnCount,\n overscanCount,\n overscanRowCount,\n overscanRowsCount,\n rowCount,\n } = this.props;\n const { isScrolling, verticalScrollDirection, scrollTop } = this.state;\n\n const overscanCountResolved: number =\n overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getRowStartIndexForOffset(\n this.props,\n scrollTop,\n this._instanceProps\n );\n const stopIndex = getRowStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollTop,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || verticalScrollDirection === 'backward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n const overscanForward =\n !isScrolling || verticalScrollDirection === 'forward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _onScroll = (event: ScrollEvent): void => {\n const {\n clientHeight,\n clientWidth,\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth,\n } = event.currentTarget;\n this.setState(prevState => {\n if (\n prevState.scrollLeft === scrollLeft &&\n prevState.scrollTop === scrollTop\n ) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n const { direction } = this.props;\n\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n let calculatedScrollLeft = scrollLeft;\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n calculatedScrollLeft = Math.max(\n 0,\n Math.min(calculatedScrollLeft, scrollWidth - clientWidth)\n );\n const calculatedScrollTop = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n );\n\n return {\n isScrolling: true,\n horizontalScrollDirection:\n prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection:\n prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _outerRefSetter = (ref: any): void => {\n const { outerRef } = this.props;\n\n this._outerRef = ((ref: any): HTMLDivElement);\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (\n outerRef != null &&\n typeof outerRef === 'object' &&\n outerRef.hasOwnProperty('current')\n ) {\n outerRef.current = ref;\n }\n };\n\n _resetIsScrollingDebounced = () => {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n\n this._resetIsScrollingTimeoutId = requestTimeout(\n this._resetIsScrolling,\n IS_SCROLLING_DEBOUNCE_INTERVAL\n );\n };\n\n _resetIsScrolling = () => {\n this._resetIsScrollingTimeoutId = null;\n\n this.setState({ isScrolling: false }, () => {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n this._getItemStyleCache(-1);\n });\n };\n };\n}\n\nconst validateSharedProps = (\n {\n children,\n direction,\n height,\n innerTagName,\n outerTagName,\n overscanColumnsCount,\n overscanCount,\n overscanRowsCount,\n width,\n }: Props,\n { instance }: State\n): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn(\n 'The overscanCount prop has been deprecated. ' +\n 'Please use the overscanColumnCount and overscanRowCount props instead.'\n );\n }\n }\n\n if (\n typeof overscanColumnsCount === 'number' ||\n typeof overscanRowsCount === 'number'\n ) {\n if (\n devWarningsOverscanRowsColumnsCount &&\n !devWarningsOverscanRowsColumnsCount.has(instance)\n ) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn(\n 'The overscanColumnsCount and overscanRowsCount props have been deprecated. ' +\n 'Please use the overscanColumnCount and overscanRowCount props instead.'\n );\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn(\n 'The innerTagName and outerTagName props have been deprecated. ' +\n 'Please use the innerElementType and outerElementType props instead.'\n );\n }\n }\n\n if (children == null) {\n throw Error(\n 'An invalid \"children\" prop has been specified. ' +\n 'Value should be a React component. ' +\n `\"${children === null ? 'null' : typeof children}\" was specified.`\n );\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"direction\" prop has been specified. ' +\n 'Value should be either \"ltr\" or \"rtl\". ' +\n `\"${direction}\" was specified.`\n );\n }\n\n if (typeof width !== 'number') {\n throw Error(\n 'An invalid \"width\" prop has been specified. ' +\n 'Grids must specify a number for width. ' +\n `\"${width === null ? 'null' : typeof width}\" was specified.`\n );\n }\n\n if (typeof height !== 'number') {\n throw Error(\n 'An invalid \"height\" prop has been specified. ' +\n 'Grids must specify a number for height. ' +\n `\"${height === null ? 'null' : typeof height}\" was specified.`\n );\n }\n }\n};\n","// @flow\n\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport { cancelTimeout, requestTimeout } from './timer';\nimport { getScrollbarSize, getRTLOffsetType } from './domHelpers';\n\nimport type { TimeoutID } from './timer';\n\nexport type ScrollToAlign = 'auto' | 'smart' | 'center' | 'start' | 'end';\n\ntype itemSize = number | ((index: number) => number);\n// TODO Deprecate directions \"horizontal\" and \"vertical\"\ntype Direction = 'ltr' | 'rtl' | 'horizontal' | 'vertical';\ntype Layout = 'horizontal' | 'vertical';\n\ntype RenderComponentProps = {|\n data: T,\n index: number,\n isScrolling?: boolean,\n style: Object,\n|};\ntype RenderComponent = React$ComponentType<$Shape>>;\n\ntype ScrollDirection = 'forward' | 'backward';\n\ntype onItemsRenderedCallback = ({\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number,\n}) => void;\ntype onScrollCallback = ({\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean,\n}) => void;\n\ntype ScrollEvent = SyntheticEvent;\ntype ItemStyleCache = { [index: number]: Object };\n\ntype OuterProps = {|\n children: React$Node,\n className: string | void,\n onScroll: ScrollEvent => void,\n style: {\n [string]: mixed,\n },\n|};\n\ntype InnerProps = {|\n children: React$Node,\n style: {\n [string]: mixed,\n },\n|};\n\nexport type Props = {|\n children: RenderComponent,\n className?: string,\n direction: Direction,\n height: number | string,\n initialScrollOffset?: number,\n innerRef?: any,\n innerElementType?: string | React$AbstractComponent,\n innerTagName?: string, // deprecated\n itemCount: number,\n itemData: T,\n itemKey?: (index: number, data: T) => any,\n itemSize: itemSize,\n layout: Layout,\n onItemsRendered?: onItemsRenderedCallback,\n onScroll?: onScrollCallback,\n outerRef?: any,\n outerElementType?: string | React$AbstractComponent,\n outerTagName?: string, // deprecated\n overscanCount: number,\n style?: Object,\n useIsScrolling: boolean,\n width: number | string,\n|};\n\ntype State = {|\n instance: any,\n isScrolling: boolean,\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean,\n|};\n\ntype GetItemOffset = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype GetItemSize = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype GetEstimatedTotalSize = (props: Props, instanceProps: any) => number;\ntype GetOffsetForIndexAndAlignment = (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype GetStartIndexForOffset = (\n props: Props,\n offset: number,\n instanceProps: any\n) => number;\ntype GetStopIndexForStartIndex = (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype InitInstanceProps = (props: Props, instance: any) => any;\ntype ValidateProps = (props: Props) => void;\n\nconst IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nconst defaultItemKey = (index: number, data: any) => index;\n\n// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nlet devWarningsDirection = null;\nlet devWarningsTagName = null;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = new WeakSet();\n devWarningsTagName = new WeakSet();\n }\n}\n\nexport default function createListComponent({\n getItemOffset,\n getEstimatedTotalSize,\n getItemSize,\n getOffsetForIndexAndAlignment,\n getStartIndexForOffset,\n getStopIndexForStartIndex,\n initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange,\n validateProps,\n}: {|\n getItemOffset: GetItemOffset,\n getEstimatedTotalSize: GetEstimatedTotalSize,\n getItemSize: GetItemSize,\n getOffsetForIndexAndAlignment: GetOffsetForIndexAndAlignment,\n getStartIndexForOffset: GetStartIndexForOffset,\n getStopIndexForStartIndex: GetStopIndexForStartIndex,\n initInstanceProps: InitInstanceProps,\n shouldResetStyleCacheOnItemSizeChange: boolean,\n validateProps: ValidateProps,\n|}) {\n return class List extends PureComponent, State> {\n _instanceProps: any = initInstanceProps(this.props, this);\n _outerRef: ?HTMLDivElement;\n _resetIsScrollingTimeoutId: TimeoutID | null = null;\n\n static defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false,\n };\n\n state: State = {\n instance: this,\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset:\n typeof this.props.initialScrollOffset === 'number'\n ? this.props.initialScrollOffset\n : 0,\n scrollUpdateWasRequested: false,\n };\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n static getDerivedStateFromProps(\n nextProps: Props,\n prevState: State\n ): $Shape | null {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n }\n\n scrollTo(scrollOffset: number): void {\n scrollOffset = Math.max(0, scrollOffset);\n\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n return {\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true,\n };\n }, this._resetIsScrollingDebounced);\n }\n\n scrollToItem(index: number, align: ScrollToAlign = 'auto'): void {\n const { itemCount, layout } = this.props;\n const { scrollOffset } = this.state;\n\n index = Math.max(0, Math.min(index, itemCount - 1));\n\n // The scrollbar size should be considered when scrolling an item into view, to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n // This is an edge case for lists; normally they only scroll in the dominant direction.\n let scrollbarSize = 0;\n if (this._outerRef) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (layout === 'vertical') {\n scrollbarSize =\n outerRef.scrollWidth > outerRef.clientWidth\n ? getScrollbarSize()\n : 0;\n } else {\n scrollbarSize =\n outerRef.scrollHeight > outerRef.clientHeight\n ? getScrollbarSize()\n : 0;\n }\n }\n\n this.scrollTo(\n getOffsetForIndexAndAlignment(\n this.props,\n index,\n align,\n scrollOffset,\n this._instanceProps,\n scrollbarSize\n )\n );\n }\n\n componentDidMount() {\n const { direction, initialScrollOffset, layout } = this.props;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n // TODO Deprecate direction \"horizontal\"\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentDidUpdate() {\n const { direction, layout } = this.props;\n const { scrollOffset, scrollUpdateWasRequested } = this.state;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n\n // TODO Deprecate direction \"horizontal\"\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n default:\n const { clientWidth, scrollWidth } = outerRef;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n }\n\n render() {\n const {\n children,\n className,\n direction,\n height,\n innerRef,\n innerElementType,\n innerTagName,\n itemCount,\n itemData,\n itemKey = defaultItemKey,\n layout,\n outerElementType,\n outerTagName,\n style,\n useIsScrolling,\n width,\n } = this.props;\n const { isScrolling } = this.state;\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal =\n direction === 'horizontal' || layout === 'horizontal';\n\n const onScroll = isHorizontal\n ? this._onScrollHorizontal\n : this._onScrollVertical;\n\n const [startIndex, stopIndex] = this._getRangeToRender();\n\n const items = [];\n if (itemCount > 0) {\n for (let index = startIndex; index <= stopIndex; index++) {\n items.push(\n createElement(children, {\n data: itemData,\n key: itemKey(index, itemData),\n index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(index),\n })\n );\n }\n }\n\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalSize = getEstimatedTotalSize(\n this.props,\n this._instanceProps\n );\n\n return createElement(\n outerElementType || outerTagName || 'div',\n {\n className,\n onScroll,\n ref: this._outerRefSetter,\n style: {\n position: 'relative',\n height,\n width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction,\n ...style,\n },\n },\n createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%',\n },\n })\n );\n }\n\n _callOnItemsRendered: (\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number\n ) => void;\n _callOnItemsRendered = memoizeOne(\n (\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number\n ) =>\n ((this.props.onItemsRendered: any): onItemsRenderedCallback)({\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex,\n })\n );\n\n _callOnScroll: (\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean\n ) => void;\n _callOnScroll = memoizeOne(\n (\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean\n ) =>\n ((this.props.onScroll: any): onScrollCallback)({\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n })\n );\n\n _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n const { itemCount } = this.props;\n if (itemCount > 0) {\n const [\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex,\n ] = this._getRangeToRender();\n this._callOnItemsRendered(\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex\n );\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n const {\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n } = this.state;\n this._callOnScroll(\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested\n );\n }\n }\n\n // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n _getItemStyle: (index: number) => Object;\n _getItemStyle = (index: number): Object => {\n const { direction, itemSize, layout } = this.props;\n\n const itemStyleCache = this._getItemStyleCache(\n shouldResetStyleCacheOnItemSizeChange && itemSize,\n shouldResetStyleCacheOnItemSizeChange && layout,\n shouldResetStyleCacheOnItemSizeChange && direction\n );\n\n let style;\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n const offset = getItemOffset(this.props, index, this._instanceProps);\n const size = getItemSize(this.props, index, this._instanceProps);\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal =\n direction === 'horizontal' || layout === 'horizontal';\n\n const isRtl = direction === 'rtl';\n const offsetHorizontal = isHorizontal ? offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%',\n };\n }\n\n return style;\n };\n\n _getItemStyleCache: (_: any, __: any, ___: any) => ItemStyleCache;\n _getItemStyleCache = memoizeOne((_: any, __: any, ___: any) => ({}));\n\n _getRangeToRender(): [number, number, number, number] {\n const { itemCount, overscanCount } = this.props;\n const { isScrolling, scrollDirection, scrollOffset } = this.state;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getStartIndexForOffset(\n this.props,\n scrollOffset,\n this._instanceProps\n );\n const stopIndex = getStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollOffset,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || scrollDirection === 'backward'\n ? Math.max(1, overscanCount)\n : 1;\n const overscanForward =\n !isScrolling || scrollDirection === 'forward'\n ? Math.max(1, overscanCount)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _onScrollHorizontal = (event: ScrollEvent): void => {\n const { clientWidth, scrollLeft, scrollWidth } = event.currentTarget;\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n const { direction } = this.props;\n\n let scrollOffset = scrollLeft;\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n scrollOffset = Math.max(\n 0,\n Math.min(scrollOffset, scrollWidth - clientWidth)\n );\n\n return {\n isScrolling: true,\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _onScrollVertical = (event: ScrollEvent): void => {\n const { clientHeight, scrollHeight, scrollTop } = event.currentTarget;\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n const scrollOffset = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n );\n\n return {\n isScrolling: true,\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _outerRefSetter = (ref: any): void => {\n const { outerRef } = this.props;\n\n this._outerRef = ((ref: any): HTMLDivElement);\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (\n outerRef != null &&\n typeof outerRef === 'object' &&\n outerRef.hasOwnProperty('current')\n ) {\n outerRef.current = ref;\n }\n };\n\n _resetIsScrollingDebounced = () => {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n\n this._resetIsScrollingTimeoutId = requestTimeout(\n this._resetIsScrolling,\n IS_SCROLLING_DEBOUNCE_INTERVAL\n );\n };\n\n _resetIsScrolling = () => {\n this._resetIsScrollingTimeoutId = null;\n\n this.setState({ isScrolling: false }, () => {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n this._getItemStyleCache(-1, null);\n });\n };\n };\n}\n\n// NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nconst validateSharedProps = (\n {\n children,\n direction,\n height,\n layout,\n innerTagName,\n outerTagName,\n width,\n }: Props,\n { instance }: State\n): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn(\n 'The innerTagName and outerTagName props have been deprecated. ' +\n 'Please use the innerElementType and outerElementType props instead.'\n );\n }\n }\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn(\n 'The direction prop should be either \"ltr\" (default) or \"rtl\". ' +\n 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.'\n );\n }\n break;\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"direction\" prop has been specified. ' +\n 'Value should be either \"ltr\" or \"rtl\". ' +\n `\"${direction}\" was specified.`\n );\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"layout\" prop has been specified. ' +\n 'Value should be either \"horizontal\" or \"vertical\". ' +\n `\"${layout}\" was specified.`\n );\n }\n\n if (children == null) {\n throw Error(\n 'An invalid \"children\" prop has been specified. ' +\n 'Value should be a React component. ' +\n `\"${children === null ? 'null' : typeof children}\" was specified.`\n );\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error(\n 'An invalid \"width\" prop has been specified. ' +\n 'Horizontal lists must specify a number for width. ' +\n `\"${width === null ? 'null' : typeof width}\" was specified.`\n );\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error(\n 'An invalid \"height\" prop has been specified. ' +\n 'Vertical lists must specify a number for height. ' +\n `\"${height === null ? 'null' : typeof height}\" was specified.`\n );\n }\n }\n};\n","// @flow\n\nimport createListComponent from './createListComponent';\n\nimport type { Props, ScrollToAlign } from './createListComponent';\n\ntype InstanceProps = any;\n\nconst FixedSizeList = createListComponent({\n getItemOffset: ({ itemSize }: Props, index: number): number =>\n index * ((itemSize: any): number),\n\n getItemSize: ({ itemSize }: Props, index: number): number =>\n ((itemSize: any): number),\n\n getEstimatedTotalSize: ({ itemCount, itemSize }: Props) =>\n ((itemSize: any): number) * itemCount,\n\n getOffsetForIndexAndAlignment: (\n { direction, height, itemCount, itemSize, layout, width }: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: InstanceProps,\n scrollbarSize: number\n ): number => {\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n const size = (((isHorizontal ? width : height): any): number);\n const lastItemOffset = Math.max(\n 0,\n itemCount * ((itemSize: any): number) - size\n );\n const maxOffset = Math.min(\n lastItemOffset,\n index * ((itemSize: any): number)\n );\n const minOffset = Math.max(\n 0,\n index * ((itemSize: any): number) -\n size +\n ((itemSize: any): number) +\n scrollbarSize\n );\n\n if (align === 'smart') {\n if (\n scrollOffset >= minOffset - size &&\n scrollOffset <= maxOffset + size\n ) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n case 'end':\n return minOffset;\n case 'center': {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n const middleOffset = Math.round(\n minOffset + (maxOffset - minOffset) / 2\n );\n if (middleOffset < Math.ceil(size / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset; // near the end\n } else {\n return middleOffset;\n }\n }\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n },\n\n getStartIndexForOffset: (\n { itemCount, itemSize }: Props,\n offset: number\n ): number =>\n Math.max(\n 0,\n Math.min(itemCount - 1, Math.floor(offset / ((itemSize: any): number)))\n ),\n\n getStopIndexForStartIndex: (\n { direction, height, itemCount, itemSize, layout, width }: Props,\n startIndex: number,\n scrollOffset: number\n ): number => {\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n const offset = startIndex * ((itemSize: any): number);\n const size = (((isHorizontal ? width : height): any): number);\n const numVisibleItems = Math.ceil(\n (size + scrollOffset - offset) / ((itemSize: any): number)\n );\n return Math.max(\n 0,\n Math.min(\n itemCount - 1,\n startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive\n )\n );\n },\n\n initInstanceProps(props: Props): any {\n // Noop\n },\n\n shouldResetStyleCacheOnItemSizeChange: true,\n\n validateProps: ({ itemSize }: Props): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'number') {\n throw Error(\n 'An invalid \"itemSize\" prop has been specified. ' +\n 'Value should be a number. ' +\n `\"${itemSize === null ? 'null' : typeof itemSize}\" was specified.`\n );\n }\n }\n },\n});\n\nexport default FixedSizeList;\n","import { nanoid } from 'nanoid/non-secure';\nexport default function createMemoryHistory() {\n let index = 0;\n let items = [];\n\n // Pending callbacks for `history.go(n)`\n // We might modify the callback stored if it was interrupted, so we have a ref to identify it\n const pending = [];\n const interrupt = () => {\n // If another history operation was performed we need to interrupt existing ones\n // This makes sure that calls such as `history.replace` after `history.go` don't happen\n // Since otherwise it won't be correct if something else has changed\n pending.forEach(it => {\n const cb = it.cb;\n it.cb = () => cb(true);\n });\n };\n const history = {\n get index() {\n var _window$history$state;\n // We store an id in the state instead of an index\n // Index could get out of sync with in-memory values if page reloads\n const id = (_window$history$state = window.history.state) === null || _window$history$state === void 0 ? void 0 : _window$history$state.id;\n if (id) {\n const index = items.findIndex(item => item.id === id);\n return index > -1 ? index : 0;\n }\n return 0;\n },\n get(index) {\n return items[index];\n },\n backIndex(_ref) {\n let {\n path\n } = _ref;\n // We need to find the index from the element before current to get closest path to go back to\n for (let i = index - 1; i >= 0; i--) {\n const item = items[i];\n if (item.path === path) {\n return i;\n }\n }\n return -1;\n },\n push(_ref2) {\n let {\n path,\n state\n } = _ref2;\n interrupt();\n const id = nanoid();\n\n // When a new entry is pushed, all the existing entries after index will be inaccessible\n // So we remove any existing entries after the current index to clean them up\n items = items.slice(0, index + 1);\n items.push({\n path,\n state,\n id\n });\n index = items.length - 1;\n\n // We pass empty string for title because it's ignored in all browsers except safari\n // We don't store state object in history.state because:\n // - browsers have limits on how big it can be, and we don't control the size\n // - while not recommended, there could be non-serializable data in state\n window.history.pushState({\n id\n }, '', path);\n },\n replace(_ref3) {\n var _window$history$state2;\n let {\n path,\n state\n } = _ref3;\n interrupt();\n const id = ((_window$history$state2 = window.history.state) === null || _window$history$state2 === void 0 ? void 0 : _window$history$state2.id) ?? nanoid();\n\n // Need to keep the hash part of the path if there was no previous history entry\n // or the previous history entry had the same path\n let pathWithHash = path;\n if (!items.length || items.findIndex(item => item.id === id) < 0) {\n // There are two scenarios for creating an array with only one history record:\n // - When loaded id not found in the items array, this function by default will replace\n // the first item. We need to keep only the new updated object, otherwise it will break\n // the page when navigating forward in history.\n // - This is the first time any state modifications are done\n // So we need to push the entry as there's nothing to replace\n pathWithHash = pathWithHash + location.hash;\n items = [{\n path: pathWithHash,\n state,\n id\n }];\n index = 0;\n } else {\n if (items[index].path === path) {\n pathWithHash = pathWithHash + location.hash;\n }\n items[index] = {\n path,\n state,\n id\n };\n }\n window.history.replaceState({\n id\n }, '', pathWithHash);\n },\n // `history.go(n)` is asynchronous, there are couple of things to keep in mind:\n // - it won't do anything if we can't go `n` steps, the `popstate` event won't fire.\n // - each `history.go(n)` call will trigger a separate `popstate` event with correct location.\n // - the `popstate` event fires before the next frame after calling `history.go(n)`.\n // This method differs from `history.go(n)` in the sense that it'll go back as many steps it can.\n go(n) {\n interrupt();\n\n // To guard against unexpected navigation out of the app we will assume that browser history is only as deep as the length of our memory\n // history. If we don't have an item to navigate to then update our index and navigate as far as we can without taking the user out of the app.\n const nextIndex = index + n;\n const lastItemIndex = items.length - 1;\n if (n < 0 && !items[nextIndex]) {\n // Attempted to navigate beyond the first index. Negating the current index will align the browser history with the first item.\n n = -index;\n index = 0;\n } else if (n > 0 && nextIndex > lastItemIndex) {\n // Attempted to navigate past the last index. Calculate how many indices away from the last index and go there.\n n = lastItemIndex - index;\n index = lastItemIndex;\n } else {\n index = nextIndex;\n }\n if (n === 0) {\n return;\n }\n\n // When we call `history.go`, `popstate` will fire when there's history to go back to\n // So we need to somehow handle following cases:\n // - There's history to go back, `history.go` is called, and `popstate` fires\n // - `history.go` is called multiple times, we need to resolve on respective `popstate`\n // - No history to go back, but `history.go` was called, browser has no API to detect it\n return new Promise((resolve, reject) => {\n const done = interrupted => {\n clearTimeout(timer);\n if (interrupted) {\n reject(new Error('History was changed during navigation.'));\n return;\n }\n\n // There seems to be a bug in Chrome regarding updating the title\n // If we set a title just before calling `history.go`, the title gets lost\n // However the value of `document.title` is still what we set it to\n // It's just not displayed in the tab bar\n // To update the tab bar, we need to reset the title to something else first (e.g. '')\n // And set the title to what it was before so it gets applied\n // It won't work without setting it to empty string coz otherwise title isn't changing\n // Which means that the browser won't do anything after setting the title\n const {\n title\n } = window.document;\n window.document.title = '';\n window.document.title = title;\n resolve();\n };\n pending.push({\n ref: done,\n cb: done\n });\n\n // If navigation didn't happen within 100ms, assume that it won't happen\n // This may not be accurate, but hopefully it won't take so much time\n // In Chrome, navigation seems to happen instantly in next microtask\n // But on Firefox, it seems to take much longer, around 50ms from our testing\n // We're using a hacky timeout since there doesn't seem to be way to know for sure\n const timer = setTimeout(() => {\n const index = pending.findIndex(it => it.ref === done);\n if (index > -1) {\n pending[index].cb();\n pending.splice(index, 1);\n }\n }, 100);\n const onPopState = () => {\n var _window$history$state3;\n const id = (_window$history$state3 = window.history.state) === null || _window$history$state3 === void 0 ? void 0 : _window$history$state3.id;\n const currentIndex = items.findIndex(item => item.id === id);\n\n // Fix createMemoryHistory.index variable's value\n // as it may go out of sync when navigating in the browser.\n index = Math.max(currentIndex, 0);\n const last = pending.pop();\n window.removeEventListener('popstate', onPopState);\n last === null || last === void 0 ? void 0 : last.cb();\n };\n window.addEventListener('popstate', onPopState);\n window.history.go(n);\n });\n },\n // The `popstate` event is triggered when history changes, except `pushState` and `replaceState`\n // If we call `history.go(n)` ourselves, we don't want it to trigger the listener\n // Here we normalize it so that only external changes (e.g. user pressing back/forward) trigger the listener\n listen(listener) {\n const onPopState = () => {\n if (pending.length) {\n // This was triggered by `history.go(n)`, we shouldn't call the listener\n return;\n }\n listener();\n };\n window.addEventListener('popstate', onPopState);\n return () => window.removeEventListener('popstate', onPopState);\n }\n };\n return history;\n}\n//# sourceMappingURL=createMemoryHistory.js.map","import * as React from 'react';\nconst ServerContext = /*#__PURE__*/React.createContext(undefined);\nexport default ServerContext;\n//# sourceMappingURL=ServerContext.js.map","import { findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault } from '@react-navigation/core';\nimport isEqual from 'fast-deep-equal';\nimport * as React from 'react';\nimport createMemoryHistory from './createMemoryHistory';\nimport ServerContext from './ServerContext';\n/**\n * Find the matching navigation state that changed between 2 navigation states\n * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state\n */\nconst findMatchingState = (a, b) => {\n if (a === undefined || b === undefined || a.key !== b.key) {\n return [undefined, undefined];\n }\n\n // Tab and drawer will have `history` property, but stack will have history in `routes`\n const aHistoryLength = a.history ? a.history.length : a.routes.length;\n const bHistoryLength = b.history ? b.history.length : b.routes.length;\n const aRoute = a.routes[a.index];\n const bRoute = b.routes[b.index];\n const aChildState = aRoute.state;\n const bChildState = bRoute.state;\n\n // Stop here if this is the state object that changed:\n // - history length is different\n // - focused routes are different\n // - one of them doesn't have child state\n // - child state keys are different\n if (aHistoryLength !== bHistoryLength || aRoute.key !== bRoute.key || aChildState === undefined || bChildState === undefined || aChildState.key !== bChildState.key) {\n return [a, b];\n }\n return findMatchingState(aChildState, bChildState);\n};\n\n/**\n * Run async function in series as it's called.\n */\nexport const series = cb => {\n let queue = Promise.resolve();\n const callback = () => {\n queue = queue.then(cb);\n };\n return callback;\n};\nlet linkingHandlers = [];\nexport default function useLinking(ref, _ref) {\n let {\n independent,\n enabled = true,\n config,\n getStateFromPath = getStateFromPathDefault,\n getPathFromState = getPathFromStateDefault,\n getActionFromState = getActionFromStateDefault\n } = _ref;\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return undefined;\n }\n if (independent) {\n return undefined;\n }\n if (enabled !== false && linkingHandlers.length) {\n console.error(['Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:', \"- You don't have multiple NavigationContainers in the app each with 'linking' enabled\", '- Only a single instance of the root component is rendered'].join('\\n').trim());\n }\n const handler = Symbol();\n if (enabled !== false) {\n linkingHandlers.push(handler);\n }\n return () => {\n const index = linkingHandlers.indexOf(handler);\n if (index > -1) {\n linkingHandlers.splice(index, 1);\n }\n };\n }, [enabled, independent]);\n const [history] = React.useState(createMemoryHistory);\n\n // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners\n // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`\n // Not re-creating `getInitialState` is important coz it makes it easier for the user to use in an effect\n const enabledRef = React.useRef(enabled);\n const configRef = React.useRef(config);\n const getStateFromPathRef = React.useRef(getStateFromPath);\n const getPathFromStateRef = React.useRef(getPathFromState);\n const getActionFromStateRef = React.useRef(getActionFromState);\n React.useEffect(() => {\n enabledRef.current = enabled;\n configRef.current = config;\n getStateFromPathRef.current = getStateFromPath;\n getPathFromStateRef.current = getPathFromState;\n getActionFromStateRef.current = getActionFromState;\n });\n const server = React.useContext(ServerContext);\n const getInitialState = React.useCallback(() => {\n let value;\n if (enabledRef.current) {\n const location = (server === null || server === void 0 ? void 0 : server.location) ?? (typeof window !== 'undefined' ? window.location : undefined);\n const path = location ? location.pathname + location.search : undefined;\n if (path) {\n value = getStateFromPathRef.current(path, configRef.current);\n }\n }\n const thenable = {\n then(onfulfilled) {\n return Promise.resolve(onfulfilled ? onfulfilled(value) : value);\n },\n catch() {\n return thenable;\n }\n };\n return thenable;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const previousIndexRef = React.useRef(undefined);\n const previousStateRef = React.useRef(undefined);\n const pendingPopStatePathRef = React.useRef(undefined);\n React.useEffect(() => {\n previousIndexRef.current = history.index;\n return history.listen(() => {\n const navigation = ref.current;\n if (!navigation || !enabled) {\n return;\n }\n const {\n location\n } = window;\n const path = location.pathname + location.search;\n const index = history.index;\n const previousIndex = previousIndexRef.current ?? 0;\n previousIndexRef.current = index;\n pendingPopStatePathRef.current = path;\n\n // When browser back/forward is clicked, we first need to check if state object for this index exists\n // If it does we'll reset to that state object\n // Otherwise, we'll handle it like a regular deep link\n const record = history.get(index);\n if ((record === null || record === void 0 ? void 0 : record.path) === path && record !== null && record !== void 0 && record.state) {\n navigation.resetRoot(record.state);\n return;\n }\n const state = getStateFromPathRef.current(path, configRef.current);\n\n // We should only dispatch an action when going forward\n // Otherwise the action will likely add items to history, which would mess things up\n if (state) {\n // Make sure that the routes in the state exist in the root navigator\n // Otherwise there's an error in the linking configuration\n const rootState = navigation.getRootState();\n if (state.routes.some(r => !(rootState !== null && rootState !== void 0 && rootState.routeNames.includes(r.name)))) {\n console.warn(\"The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.\");\n return;\n }\n if (index > previousIndex) {\n const action = getActionFromStateRef.current(state, configRef.current);\n if (action !== undefined) {\n try {\n navigation.dispatch(action);\n } catch (e) {\n // Ignore any errors from deep linking.\n // This could happen in case of malformed links, navigation object not being initialized etc.\n console.warn(`An error occurred when trying to handle the link '${path}': ${typeof e === 'object' && e != null && 'message' in e ? e.message : e}`);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n // if current path didn't return any state, we should revert to initial state\n navigation.resetRoot(state);\n }\n });\n }, [enabled, history, ref]);\n React.useEffect(() => {\n var _ref$current;\n if (!enabled) {\n return;\n }\n const getPathForRoute = (route, state) => {\n // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match\n // This makes sure that we preserve the original URL for wildcard routes\n if (route !== null && route !== void 0 && route.path) {\n const stateForPath = getStateFromPathRef.current(route.path, configRef.current);\n if (stateForPath) {\n const focusedRoute = findFocusedRoute(stateForPath);\n if (focusedRoute && focusedRoute.name === route.name && isEqual(focusedRoute.params, route.params)) {\n return route.path;\n }\n }\n }\n return getPathFromStateRef.current(state, configRef.current);\n };\n if (ref.current) {\n // We need to record the current metadata on the first render if they aren't set\n // This will allow the initial state to be in the history entry\n const state = ref.current.getRootState();\n if (state) {\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n if (previousStateRef.current === undefined) {\n previousStateRef.current = state;\n }\n history.replace({\n path,\n state\n });\n }\n }\n const onStateChange = async () => {\n const navigation = ref.current;\n if (!navigation || !enabled) {\n return;\n }\n const previousState = previousStateRef.current;\n const state = navigation.getRootState();\n\n // root state may not available, for example when root navigators switch inside the container\n if (!state) {\n return;\n }\n const pendingPath = pendingPopStatePathRef.current;\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n previousStateRef.current = state;\n pendingPopStatePathRef.current = undefined;\n\n // To detect the kind of state change, we need to:\n // - Find the common focused navigation state in previous and current state\n // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace\n // - If no common focused navigation state found, it's a replace\n const [previousFocusedState, focusedState] = findMatchingState(previousState, state);\n if (previousFocusedState && focusedState &&\n // We should only handle push/pop if path changed from what was in last `popstate`\n // Otherwise it's likely a change triggered by `popstate`\n path !== pendingPath) {\n const historyDelta = (focusedState.history ? focusedState.history.length : focusedState.routes.length) - (previousFocusedState.history ? previousFocusedState.history.length : previousFocusedState.routes.length);\n if (historyDelta > 0) {\n // If history length is increased, we should pushState\n // Note that path might not actually change here, for example, drawer open should pushState\n history.push({\n path,\n state\n });\n } else if (historyDelta < 0) {\n // If history length is decreased, i.e. entries were removed, we want to go back\n\n const nextIndex = history.backIndex({\n path\n });\n const currentIndex = history.index;\n try {\n if (nextIndex !== -1 && nextIndex < currentIndex &&\n // We should only go back if the entry exists and it's less than current index\n history.get(nextIndex - currentIndex)) {\n // An existing entry for this path exists and it's less than current index, go back to that\n await history.go(nextIndex - currentIndex);\n } else {\n // We couldn't find an existing entry to go back to, so we'll go back by the delta\n // This won't be correct if multiple routes were pushed in one go before\n // Usually this shouldn't happen and this is a fallback for that\n await history.go(historyDelta);\n }\n\n // Store the updated state as well as fix the path if incorrect\n history.replace({\n path,\n state\n });\n } catch (e) {\n // The navigation was interrupted\n }\n } else {\n // If history length is unchanged, we want to replaceState\n history.replace({\n path,\n state\n });\n }\n } else {\n // If no common navigation state was found, assume it's a replace\n // This would happen if the user did a reset/conditionally changed navigators\n history.replace({\n path,\n state\n });\n }\n };\n\n // We debounce onStateChange coz we don't want multiple state changes to be handled at one time\n // This could happen since `history.go(n)` is asynchronous\n // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up\n return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.addListener('state', series(onStateChange));\n }, [enabled, history, ref]);\n return {\n getInitialState\n };\n}\n//# sourceMappingURL=useLinking.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n",null,"import React, { Component } from 'react';\n\nconst style = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute',\n};\n\nexport default class GoogleMapMap extends Component {\n shouldComponentUpdate() {\n return false; // disable react on this div\n }\n\n render() {\n const { registerChild } = this.props;\n return

;\n }\n}\n","import EventEmitter from 'eventemitter3';\n\nexport default class MarkerDispatcher extends EventEmitter {\n constructor(gmapInstance) {\n super();\n this.gmapInstance = gmapInstance;\n }\n\n getChildren() {\n return this.gmapInstance.props.children;\n }\n\n getMousePosition() {\n return this.gmapInstance.mouse_;\n }\n\n getUpdateCounter() {\n return this.gmapInstance.updateCounter_;\n }\n\n dispose() {\n this.gmapInstance = null;\n this.removeAllListeners();\n }\n}\n","// https://github.com/acdlite/recompose/blob/master/src/packages/recompose/utils/omit.js\nconst omit = (obj, keys) => {\n const { ...rest } = obj;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key in rest) {\n delete rest[key];\n }\n }\n return rest;\n};\n\nexport default omit;\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 * @providesModule shallowEqual\n * @typechecks\n * @flow\n */\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (\n !hasOwnProperty.call(objB, keysA[i]) ||\n !is(objA[keysA[i]], objB[keysA[i]])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default shallowEqual;\n/* src: https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/shallowEqual.js */\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n// utils\nimport omit from './utils/omit';\nimport shallowEqual from './utils/shallowEqual';\n\nconst mainStyle = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute',\n};\n\nconst style = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n backgroundColor: 'transparent',\n position: 'absolute',\n};\n\nexport default class GoogleMapMarkers extends Component {\n /* eslint-disable react/forbid-prop-types */\n static propTypes = {\n geoService: PropTypes.any,\n style: PropTypes.any,\n distanceToMouse: PropTypes.func,\n dispatcher: PropTypes.any,\n onChildClick: PropTypes.func,\n onChildMouseDown: PropTypes.func,\n onChildMouseLeave: PropTypes.func,\n onChildMouseEnter: PropTypes.func,\n getHoverDistance: PropTypes.func,\n insideMapPanes: PropTypes.bool,\n prerender: PropTypes.bool,\n };\n /* eslint-enable react/forbid-prop-types */\n\n static defaultProps = {\n insideMapPanes: false,\n prerender: false,\n };\n\n constructor(props) {\n super(props);\n\n this.dimensionsCache_ = {};\n this.hoverKey_ = null;\n this.hoverChildProps_ = null;\n this.allowMouse_ = true;\n\n this.state = { ...this._getState(), hoverKey: null };\n }\n\n componentDidMount() {\n this.props.dispatcher.on('kON_CHANGE', this._onChangeHandler);\n this.props.dispatcher.on(\n 'kON_MOUSE_POSITION_CHANGE',\n this._onMouseChangeHandler\n );\n this.props.dispatcher.on('kON_CLICK', this._onChildClick);\n this.props.dispatcher.on('kON_MDOWN', this._onChildMouseDown);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n if (this.props.experimental === true) {\n return (\n !shallowEqual(this.props, nextProps) ||\n !shallowEqual(\n omit(this.state, ['hoverKey']),\n omit(nextState, ['hoverKey'])\n )\n );\n }\n\n return (\n !shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state, nextState)\n );\n }\n\n componentWillUnmount() {\n this.props.dispatcher.removeListener('kON_CHANGE', this._onChangeHandler);\n this.props.dispatcher.removeListener(\n 'kON_MOUSE_POSITION_CHANGE',\n this._onMouseChangeHandler\n );\n this.props.dispatcher.removeListener('kON_CLICK', this._onChildClick);\n this.props.dispatcher.removeListener('kON_MDOWN', this._onChildMouseDown);\n\n this.dimensionsCache_ = null;\n }\n\n _getState = () => ({\n children: this.props.dispatcher.getChildren(),\n updateCounter: this.props.dispatcher.getUpdateCounter(),\n });\n\n _onChangeHandler = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const prevChildCount = (this.state.children || []).length;\n const state = this._getState();\n\n this.setState(\n state,\n () =>\n (state.children || []).length !== prevChildCount &&\n this._onMouseChangeHandler()\n );\n };\n\n _onChildClick = () => {\n if (this.props.onChildClick) {\n if (this.hoverChildProps_) {\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n // click works only on hovered item\n this.props.onChildClick(hoverKey, childProps);\n }\n }\n };\n\n _onChildMouseDown = () => {\n if (this.props.onChildMouseDown) {\n if (this.hoverChildProps_) {\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n // works only on hovered item\n this.props.onChildMouseDown(hoverKey, childProps);\n }\n }\n };\n\n _onChildMouseEnter = (hoverKey, childProps) => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n if (this.props.onChildMouseEnter) {\n this.props.onChildMouseEnter(hoverKey, childProps);\n }\n\n this.hoverChildProps_ = childProps;\n this.hoverKey_ = hoverKey;\n this.setState({ hoverKey });\n };\n\n _onChildMouseLeave = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n\n if (hoverKey !== undefined && hoverKey !== null) {\n if (this.props.onChildMouseLeave) {\n this.props.onChildMouseLeave(hoverKey, childProps);\n }\n\n this.hoverKey_ = null;\n this.hoverChildProps_ = null;\n this.setState({ hoverKey: null });\n }\n };\n\n _onMouseAllow = (value) => {\n if (!value) {\n this._onChildMouseLeave();\n }\n\n this.allowMouse_ = value;\n };\n\n _onMouseChangeHandler = () => {\n if (this.allowMouse_) {\n this._onMouseChangeHandlerRaf();\n }\n };\n\n _onMouseChangeHandlerRaf = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const mp = this.props.dispatcher.getMousePosition();\n\n if (mp) {\n const distances = [];\n const hoverDistance = this.props.getHoverDistance();\n\n React.Children.forEach(this.state.children, (child, childIndex) => {\n if (!child) return;\n // layers\n if (\n child.props.latLng === undefined &&\n child.props.lat === undefined &&\n child.props.lng === undefined\n ) {\n return;\n }\n\n const childKey =\n child.key !== undefined && child.key !== null\n ? child.key\n : childIndex;\n const dist = this.props.distanceToMouse(\n this.dimensionsCache_[childKey],\n mp,\n child.props\n );\n if (dist < hoverDistance) {\n distances.push({\n key: childKey,\n dist,\n props: child.props,\n });\n }\n });\n\n if (distances.length) {\n distances.sort((a, b) => a.dist - b.dist);\n const hoverKey = distances[0].key;\n const childProps = distances[0].props;\n\n if (this.hoverKey_ !== hoverKey) {\n this._onChildMouseLeave();\n\n this._onChildMouseEnter(hoverKey, childProps);\n }\n } else {\n this._onChildMouseLeave();\n }\n } else {\n this._onChildMouseLeave();\n }\n };\n\n _getDimensions = (key) => {\n const childKey = key;\n return this.dimensionsCache_[childKey];\n };\n\n render() {\n const mainElementStyle = this.props.style || mainStyle;\n this.dimensionsCache_ = {};\n\n const markers = React.Children.map(\n this.state.children,\n (child, childIndex) => {\n if (!child) return undefined;\n if (\n child.props.latLng === undefined &&\n child.props.lat === undefined &&\n child.props.lng === undefined\n ) {\n return React.cloneElement(child, {\n $geoService: this.props.geoService,\n $onMouseAllow: this._onMouseAllow,\n $prerender: this.props.prerender,\n });\n }\n\n const latLng =\n child.props.latLng !== undefined\n ? child.props.latLng\n : { lat: child.props.lat, lng: child.props.lng };\n\n const pt = this.props.insideMapPanes\n ? this.props.geoService.fromLatLngToDivPixel(latLng)\n : this.props.geoService.fromLatLngToCenterPixel(latLng);\n\n const stylePtPos = {\n left: pt.x,\n top: pt.y,\n };\n\n // If the component has a southeast corner defined (either as a LatLng, or a separate\n // lat and lng pair), set the width and height based on the distance between the northwest\n // and the southeast corner to lock the overlay to the correct geographic bounds.\n if (\n child.props.seLatLng !== undefined ||\n (child.props.seLat !== undefined && child.props.seLng !== undefined)\n ) {\n const seLatLng =\n child.props.seLatLng !== undefined\n ? child.props.seLatLng\n : { lat: child.props.seLat, lng: child.props.seLng };\n\n const sePt = this.props.insideMapPanes\n ? this.props.geoService.fromLatLngToDivPixel(seLatLng)\n : this.props.geoService.fromLatLngToCenterPixel(seLatLng);\n\n stylePtPos.width = sePt.x - pt.x;\n stylePtPos.height = sePt.y - pt.y;\n }\n\n const containerPt = this.props.geoService.fromLatLngToContainerPixel(\n latLng\n );\n\n // to prevent rerender on child element i need to pass\n // const params $getDimensions and $dimensionKey instead of dimension object\n const childKey =\n child.key !== undefined && child.key !== null\n ? child.key\n : childIndex;\n\n this.dimensionsCache_[childKey] = {\n x: containerPt.x,\n y: containerPt.y,\n ...latLng,\n };\n\n return (\n \n {React.cloneElement(child, {\n $hover: childKey === this.state.hoverKey,\n $getDimensions: this._getDimensions,\n $dimensionKey: childKey,\n $geoService: this.props.geoService,\n $onMouseAllow: this._onMouseAllow,\n $prerender: this.props.prerender,\n })}\n
\n );\n }\n );\n\n return
{markers}
;\n }\n}\n","import React from 'react';\nimport GoogleMapMarkers from './google_map_markers';\n\nconst style = {\n width: '50%',\n height: '50%',\n left: '50%',\n top: '50%',\n // backgroundColor: 'red',\n margin: 0,\n padding: 0,\n position: 'absolute',\n // opacity: 0.3\n};\n\nexport default function (props) {\n return (\n
\n \n
\n );\n}\n","import { Loader } from '@googlemaps/js-api-loader';\n\nlet loader_;\nlet loadPromise_;\nlet resolveCustomPromise_;\n\nconst _customPromise = new Promise((resolve) => {\n resolveCustomPromise_ = resolve;\n});\n\n// TODO add libraries language and other map options\nexport default (bootstrapURLKeys, heatmapLibrary) => {\n // call from outside google-map-react\n // will be as soon as loadPromise resolved\n if (!bootstrapURLKeys) {\n return _customPromise;\n }\n\n // avoid api to be loaded multiple times\n if (loadPromise_) {\n return loadPromise_;\n }\n\n if (!bootstrapURLKeys.libraries) {\n bootstrapURLKeys.libraries = [];\n }\n\n const libraries = [...bootstrapURLKeys.libraries];\n\n // note: heatmapLibrary will be deprecated on next major\n if (heatmapLibrary) {\n // if heatmapLibrary is present\n // check if we need to add visualization library\n if (libraries.length === 0 || !libraries.includes('visualization')) {\n // if the array isEmpty or visualization is\n // not present, push the visualization library\n libraries.push('visualization');\n }\n console.warn(\n \"heatmapLibrary will be deprecated in the future. Please use { libraries: ['visualization'] } in bootstrapURLKeys property instead\"\n );\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(bootstrapURLKeys).indexOf('callback') > -1) {\n const message = `\"callback\" key in bootstrapURLKeys is not allowed,\n use onGoogleApiLoaded property instead`;\n // eslint-disable-next-line no-console\n console.error(message);\n throw new Error(message);\n }\n }\n\n if (typeof window === 'undefined') {\n throw new Error('google map cannot be loaded outside browser env');\n }\n\n const { key, ...restKeys } = bootstrapURLKeys;\n\n // use single instance of Loader to avoid multiple api loads\n if (!loader_) {\n loader_ = new Loader({\n // need to keep key as a prop for backwards compatibility\n apiKey: key || '',\n ...restKeys,\n libraries,\n });\n }\n\n loadPromise_ = loader_.load().then(() => {\n resolveCustomPromise_(window.google.maps);\n return window.google.maps;\n });\n\n resolveCustomPromise_(loadPromise_);\n\n return loadPromise_;\n};\n","/* eslint-disable import/prefer-default-export */\n\nexport function wrap(n, min, max) {\n const d = max - min;\n return n === max ? n : ((((n - min) % d) + d) % d) + min;\n}\n","import { wrap } from './wrap';\n\nexport default class LatLng {\n static convert = (a) => {\n if (a instanceof LatLng) {\n return a;\n }\n\n if (Array.isArray(a)) {\n return new LatLng(a[0], a[1]);\n }\n\n if ('lng' in a && 'lat' in a) {\n return new LatLng(a.lat, a.lng);\n }\n\n return a;\n };\n\n constructor(lat, lng) {\n if (isNaN(lat) || isNaN(lng)) {\n throw new Error(`Invalid LatLng object: (${lat}, ${lng})`);\n }\n this.lat = +lat;\n this.lng = +lng;\n }\n\n wrap() {\n return new LatLng(this.lat, wrap(this.lng, -180, 180));\n }\n}\n","/* eslint-disable class-methods-use-this */\nimport Point from '@mapbox/point-geometry';\nimport LatLng from './lat_lng';\nimport { wrap } from './wrap';\n\n// A single transform, generally used for a single tile to be scaled, rotated, and zoomed.\nexport default class Transform {\n constructor(tileSize, minZoom, maxZoom) {\n this.tileSize = tileSize || 512; // constant\n\n this._minZoom = minZoom || 0;\n this._maxZoom = maxZoom || 52;\n\n this.latRange = [-85.05113, 85.05113];\n\n this.width = 0;\n this.height = 0;\n this.zoom = 0;\n this.center = new LatLng(0, 0);\n this.angle = 0;\n }\n\n get minZoom() {\n return this._minZoom;\n }\n\n set minZoom(zoom) {\n this._minZoom = zoom;\n this.zoom = Math.max(this.zoom, zoom);\n }\n\n get maxZoom() {\n return this._maxZoom;\n }\n\n set maxZoom(zoom) {\n this._maxZoom = zoom;\n this.zoom = Math.min(this.zoom, zoom);\n }\n\n get worldSize() {\n return this.tileSize * this.scale;\n }\n\n get centerPoint() {\n return new Point(0, 0); // this.size._div(2);\n }\n\n get size() {\n return new Point(this.width, this.height);\n }\n\n get bearing() {\n return (-this.angle / Math.PI) * 180;\n }\n\n set bearing(bearing) {\n this.angle = (-wrap(bearing, -180, 180) * Math.PI) / 180;\n }\n\n get zoom() {\n return this._zoom;\n }\n\n set zoom(zoom) {\n const zoomV = Math.min(Math.max(zoom, this.minZoom), this.maxZoom);\n this._zoom = zoomV;\n this.scale = this.zoomScale(zoomV);\n this.tileZoom = Math.floor(zoomV);\n this.zoomFraction = zoomV - this.tileZoom;\n }\n\n zoomScale(zoom) {\n return Math.pow(2, zoom);\n }\n\n scaleZoom(scale) {\n return Math.log(scale) / Math.LN2;\n }\n\n project(latlng, worldSize) {\n return new Point(\n this.lngX(latlng.lng, worldSize),\n this.latY(latlng.lat, worldSize)\n );\n }\n\n unproject(point, worldSize) {\n return new LatLng(\n this.yLat(point.y, worldSize),\n this.xLng(point.x, worldSize)\n );\n }\n\n get x() {\n return this.lngX(this.center.lng);\n }\n\n get y() {\n return this.latY(this.center.lat);\n }\n\n get point() {\n return new Point(this.x, this.y);\n }\n\n // lat/lon <-> absolute pixel coords convertion\n lngX(lon, worldSize) {\n return ((180 + lon) * (worldSize || this.worldSize)) / 360;\n }\n\n // latitude to absolute y coord\n latY(lat, worldSize) {\n const y =\n (180 / Math.PI) * Math.log(Math.tan(Math.PI / 4 + (lat * Math.PI) / 360));\n return ((180 - y) * (worldSize || this.worldSize)) / 360;\n }\n\n xLng(x, worldSize) {\n return (x * 360) / (worldSize || this.worldSize) - 180;\n }\n\n yLat(y, worldSize) {\n const y2 = 180 - (y * 360) / (worldSize || this.worldSize);\n return (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n\n locationPoint(latlng) {\n const p = this.project(latlng);\n return this.centerPoint._sub(this.point._sub(p)._rotate(this.angle));\n }\n\n pointLocation(p) {\n const p2 = this.centerPoint._sub(p)._rotate(-this.angle);\n return this.unproject(this.point.sub(p2));\n }\n}\n","import Point from '@mapbox/point-geometry';\n\nimport LatLng from './lat_lng';\nimport Transform from './transform';\n\nexport default class Geo {\n constructor(tileSize) {\n // left_top view пользует гугл\n // super();\n this.hasSize_ = false;\n this.hasView_ = false;\n this.transform_ = new Transform(tileSize || 512);\n }\n\n setView(center, zoom, bearing) {\n this.transform_.center = LatLng.convert(center);\n this.transform_.zoom = +zoom;\n this.transform_.bearing = +bearing;\n this.hasView_ = true;\n }\n\n setViewSize(width, height) {\n this.transform_.width = width;\n this.transform_.height = height;\n this.hasSize_ = true;\n }\n\n setMapCanvasProjection(maps, mapCanvasProjection) {\n this.maps_ = maps;\n this.mapCanvasProjection_ = mapCanvasProjection;\n }\n\n canProject() {\n return this.hasSize_ && this.hasView_;\n }\n\n hasSize() {\n return this.hasSize_;\n }\n\n /** Returns the pixel position relative to the map center. */\n fromLatLngToCenterPixel(ptLatLng) {\n return this.transform_.locationPoint(LatLng.convert(ptLatLng));\n }\n\n /**\n * Returns the pixel position relative to the map panes,\n * or relative to the map center if there are no panes.\n */\n fromLatLngToDivPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n const latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToDivPixel(latLng);\n }\n return this.fromLatLngToCenterPixel(ptLatLng);\n }\n\n /** Returns the pixel position relative to the map top-left. */\n fromLatLngToContainerPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n const latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToContainerPixel(latLng);\n }\n\n const pt = this.fromLatLngToCenterPixel(ptLatLng);\n pt.x -=\n this.transform_.worldSize * Math.round(pt.x / this.transform_.worldSize);\n\n pt.x += this.transform_.width / 2;\n pt.y += this.transform_.height / 2;\n\n return pt;\n }\n\n /** Returns the LatLng for the given offset from the map top-left. */\n fromContainerPixelToLatLng(ptXY) {\n if (this.mapCanvasProjection_) {\n const latLng = this.mapCanvasProjection_.fromContainerPixelToLatLng(ptXY);\n return { lat: latLng.lat(), lng: latLng.lng() };\n }\n\n const ptxy = { ...ptXY };\n ptxy.x -= this.transform_.width / 2;\n ptxy.y -= this.transform_.height / 2;\n const ptRes = this.transform_.pointLocation(Point.convert(ptxy));\n\n ptRes.lng -= 360 * Math.round(ptRes.lng / 360); // convert 2 google format\n return ptRes;\n }\n\n getWidth() {\n return this.transform_.width;\n }\n\n getHeight() {\n return this.transform_.height;\n }\n\n getZoom() {\n return this.transform_.zoom;\n }\n\n getCenter() {\n const ptRes = this.transform_.pointLocation({ x: 0, y: 0 });\n\n return ptRes;\n }\n\n getBounds(margins, roundFactor) {\n const bndT = (margins && margins[0]) || 0;\n const bndR = (margins && margins[1]) || 0;\n const bndB = (margins && margins[2]) || 0;\n const bndL = (margins && margins[3]) || 0;\n\n if (\n this.getWidth() - bndR - bndL > 0 &&\n this.getHeight() - bndT - bndB > 0\n ) {\n const topLeftCorner = this.transform_.pointLocation(\n Point.convert({\n x: bndL - this.getWidth() / 2,\n y: bndT - this.getHeight() / 2,\n })\n );\n const bottomRightCorner = this.transform_.pointLocation(\n Point.convert({\n x: this.getWidth() / 2 - bndR,\n y: this.getHeight() / 2 - bndB,\n })\n );\n\n let res = [\n topLeftCorner.lat,\n topLeftCorner.lng, // NW\n bottomRightCorner.lat,\n bottomRightCorner.lng, // SE\n bottomRightCorner.lat,\n topLeftCorner.lng, // SW\n topLeftCorner.lat,\n bottomRightCorner.lng, // NE\n ];\n\n if (roundFactor) {\n res = res.map((r) => Math.round(r * roundFactor) / roundFactor);\n }\n return res;\n }\n\n return [0, 0, 0, 0];\n }\n}\n","export default function raf(callback) {\n if (window.requestAnimationFrame) {\n return window.requestAnimationFrame(callback);\n }\n\n const nativeRaf =\n window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n\n return nativeRaf\n ? nativeRaf(callback)\n : window.setTimeout(callback, 1e3 / 60);\n}\n","const log2 = Math.log2 ? Math.log2 : (x) => Math.log(x) / Math.LN2;\n\nexport default log2;\n","// source taken from https://github.com/rackt/redux/blob/master/src/utils/pick.js\n\nexport default function pick(obj, fn) {\n return Object.keys(obj).reduce((result, key) => {\n if (fn(obj[key])) {\n result[key] = obj[key]; // eslint-disable-line\n }\n return result;\n }, {});\n}\n","const isEmpty = (val) => {\n // check for empty object {}, array []\n if (val !== null && typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return true;\n }\n } else if (val === null || val === undefined || val === '') {\n // check for undefined, null and \"\"\n return true;\n }\n return false;\n};\n\nexport default isEmpty;\n","function isObjectLike(value) {\n return !!value && typeof value === 'object';\n}\n\nconst objectToString = Object.prototype.toString;\n\nexport default function isNumber(value) {\n const numberTag = '[object Number]';\n return (\n typeof value === 'number' ||\n (isObjectLike(value) && objectToString.call(value) === numberTag)\n );\n}\n","// http://stackoverflow.com/questions/5899783/detect-safari-chrome-ie-firefox-opera-with-user-agent\nlet detectBrowserResult_ = null;\n\nexport default function detectBrowser() {\n if (detectBrowserResult_) {\n return detectBrowserResult_;\n }\n\n if (typeof navigator !== 'undefined') {\n const isExplorer = navigator.userAgent.indexOf('MSIE') > -1;\n const isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n const isOpera = navigator.userAgent.toLowerCase().indexOf('op') > -1;\n\n let isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n let isSafari = navigator.userAgent.indexOf('Safari') > -1;\n\n if (isChrome && isSafari) {\n isSafari = false;\n }\n\n if (isChrome && isOpera) {\n isChrome = false;\n }\n\n detectBrowserResult_ = {\n isExplorer,\n isFirefox,\n isOpera,\n isChrome,\n isSafari,\n };\n return detectBrowserResult_;\n }\n\n detectBrowserResult_ = {\n isChrome: true,\n isExplorer: false,\n isFirefox: false,\n isOpera: false,\n isSafari: false,\n };\n\n return detectBrowserResult_;\n}\n","// source taken from https://github.com/rackt/redux/blob/master/src/utils/isPlainObject.js\nconst fnToString = (fn) => Function.prototype.toString.call(fn);\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n const proto =\n typeof obj.constructor === 'function'\n ? Object.getPrototypeOf(obj)\n : Object.prototype;\n\n if (proto === null) {\n return true;\n }\n\n const constructor = proto.constructor;\n\n return (\n typeof constructor === 'function' &&\n constructor instanceof constructor &&\n fnToString(constructor) === fnToString(Object)\n );\n}\n","// feature detection for passive support\n// see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nfunction hasPassiveSupport() {\n let passiveSupported = false;\n\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n passiveSupported = true;\n },\n });\n\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (err) {\n passiveSupported = false;\n }\n\n return passiveSupported;\n}\n\nexport default function addPassiveEventListener(\n element,\n eventName,\n func,\n capture\n) {\n element.addEventListener(\n eventName,\n func,\n hasPassiveSupport()\n ? {\n capture,\n passive: true,\n }\n : capture\n );\n}\n","/* eslint-disable */\n/**\n* Detect Element Resize.\n* Forked in order to guard against unsafe 'window' and 'document' references.\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\nimport addPassiveEventListener from './passiveEvents';\n\n// Reliable `window` and `document` detection\nvar canUseDOM = !!(typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n\n// Check `document` and `window` in case of server-side rendering\nvar _window;\nif (canUseDOM) {\n _window = window;\n} else if (typeof self !== 'undefined') {\n _window = self;\n} else {\n _window = this;\n}\n\nvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\nvar stylesCreated = false;\n\nif (canUseDOM && !attachEvent) {\n var requestFrame = (function () {\n var raf = _window.requestAnimationFrame ||\n _window.mozRequestAnimationFrame ||\n _window.webkitRequestAnimationFrame ||\n function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n })();\n\n var cancelFrame = (function () {\n var cancel = _window.cancelAnimationFrame ||\n _window.mozCancelAnimationFrame ||\n _window.webkitCancelAnimationFrame ||\n _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n })();\n\n var resetTriggers = function (element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function (element) {\n return element.offsetWidth != element.__resizeLast__.width ||\n element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function (e) {\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n animationstring = 'animation',\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(\n ' '\n ),\n pfx = '';\n\n if (canUseDOM) {\n var elm = document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n animationstring = pfx + 'Animation';\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' +\n keyframeprefix +\n 'keyframes ' +\n animationName +\n ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix +\n 'animation: 1ms ' +\n animationName +\n '; ';\n}\n\nvar createStyles = function () {\n if (!stylesCreated) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') +\n '.resize-triggers { ' +\n (animationStyle ? animationStyle : '') +\n 'visibility: hidden; opacity: 0; } ' +\n '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n stylesCreated = true;\n }\n};\n\nvar addResizeListener = function (element, fn) {\n if (element.parentNode === undefined) {\n var tempParentDiv = document.createElement('div');\n element.parentNode = tempParentDiv;\n }\n element = element.parentNode;\n if (attachEvent)\n element.attachEvent('onresize', fn);\n else {\n if (!element.__resizeTriggers__) {\n if (getComputedStyle(element).position == 'static')\n element.style.position = 'relative';\n createStyles();\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = document.createElement(\n 'div'\n )).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' +\n '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n\n addPassiveEventListener(element, 'scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n animationstartevent &&\n element.__resizeTriggers__.addEventListener(\n animationstartevent,\n function (e) {\n if (e.animationName == animationName) resetTriggers(element);\n }\n );\n }\n element.__resizeListeners__.push(fn);\n }\n};\n\nvar removeResizeListener = function (element, fn) {\n element = element.parentNode;\n if (attachEvent)\n element.detachEvent('onresize', fn);\n else {\n element.__resizeListeners__.splice(\n element.__resizeListeners__.indexOf(fn),\n 1\n );\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener);\n element.__resizeTriggers__ = !element.removeChild(\n element.__resizeTriggers__\n );\n }\n }\n};\n\nexport {\n addResizeListener,\n removeResizeListener,\n};\n","/* eslint-disable import/no-extraneous-dependencies, react/forbid-prop-types, react/no-find-dom-node, no-console, no-undef */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n\n// helpers\nimport GoogleMapMap from './google_map_map';\nimport MarkerDispatcher from './marker_dispatcher';\nimport GoogleMapMarkers from './google_map_markers';\nimport GoogleMapMarkersPrerender from './google_map_markers_prerender';\nimport { generateHeatmap, optionsHeatmap } from './google_heatmap';\n\n// loaders\nimport googleMapLoader from './loaders/google_map_loader';\n\n// lib\nimport Geo from './lib/geo';\n\n// tools\nimport raf from './utils/raf';\nimport log2 from './utils/log2';\nimport omit from './utils/omit';\nimport pick from './utils/pick';\nimport isEmpty from './utils/isEmpty';\nimport isNumber from './utils/isNumber';\nimport detectBrowser from './utils/detect';\nimport shallowEqual from './utils/shallowEqual';\nimport isPlainObject from './utils/isPlainObject';\nimport isArraysEqualEps from './utils/isArraysEqualEps';\nimport {\n addResizeListener,\n removeResizeListener,\n} from './utils/detectElementResize';\nimport addPassiveEventListener from './utils/passiveEvents';\n\n// consts\nconst kEPS = 0.00001;\nconst K_GOOGLE_TILE_SIZE = 256;\n// real minZoom calculated here _getMinZoom\nconst K_IDLE_TIMEOUT = 100;\nconst K_IDLE_CLICK_TIMEOUT = 300;\nconst DEFAULT_MIN_ZOOM = 3;\n// Starting with version 3.32, the maps API calls `draw()` each frame during\n// a zoom animation.\nconst DRAW_CALLED_DURING_ANIMATION_VERSION = 32;\nconst IS_REACT_16 = ReactDOM.createPortal !== undefined;\n\nconst createPortal = IS_REACT_16\n ? ReactDOM.createPortal\n : ReactDOM.unstable_renderSubtreeIntoContainer;\n\nfunction defaultOptions_(/* maps */) {\n return {\n overviewMapControl: false,\n streetViewControl: false,\n rotateControl: true,\n mapTypeControl: false,\n // disable poi\n styles: [\n {\n featureType: 'poi',\n elementType: 'labels',\n stylers: [{ visibility: 'off' }],\n },\n ],\n minZoom: DEFAULT_MIN_ZOOM, // dynamically recalculted if possible during init\n };\n}\n\nconst latLng2Obj = (latLng) =>\n isPlainObject(latLng) ? latLng : { lat: latLng[0], lng: latLng[1] };\n\nconst _checkMinZoom = (zoom, minZoom) => {\n if (process.env.NODE_ENV !== 'production') {\n if (zoom < minZoom) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line\n 'minZoom option is less than recommended ' +\n 'minZoom option for your map sizes.\\n' +\n 'overrided to value ' +\n minZoom\n );\n }\n }\n\n if (minZoom < zoom) {\n return zoom;\n }\n return minZoom;\n};\n\nconst isFullScreen = () =>\n document.fullscreen ||\n document.webkitIsFullScreen ||\n document.mozFullScreen ||\n document.msFullscreenElement;\n\nclass GoogleMap extends Component {\n static propTypes = {\n apiKey: PropTypes.string,\n bootstrapURLKeys: PropTypes.any,\n\n defaultCenter: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n }),\n ]),\n center: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n }),\n ]),\n defaultZoom: PropTypes.number,\n zoom: PropTypes.number,\n onBoundsChange: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onChildClick: PropTypes.func,\n onChildMouseDown: PropTypes.func,\n onChildMouseUp: PropTypes.func,\n onChildMouseMove: PropTypes.func,\n onChildMouseEnter: PropTypes.func,\n onChildMouseLeave: PropTypes.func,\n onZoomAnimationStart: PropTypes.func,\n onZoomAnimationEnd: PropTypes.func,\n onDrag: PropTypes.func,\n onDragEnd: PropTypes.func,\n onMapTypeIdChange: PropTypes.func,\n onTilesLoaded: PropTypes.func,\n options: PropTypes.any,\n distanceToMouse: PropTypes.func,\n hoverDistance: PropTypes.number,\n debounced: PropTypes.bool,\n margin: PropTypes.array,\n googleMapLoader: PropTypes.any,\n onGoogleApiLoaded: PropTypes.func,\n yesIWantToUseGoogleMapApiInternals: PropTypes.bool,\n draggable: PropTypes.bool,\n style: PropTypes.any,\n resetBoundsOnResize: PropTypes.bool,\n layerTypes: PropTypes.arrayOf(PropTypes.string), // ['TransitLayer', 'TrafficLayer']\n shouldUnregisterMapOnUnmount: PropTypes.bool,\n };\n\n static defaultProps = {\n distanceToMouse(pt, mousePos /* , markerProps */) {\n return Math.sqrt(\n (pt.x - mousePos.x) * (pt.x - mousePos.x) +\n (pt.y - mousePos.y) * (pt.y - mousePos.y)\n );\n },\n hoverDistance: 30,\n debounced: true,\n options: defaultOptions_,\n googleMapLoader,\n yesIWantToUseGoogleMapApiInternals: false,\n style: {\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n position: 'relative',\n },\n layerTypes: [],\n heatmap: {},\n heatmapLibrary: false,\n shouldUnregisterMapOnUnmount: true,\n };\n\n static googleMapLoader = googleMapLoader; // eslint-disable-line\n\n constructor(props) {\n super(props);\n this.mounted_ = false;\n this.initialized_ = false;\n this.googleApiLoadedCalled_ = false;\n\n this.map_ = null;\n this.maps_ = null;\n this.prevBounds_ = null;\n this.heatmap = null;\n\n this.layers_ = {};\n\n this.mouse_ = null;\n this.mouseMoveTime_ = 0;\n this.boundingRect_ = null;\n this.mouseInMap_ = true;\n\n this.dragTime_ = 0;\n this.fireMouseEventOnIdle_ = false;\n this.updateCounter_ = 0;\n\n this.markersDispatcher_ = new MarkerDispatcher(this);\n this.geoService_ = new Geo(K_GOOGLE_TILE_SIZE);\n this.centerIsObject_ = isPlainObject(this.props.center);\n\n this.minZoom_ = DEFAULT_MIN_ZOOM;\n this.defaultDraggableOption_ = true;\n\n this.zoomControlClickTime_ = 0;\n\n this.childMouseDownArgs_ = null;\n this.childMouseUpTime_ = 0;\n\n this.googleMapDom_ = null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.apiKey) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line no-console\n 'apiKey is deprecated, use ' +\n 'bootstrapURLKeys={{key: YOUR_API_KEY}} instead.'\n );\n }\n\n if (this.props.onBoundsChange) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line no-console\n 'onBoundsChange is deprecated, use ' +\n 'onChange({center, zoom, bounds, ...other}) instead.'\n );\n }\n\n if (isEmpty(this.props.center) && isEmpty(this.props.defaultCenter)) {\n console.warn(\n 'GoogleMap: center or defaultCenter property must be defined' // eslint-disable-line no-console\n );\n }\n\n if (isEmpty(this.props.zoom) && isEmpty(this.props.defaultZoom)) {\n console.warn(\n 'GoogleMap: zoom or defaultZoom property must be defined' // eslint-disable-line no-console\n );\n }\n }\n\n if (this._isCenterDefined(this.props.center || this.props.defaultCenter)) {\n const propsCenter = latLng2Obj(\n this.props.center || this.props.defaultCenter\n );\n this.geoService_.setView(\n propsCenter,\n this.props.zoom || this.props.defaultZoom,\n 0\n );\n }\n\n this.zoomAnimationInProgress_ = false;\n\n this.state = {\n overlay: null,\n };\n }\n\n componentDidMount() {\n this.mounted_ = true;\n this.markersDispatcher_ = new MarkerDispatcher(this);\n addPassiveEventListener(window, 'resize', this._onWindowResize, false);\n addPassiveEventListener(window, 'keydown', this._onKeyDownCapture, true);\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n\n if (mapDom) {\n addPassiveEventListener(\n mapDom,\n 'mousedown',\n this._onMapMouseDownNative,\n true\n );\n }\n\n addPassiveEventListener(window, 'mouseup', this._onChildMouseUp, false);\n const bootstrapURLKeys = {\n ...(this.props.apiKey && { key: this.props.apiKey }),\n ...this.props.bootstrapURLKeys,\n };\n\n this.props.googleMapLoader(bootstrapURLKeys, this.props.heatmapLibrary); // we can start load immediatly\n\n setTimeout(\n () => {\n // to detect size\n this._setViewSize();\n if (\n this._isCenterDefined(this.props.center || this.props.defaultCenter)\n ) {\n this._initMap();\n }\n },\n 0,\n this\n );\n if (this.props.resetBoundsOnResize) {\n const that = this;\n addResizeListener(mapDom, that._mapDomResizeCallback);\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // draggable does not affect inner components\n return (\n !shallowEqual(\n omit(this.props, ['draggable']),\n omit(nextProps, ['draggable'])\n ) || !shallowEqual(this.state, nextState)\n );\n }\n\n componentDidUpdate(prevProps) {\n if (process.env.NODE_ENV !== 'production') {\n if (!shallowEqual(prevProps.defaultCenter, this.props.defaultCenter)) {\n console.warn(\n \"GoogleMap: defaultCenter prop changed. You can't change default props.\"\n );\n }\n\n if (!shallowEqual(prevProps.defaultZoom, this.props.defaultZoom)) {\n console.warn(\n \"GoogleMap: defaultZoom prop changed. You can't change default props.\"\n );\n }\n }\n\n if (\n !this._isCenterDefined(prevProps.center) &&\n this._isCenterDefined(this.props.center)\n ) {\n setTimeout(() => this._initMap(), 0);\n }\n\n if (this.map_) {\n const centerLatLng = this.geoService_.getCenter();\n if (this._isCenterDefined(this.props.center)) {\n const currentCenter = latLng2Obj(this.props.center);\n const prevCenter = this._isCenterDefined(prevProps.center)\n ? latLng2Obj(prevProps.center)\n : null;\n\n if (\n !prevCenter ||\n Math.abs(currentCenter.lat - prevCenter.lat) +\n Math.abs(currentCenter.lng - prevCenter.lng) >\n kEPS\n ) {\n if (\n Math.abs(currentCenter.lat - centerLatLng.lat) +\n Math.abs(currentCenter.lng - centerLatLng.lng) >\n kEPS\n ) {\n this.map_.panTo({\n lat: currentCenter.lat,\n lng: currentCenter.lng,\n });\n }\n }\n }\n\n if (!isEmpty(this.props.zoom)) {\n // if zoom chaged by user\n if (Math.abs(this.props.zoom - prevProps.zoom) > 0) {\n this.map_.setZoom(this.props.zoom);\n }\n }\n\n if (!isEmpty(prevProps.draggable) && isEmpty(this.props.draggable)) {\n // reset to default\n this.map_.setOptions({ draggable: this.defaultDraggableOption_ });\n } else if (!shallowEqual(prevProps.draggable, this.props.draggable)) {\n // also prevent this on window 'mousedown' event to prevent map move\n this.map_.setOptions({ draggable: this.props.draggable });\n }\n\n // use shallowEqual to try avoid calling map._setOptions if only the ref changes\n if (\n !isEmpty(this.props.options) &&\n !shallowEqual(prevProps.options, this.props.options)\n ) {\n const mapPlainObjects = pick(this.maps_, isPlainObject);\n let options =\n typeof this.props.options === 'function'\n ? this.props.options(mapPlainObjects)\n : this.props.options;\n // remove zoom, center and draggable options as these are managed by google-maps-react\n options = omit(options, ['zoom', 'center', 'draggable']);\n\n if ('minZoom' in options) {\n const minZoom = this._computeMinZoom(options.minZoom);\n options.minZoom = _checkMinZoom(options.minZoom, minZoom);\n }\n\n this.map_.setOptions(options);\n }\n\n if (!shallowEqual(this.props.layerTypes, prevProps.layerTypes)) {\n Object.keys(this.layers_).forEach((layerKey) => {\n this.layers_[layerKey].setMap(null);\n delete this.layers_[layerKey];\n });\n this._setLayers(this.props.layerTypes);\n }\n\n if (\n this.heatmap &&\n !shallowEqual(this.props.heatmap.positions, prevProps.heatmap.positions)\n ) {\n this.heatmap.setData(\n this.props.heatmap.positions.map((p) => ({\n location: new this.maps_.LatLng(p.lat, p.lng),\n weight: p.weight,\n }))\n );\n }\n if (\n this.heatmap &&\n !shallowEqual(this.props.heatmap.options, prevProps.heatmap.options)\n ) {\n Object.keys(this.props.heatmap.options).forEach((option) => {\n this.heatmap.set(option, this.props.heatmap.options[option]);\n });\n }\n }\n // emit actions\n this.markersDispatcher_.emit('kON_CHANGE');\n\n if (!shallowEqual(this.props.hoverDistance, prevProps.hoverDistance)) {\n this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n }\n\n componentWillUnmount() {\n this.mounted_ = false;\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n if (mapDom) {\n mapDom.removeEventListener('mousedown', this._onMapMouseDownNative, true);\n }\n window.removeEventListener('resize', this._onWindowResize);\n window.removeEventListener('keydown', this._onKeyDownCapture);\n window.removeEventListener('mouseup', this._onChildMouseUp, false);\n if (this.props.resetBoundsOnResize) {\n removeResizeListener(mapDom, this._mapDomResizeCallback);\n }\n\n if (this.overlay_) {\n // this triggers overlay_.onRemove(), which will unmount the \n this.overlay_.setMap(null);\n }\n\n if (this.maps_ && this.map_ && this.props.shouldUnregisterMapOnUnmount) {\n // fix google, as otherwise listeners works even without map\n this.map_.setOptions({ scrollwheel: false });\n this.maps_.event.clearInstanceListeners(this.map_);\n }\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n this.map_ = null;\n this.maps_ = null;\n }\n this.markersDispatcher_.dispose();\n\n this.resetSizeOnIdle_ = false;\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n delete this.map_;\n delete this.markersDispatcher_;\n }\n }\n\n // calc minZoom if map size available\n // it's better to not set minZoom less than this calculation gives\n // otherwise there is no homeomorphism between screen coordinates and map\n // (one map coordinate can have different screen coordinates)\n _getMinZoom = () => {\n if (this.geoService_.getWidth() > 0 || this.geoService_.getHeight() > 0) {\n const tilesPerWidth =\n Math.ceil(this.geoService_.getWidth() / K_GOOGLE_TILE_SIZE) + 2;\n const tilesPerHeight =\n Math.ceil(this.geoService_.getHeight() / K_GOOGLE_TILE_SIZE) + 2;\n const maxTilesPerDim = Math.max(tilesPerWidth, tilesPerHeight);\n return Math.ceil(log2(maxTilesPerDim));\n }\n return DEFAULT_MIN_ZOOM;\n };\n\n _computeMinZoom = (minZoom) => {\n if (!isEmpty(minZoom)) {\n return minZoom;\n }\n return this._getMinZoom();\n };\n\n _mapDomResizeCallback = () => {\n this.resetSizeOnIdle_ = true;\n if (this.maps_) {\n const originalCenter = this.props.center || this.props.defaultCenter;\n const currentCenter = this.map_.getCenter();\n this.maps_.event.trigger(this.map_, 'resize');\n this.map_.setCenter(\n this.props.resetBoundsOnResize ? originalCenter : currentCenter\n );\n }\n };\n\n _setLayers = (layerTypes) => {\n layerTypes.forEach((layerType) => {\n this.layers_[layerType] = new this.maps_[layerType]();\n this.layers_[layerType].setMap(this.map_);\n });\n };\n\n _renderPortal = () => (\n \n );\n\n _initMap = () => {\n // only initialize the map once\n if (this.initialized_) {\n return;\n }\n this.initialized_ = true;\n\n const propsCenter = latLng2Obj(\n this.props.center || this.props.defaultCenter\n );\n this.geoService_.setView(\n propsCenter,\n this.props.zoom || this.props.defaultZoom,\n 0\n );\n\n this._onBoundsChanged(); // now we can calculate map bounds center etc...\n\n const bootstrapURLKeys = {\n ...(this.props.apiKey && { key: this.props.apiKey }),\n ...this.props.bootstrapURLKeys,\n };\n\n this.props\n .googleMapLoader(bootstrapURLKeys, this.props.heatmapLibrary)\n .then((maps) => {\n if (!this.mounted_) {\n return;\n }\n\n const centerLatLng = this.geoService_.getCenter();\n\n const propsOptions = {\n zoom: this.props.zoom || this.props.defaultZoom,\n center: new maps.LatLng(centerLatLng.lat, centerLatLng.lng),\n };\n\n // Start Heatmap\n if (this.props.heatmap.positions) {\n Object.assign(this, {\n heatmap: generateHeatmap(maps, this.props.heatmap),\n });\n optionsHeatmap(this.heatmap, this.props.heatmap);\n }\n // End Heatmap\n\n // prevent to exapose full api\n // next props must be exposed (console.log(Object.keys(pick(maps, isPlainObject))))\n // \"Animation\", \"ControlPosition\", \"MapTypeControlStyle\", \"MapTypeId\",\n // \"NavigationControlStyle\", \"ScaleControlStyle\", \"StrokePosition\",\n // \"SymbolPath\", \"ZoomControlStyle\",\n // \"event\", \"DirectionsStatus\", \"DirectionsTravelMode\", \"DirectionsUnitSystem\",\n // \"DistanceMatrixStatus\",\n // \"DistanceMatrixElementStatus\", \"ElevationStatus\", \"GeocoderLocationType\",\n // \"GeocoderStatus\", \"KmlLayerStatus\",\n // \"MaxZoomStatus\", \"StreetViewStatus\", \"TransitMode\", \"TransitRoutePreference\",\n // \"TravelMode\", \"UnitSystem\"\n const mapPlainObjects = pick(maps, isPlainObject);\n const options =\n typeof this.props.options === 'function'\n ? this.props.options(mapPlainObjects)\n : this.props.options;\n const defaultOptions = defaultOptions_(mapPlainObjects);\n\n const draggableOptions = !isEmpty(this.props.draggable) && {\n draggable: this.props.draggable,\n };\n\n const minZoom = this._computeMinZoom(options.minZoom);\n this.minZoom_ = minZoom;\n\n const preMapOptions = {\n ...defaultOptions,\n minZoom,\n ...options,\n ...propsOptions,\n };\n\n this.defaultDraggableOption_ = !isEmpty(preMapOptions.draggable)\n ? preMapOptions.draggable\n : this.defaultDraggableOption_;\n\n const mapOptions = {\n ...preMapOptions,\n ...draggableOptions,\n };\n\n mapOptions.minZoom = _checkMinZoom(mapOptions.minZoom, minZoom);\n\n const map = new maps.Map(\n ReactDOM.findDOMNode(this.googleMapDom_),\n mapOptions\n );\n\n this.map_ = map;\n this.maps_ = maps;\n\n this._setLayers(this.props.layerTypes);\n\n // Parse `google.maps.version` to capture the major version number.\n const versionMatch = maps.version.match(/^3\\.(\\d+)\\./);\n // The major version is the first (and only) captured group.\n const mapsVersion = versionMatch && Number(versionMatch[1]);\n\n // render in overlay\n const this_ = this;\n const overlay = Object.assign(new maps.OverlayView(), {\n onAdd() {\n const K_MAX_WIDTH =\n typeof screen !== 'undefined' ? `${screen.width}px` : '2000px';\n const K_MAX_HEIGHT =\n typeof screen !== 'undefined' ? `${screen.height}px` : '2000px';\n\n const div = document.createElement('div');\n div.style.backgroundColor = 'transparent';\n div.style.position = 'absolute';\n div.style.left = '0px';\n div.style.top = '0px';\n div.style.width = K_MAX_WIDTH; // prevents some chrome draw defects\n div.style.height = K_MAX_HEIGHT;\n\n if (this_.props.overlayViewDivStyle) {\n const { overlayViewDivStyle } = this_.props;\n if (typeof overlayViewDivStyle === 'object') {\n Object.keys(overlayViewDivStyle).forEach((property) => {\n div.style[property] = overlayViewDivStyle[property];\n });\n }\n }\n\n const panes = this.getPanes();\n panes.overlayMouseTarget.appendChild(div);\n this_.geoService_.setMapCanvasProjection(\n maps,\n overlay.getProjection()\n );\n\n if (!IS_REACT_16) {\n createPortal(\n this_,\n this_._renderPortal(),\n div,\n // remove prerendered markers\n () => this_.setState({ overlay: div })\n );\n } else {\n this_.setState({ overlay: div });\n }\n },\n\n onRemove() {\n const renderedOverlay = this_.state.overlay;\n if (renderedOverlay && !IS_REACT_16) {\n ReactDOM.unmountComponentAtNode(renderedOverlay);\n }\n this_.setState({ overlay: null });\n },\n\n draw() {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps, !this_.props.debounced);\n\n if (!this_.googleApiLoadedCalled_) {\n this_._onGoogleApiLoaded({ map, maps, ref: this_.googleMapDom_ });\n this_.googleApiLoadedCalled_ = true;\n }\n\n if (this_.mouse_) {\n const latLng = this_.geoService_.fromContainerPixelToLatLng(\n this_.mouse_\n );\n this_.mouse_.lat = latLng.lat;\n this_.mouse_.lng = latLng.lng;\n }\n\n this_._onChildMouseMove();\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n if (this_.fireMouseEventOnIdle_) {\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n }\n },\n });\n\n this.overlay_ = overlay;\n\n overlay.setMap(map);\n if (this.props.heatmap.positions) {\n this.heatmap.setMap(map);\n }\n\n if (this.props.onTilesLoaded) {\n maps.event.addListener(map, 'tilesloaded', () => {\n this_._onTilesLoaded();\n });\n }\n\n maps.event.addListener(map, 'zoom_changed', () => {\n // recalc position at zoom start\n if (this_.geoService_.getZoom() !== map.getZoom()) {\n if (!this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = true;\n this_._onZoomAnimationStart(map.zoom);\n }\n\n // If draw() is not called each frame during a zoom animation,\n // simulate it.\n if (mapsVersion < DRAW_CALLED_DURING_ANIMATION_VERSION) {\n const TIMEOUT_ZOOM = 300;\n\n if (\n new Date().getTime() - this.zoomControlClickTime_ <\n TIMEOUT_ZOOM\n ) {\n // there is strange Google Map Api behavior in chrome when zoom animation of map\n // is started only on second raf call, if was click on zoom control\n // or +- keys pressed, so i wait for two rafs before change state\n\n // this does not fully prevent animation jump\n // but reduce it's occurence probability\n raf(() =>\n raf(() => {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n })\n );\n } else {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n }\n }\n }\n });\n\n maps.event.addListener(map, 'idle', () => {\n if (this.resetSizeOnIdle_) {\n this._setViewSize();\n const currMinZoom = this._computeMinZoom(options.minZoom);\n\n if (currMinZoom !== this.minZoom_) {\n this.minZoom_ = currMinZoom;\n map.setOptions({ minZoom: currMinZoom });\n }\n\n this.resetSizeOnIdle_ = false;\n }\n\n if (this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = false;\n this_._onZoomAnimationEnd(map.zoom);\n }\n\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n\n this_.dragTime_ = 0;\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n }\n });\n\n maps.event.addListener(map, 'mouseover', () => {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = true;\n });\n\n // an alternative way to know the mouse is back within the map\n // This would not fire when clicking/interacting with google maps\n // own on-map countrols+markers. This handles an edge case for touch devices\n // + 'draggable:false' custom option. See #332 for more details.\n maps.event.addListener(map, 'click', () => {\n this_.mouseInMap_ = true;\n });\n\n maps.event.addListener(map, 'mouseout', () => {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = false;\n this_.mouse_ = null;\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n });\n\n maps.event.addListener(map, 'drag', () => {\n this_.dragTime_ = new Date().getTime();\n this_._onDrag(map);\n });\n\n maps.event.addListener(map, 'dragend', () => {\n // 'dragend' fires on mouse release.\n // 'idle' listener waits until drag inertia ends before firing `onDragEnd`\n const idleListener = maps.event.addListener(map, 'idle', () => {\n maps.event.removeListener(idleListener);\n this_._onDragEnd(map);\n });\n });\n // user choosing satellite vs roads, etc\n maps.event.addListener(map, 'maptypeid_changed', () => {\n this_._onMapTypeIdChange(map.getMapTypeId());\n });\n })\n .catch((e) => {\n // notify callback of load failure\n this._onGoogleApiLoaded({\n map: null,\n maps: null,\n ref: this.googleMapDom_,\n });\n console.error(e); // eslint-disable-line no-console\n throw e;\n });\n };\n\n _onGoogleApiLoaded = (...args) => {\n if (this.props.onGoogleApiLoaded) {\n if (\n process.env.NODE_ENV !== 'production' &&\n this.props.yesIWantToUseGoogleMapApiInternals !== true\n ) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line\n 'Usage of internal api objects is dangerous ' +\n 'and can cause a lot of issues.\\n' +\n 'To hide this warning add yesIWantToUseGoogleMapApiInternals={true} ' +\n 'to this.props.hoverDistance;\n\n _onDrag = (...args) => this.props.onDrag && this.props.onDrag(...args);\n\n _onDragEnd = (...args) =>\n this.props.onDragEnd && this.props.onDragEnd(...args);\n\n _onMapTypeIdChange = (...args) =>\n this.props.onMapTypeIdChange && this.props.onMapTypeIdChange(...args);\n\n _onZoomAnimationStart = (...args) =>\n this.props.onZoomAnimationStart && this.props.onZoomAnimationStart(...args);\n\n _onZoomAnimationEnd = (...args) =>\n this.props.onZoomAnimationEnd && this.props.onZoomAnimationEnd(...args);\n\n _onTilesLoaded = () => this.props.onTilesLoaded && this.props.onTilesLoaded();\n\n _onChildClick = (...args) => {\n if (this.props.onChildClick) {\n return this.props.onChildClick(...args);\n }\n return undefined;\n };\n\n _onChildMouseDown = (hoverKey, childProps) => {\n this.childMouseDownArgs_ = [hoverKey, childProps];\n if (this.props.onChildMouseDown) {\n this.props.onChildMouseDown(hoverKey, childProps, { ...this.mouse_ });\n }\n };\n\n // this method works only if this.props.onChildMouseDown was called\n _onChildMouseUp = () => {\n if (this.childMouseDownArgs_) {\n if (this.props.onChildMouseUp) {\n this.props.onChildMouseUp(...this.childMouseDownArgs_, {\n ...this.mouse_,\n });\n }\n this.childMouseDownArgs_ = null;\n this.childMouseUpTime_ = new Date().getTime();\n }\n };\n\n // this method works only if this.props.onChildMouseDown was called\n _onChildMouseMove = () => {\n if (this.childMouseDownArgs_) {\n if (this.props.onChildMouseMove) {\n this.props.onChildMouseMove(...this.childMouseDownArgs_, {\n ...this.mouse_,\n });\n }\n }\n };\n\n _onChildMouseEnter = (...args) => {\n if (this.props.onChildMouseEnter) {\n return this.props.onChildMouseEnter(...args);\n }\n return undefined;\n };\n\n _onChildMouseLeave = (...args) => {\n if (this.props.onChildMouseLeave) {\n return this.props.onChildMouseLeave(...args);\n }\n return undefined;\n };\n\n _setViewSize = () => {\n if (!this.mounted_) return;\n if (isFullScreen()) {\n this.geoService_.setViewSize(window.innerWidth, window.innerHeight);\n } else {\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n this.geoService_.setViewSize(mapDom.clientWidth, mapDom.clientHeight);\n }\n this._onBoundsChanged();\n };\n\n _onWindowResize = () => {\n this.resetSizeOnIdle_ = true;\n };\n\n _onMapMouseMove = (e) => {\n if (!this.mouseInMap_) return;\n\n const currTime = new Date().getTime();\n const K_RECALC_CLIENT_RECT_MS = 50;\n\n if (currTime - this.mouseMoveTime_ > K_RECALC_CLIENT_RECT_MS) {\n this.boundingRect_ = e.currentTarget.getBoundingClientRect();\n }\n this.mouseMoveTime_ = currTime;\n\n const mousePosX = e.clientX - this.boundingRect_.left;\n const mousePosY = e.clientY - this.boundingRect_.top;\n\n if (!this.mouse_) {\n this.mouse_ = { x: 0, y: 0, lat: 0, lng: 0 };\n }\n\n this.mouse_.x = mousePosX;\n this.mouse_.y = mousePosY;\n\n const latLng = this.geoService_.fromContainerPixelToLatLng(this.mouse_);\n this.mouse_.lat = latLng.lat;\n this.mouse_.lng = latLng.lng;\n\n this._onChildMouseMove();\n\n if (currTime - this.dragTime_ < K_IDLE_TIMEOUT) {\n this.fireMouseEventOnIdle_ = true;\n } else {\n this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n this.fireMouseEventOnIdle_ = false;\n }\n };\n\n // K_IDLE_CLICK_TIMEOUT - looks like 300 is enough\n _onClick = (...args) =>\n this.props.onClick &&\n !this.childMouseDownArgs_ &&\n new Date().getTime() - this.childMouseUpTime_ > K_IDLE_CLICK_TIMEOUT &&\n this.dragTime_ === 0 &&\n this.props.onClick(...args);\n\n _onMapClick = (event) => {\n if (this.markersDispatcher_) {\n // support touch events and recalculate mouse position on click\n this._onMapMouseMove(event);\n const currTime = new Date().getTime();\n if (currTime - this.dragTime_ > K_IDLE_TIMEOUT) {\n if (this.mouse_) {\n this._onClick({\n ...this.mouse_,\n event,\n });\n }\n\n this.markersDispatcher_.emit('kON_CLICK', event);\n }\n }\n };\n\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n _onMapMouseDownNative = (event) => {\n if (!this.mouseInMap_) return;\n\n this._onMapMouseDown(event);\n };\n\n _onMapMouseDown = (event) => {\n if (this.markersDispatcher_) {\n const currTime = new Date().getTime();\n if (currTime - this.dragTime_ > K_IDLE_TIMEOUT) {\n // Hovered marker detected at mouse move could be deleted at mouse down time\n // so it will be good to force hovered marker recalculation\n this._onMapMouseMove(event);\n this.markersDispatcher_.emit('kON_MDOWN', event);\n }\n }\n };\n\n _onMapMouseDownCapture = () => {\n if (detectBrowser().isChrome) {\n // to fix strange zoom in chrome\n this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _onKeyDownCapture = () => {\n if (detectBrowser().isChrome) {\n this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _isCenterDefined = (center) =>\n center &&\n ((isPlainObject(center) && isNumber(center.lat) && isNumber(center.lng)) ||\n (center.length === 2 && isNumber(center[0]) && isNumber(center[1])));\n\n _onBoundsChanged = (map, maps, callExtBoundsChange) => {\n if (map) {\n const gmC = map.getCenter();\n this.geoService_.setView([gmC.lat(), gmC.lng()], map.getZoom(), 0);\n }\n\n if (\n (this.props.onChange || this.props.onBoundsChange) &&\n this.geoService_.canProject()\n ) {\n const zoom = this.geoService_.getZoom();\n const bounds = this.geoService_.getBounds();\n const centerLatLng = this.geoService_.getCenter();\n\n if (!isArraysEqualEps(bounds, this.prevBounds_, kEPS)) {\n if (callExtBoundsChange !== false) {\n const marginBounds = this.geoService_.getBounds(this.props.margin);\n if (this.props.onBoundsChange) {\n this.props.onBoundsChange(\n this.centerIsObject_\n ? { ...centerLatLng }\n : [centerLatLng.lat, centerLatLng.lng],\n zoom,\n bounds,\n marginBounds\n );\n }\n\n if (this.props.onChange) {\n this.props.onChange({\n center: { ...centerLatLng },\n zoom,\n bounds: {\n nw: {\n lat: bounds[0],\n lng: bounds[1],\n },\n se: {\n lat: bounds[2],\n lng: bounds[3],\n },\n sw: {\n lat: bounds[4],\n lng: bounds[5],\n },\n ne: {\n lat: bounds[6],\n lng: bounds[7],\n },\n },\n marginBounds: {\n nw: {\n lat: marginBounds[0],\n lng: marginBounds[1],\n },\n se: {\n lat: marginBounds[2],\n lng: marginBounds[3],\n },\n sw: {\n lat: marginBounds[4],\n lng: marginBounds[5],\n },\n ne: {\n lat: marginBounds[6],\n lng: marginBounds[7],\n },\n },\n\n size: this.geoService_.hasSize()\n ? {\n width: this.geoService_.getWidth(),\n height: this.geoService_.getHeight(),\n }\n : {\n width: 0,\n height: 0,\n },\n });\n }\n\n this.prevBounds_ = bounds;\n }\n }\n }\n };\n\n _registerChild = (ref) => {\n this.googleMapDom_ = ref;\n };\n\n render() {\n const overlay = this.state.overlay;\n const mapMarkerPrerender = !overlay ? (\n \n ) : null;\n\n return (\n \n \n {IS_REACT_16 && overlay && createPortal(this._renderPortal(), overlay)}\n\n {/* render markers before map load done */}\n {mapMarkerPrerender}\n \n );\n }\n}\n\nexport default GoogleMap;\n","export const generateHeatmap = (instance, { positions }) =>\n new instance.visualization.HeatmapLayer({\n data: positions.reduce((acc, { lat, lng, weight = 1 }) => {\n acc.push({\n location: new instance.LatLng(lat, lng),\n weight,\n });\n return acc;\n }, []),\n });\n\nexport const optionsHeatmap = (instance, { options = {} }) =>\n Object.keys(options).map((option) => instance.set(option, options[option]));\n","export default function isArraysEqualEps(arrayA, arrayB, eps) {\n if (arrayA && arrayB) {\n for (let i = 0; i !== arrayA.length; ++i) {\n if (Math.abs(arrayA[i] - arrayB[i]) > eps) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n","/* eslint-env browser */\n\nimport * as React from 'react';\nimport { View } from 'react-native';\n/**\n * TODO:\n * Currently insets and frame are based on the window and are not\n * relative to the provider view. This is inconsistent with iOS and Android.\n * However in most cases if the provider view covers the screen this is not\n * an issue.\n */\n\nconst CSSTransitions = {\n WebkitTransition: 'webkitTransitionEnd',\n Transition: 'transitionEnd',\n MozTransition: 'transitionend',\n MSTransition: 'msTransitionEnd',\n OTransition: 'oTransitionEnd'\n};\nexport function NativeSafeAreaProvider({\n children,\n style,\n onInsetsChange\n}) {\n React.useEffect(() => {\n // Skip for SSR.\n if (typeof document === 'undefined') {\n return;\n }\n const element = createContextElement();\n document.body.appendChild(element);\n const onEnd = () => {\n const {\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight\n } = window.getComputedStyle(element);\n const insets = {\n top: paddingTop ? parseInt(paddingTop, 10) : 0,\n bottom: paddingBottom ? parseInt(paddingBottom, 10) : 0,\n left: paddingLeft ? parseInt(paddingLeft, 10) : 0,\n right: paddingRight ? parseInt(paddingRight, 10) : 0\n };\n const frame = {\n x: 0,\n y: 0,\n width: document.documentElement.offsetWidth,\n height: document.documentElement.offsetHeight\n };\n // @ts-ignore: missing properties\n onInsetsChange({\n nativeEvent: {\n insets,\n frame\n }\n });\n };\n element.addEventListener(getSupportedTransitionEvent(), onEnd);\n onEnd();\n return () => {\n document.body.removeChild(element);\n element.removeEventListener(getSupportedTransitionEvent(), onEnd);\n };\n }, [onInsetsChange]);\n return /*#__PURE__*/React.createElement(View, {\n style: style\n }, children);\n}\nlet _supportedTransitionEvent = null;\nfunction getSupportedTransitionEvent() {\n if (_supportedTransitionEvent != null) {\n return _supportedTransitionEvent;\n }\n const element = document.createElement('invalidtype');\n _supportedTransitionEvent = CSSTransitions.Transition;\n for (const key in CSSTransitions) {\n if (element.style[key] !== undefined) {\n _supportedTransitionEvent = CSSTransitions[key];\n break;\n }\n }\n return _supportedTransitionEvent;\n}\nlet _supportedEnv = null;\nfunction getSupportedEnv() {\n if (_supportedEnv !== null) {\n return _supportedEnv;\n }\n const {\n CSS\n } = window;\n if (CSS && CSS.supports && CSS.supports('top: constant(safe-area-inset-top)')) {\n _supportedEnv = 'constant';\n } else {\n _supportedEnv = 'env';\n }\n return _supportedEnv;\n}\nfunction getInset(side) {\n return `${getSupportedEnv()}(safe-area-inset-${side})`;\n}\nfunction createContextElement() {\n const element = document.createElement('div');\n const {\n style\n } = element;\n style.position = 'fixed';\n style.left = '0';\n style.top = '0';\n style.width = '0';\n style.height = '0';\n style.zIndex = '-1';\n style.overflow = 'hidden';\n style.visibility = 'hidden';\n // Bacon: Anything faster than this and the callback will be invoked too early with the wrong insets\n style.transitionDuration = '0.05s';\n style.transitionProperty = 'padding';\n style.transitionDelay = '0s';\n style.paddingTop = getInset('top');\n style.paddingBottom = getInset('bottom');\n style.paddingLeft = getInset('left');\n style.paddingRight = getInset('right');\n return element;\n}\n//# sourceMappingURL=NativeSafeAreaProvider.web.js.map","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { Dimensions, StyleSheet } from 'react-native';\nimport { NativeSafeAreaProvider } from './NativeSafeAreaProvider';\nconst isDev = process.env.NODE_ENV !== 'production';\nexport const SafeAreaInsetsContext = /*#__PURE__*/React.createContext(null);\nif (isDev) {\n SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n}\nexport const SafeAreaFrameContext = /*#__PURE__*/React.createContext(null);\nif (isDev) {\n SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n}\nexport function SafeAreaProvider({\n children,\n initialMetrics,\n initialSafeAreaInsets,\n style,\n ...others\n}) {\n const parentInsets = useParentSafeAreaInsets();\n const parentFrame = useParentSafeAreaFrame();\n const [insets, setInsets] = React.useState(initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? null);\n const [frame, setFrame] = React.useState(initialMetrics?.frame ?? 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 const onInsetsChange = React.useCallback(event => {\n const {\n nativeEvent: {\n frame: nextFrame,\n insets: nextInsets\n }\n } = event;\n setFrame(curFrame => {\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)) {\n return nextFrame;\n } else {\n return curFrame;\n }\n });\n setInsets(curInsets => {\n if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {\n return nextInsets;\n } else {\n return curInsets;\n }\n });\n }, []);\n return /*#__PURE__*/React.createElement(NativeSafeAreaProvider, _extends({\n style: [styles.fill, style],\n onInsetsChange: onInsetsChange\n }, others), insets != null ? /*#__PURE__*/React.createElement(SafeAreaFrameContext.Provider, {\n value: frame\n }, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Provider, {\n value: insets\n }, children)) : null);\n}\nconst styles = StyleSheet.create({\n fill: {\n flex: 1\n }\n});\nfunction useParentSafeAreaInsets() {\n return React.useContext(SafeAreaInsetsContext);\n}\nfunction useParentSafeAreaFrame() {\n return React.useContext(SafeAreaFrameContext);\n}\nconst NO_INSETS_ERROR = 'No safe area value available. Make sure you are rendering `` at the top of your app.';\nexport function useSafeAreaInsets() {\n const insets = React.useContext(SafeAreaInsetsContext);\n if (insets == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return insets;\n}\nexport function useSafeAreaFrame() {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return frame;\n}\nexport function withSafeAreaInsets(WrappedComponent) {\n return /*#__PURE__*/React.forwardRef((props, ref) => {\n const insets = useSafeAreaInsets();\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {\n insets: insets,\n ref: ref\n }));\n });\n}\n\n/**\n * @deprecated\n */\nexport function useSafeArea() {\n return useSafeAreaInsets();\n}\n\n/**\n * @deprecated\n */\nexport const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\n\n/**\n * @deprecated\n */\nexport const SafeAreaContext = SafeAreaInsetsContext;\n//# sourceMappingURL=SafeAreaContext.js.map","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\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(1b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(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()-Qa||125d?(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","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a ';\r\n }\r\n var iframeContents = '' + script + '';\r\n try {\r\n this.myIFrame.doc.open();\r\n this.myIFrame.doc.write(iframeContents);\r\n this.myIFrame.doc.close();\r\n }\r\n catch (e) {\r\n log('frame writing exception');\r\n if (e.stack) {\r\n log(e.stack);\r\n }\r\n log(e);\r\n }\r\n }\r\n else {\r\n this.commandCB = commandCB;\r\n this.onMessageCB = onMessageCB;\r\n }\r\n }\r\n /**\r\n * Each browser has its own funny way to handle iframes. Here we mush them all together into one object that I can\r\n * actually use.\r\n */\r\n FirebaseIFrameScriptHolder.createIFrame_ = function () {\r\n var iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n // This is necessary in order to initialize the document inside the iframe\r\n if (document.body) {\r\n document.body.appendChild(iframe);\r\n try {\r\n // If document.domain has been modified in IE, this will throw an error, and we need to set the\r\n // domain of the iframe's document manually. We can do this via a javascript: url as the src attribute\r\n // Also note that we must do this *after* the iframe has been appended to the page. Otherwise it doesn't work.\r\n var a = iframe.contentWindow.document;\r\n if (!a) {\r\n // Apologies for the log-spam, I need to do something to keep closure from optimizing out the assignment above.\r\n log('No IE domain setting required');\r\n }\r\n }\r\n catch (e) {\r\n var domain = document.domain;\r\n iframe.src =\r\n \"javascript:void((function(){document.open();document.domain='\" +\r\n domain +\r\n \"';document.close();})())\";\r\n }\r\n }\r\n else {\r\n // LongPollConnection attempts to delay initialization until the document is ready, so hopefully this\r\n // never gets hit.\r\n throw 'Document body has not initialized. Wait to initialize Firebase until after the document is ready.';\r\n }\r\n // Get the document of the iframe in a browser-specific way.\r\n if (iframe.contentDocument) {\r\n iframe.doc = iframe.contentDocument; // Firefox, Opera, Safari\r\n }\r\n else if (iframe.contentWindow) {\r\n iframe.doc = iframe.contentWindow.document; // Internet Explorer\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }\r\n else if (iframe.document) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n iframe.doc = iframe.document; //others?\r\n }\r\n return iframe;\r\n };\r\n /**\r\n * Cancel all outstanding queries and remove the frame.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.close = function () {\r\n var _this = this;\r\n //Mark this iframe as dead, so no new requests are sent.\r\n this.alive = false;\r\n if (this.myIFrame) {\r\n //We have to actually remove all of the html inside this iframe before removing it from the\r\n //window, or IE will continue loading and executing the script tags we've already added, which\r\n //can lead to some errors being thrown. Setting innerHTML seems to be the easiest way to do this.\r\n this.myIFrame.doc.body.innerHTML = '';\r\n setTimeout(function () {\r\n if (_this.myIFrame !== null) {\r\n document.body.removeChild(_this.myIFrame);\r\n _this.myIFrame = null;\r\n }\r\n }, Math.floor(0));\r\n }\r\n // Protect from being called recursively.\r\n var onDisconnect = this.onDisconnect;\r\n if (onDisconnect) {\r\n this.onDisconnect = null;\r\n onDisconnect();\r\n }\r\n };\r\n /**\r\n * Actually start the long-polling session by adding the first script tag(s) to the iframe.\r\n * @param id - The ID of this connection\r\n * @param pw - The password for this connection\r\n */\r\n FirebaseIFrameScriptHolder.prototype.startLongPoll = function (id, pw) {\r\n this.myID = id;\r\n this.myPW = pw;\r\n this.alive = true;\r\n //send the initial request. If there are requests queued, make sure that we transmit as many as we are currently able to.\r\n while (this.newRequest_()) { }\r\n };\r\n /**\r\n * This is called any time someone might want a script tag to be added. It adds a script tag when there aren't\r\n * too many outstanding requests and we are still alive.\r\n *\r\n * If there are outstanding packet segments to send, it sends one. If there aren't, it sends a long-poll anyways if\r\n * needed.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.newRequest_ = function () {\r\n // We keep one outstanding request open all the time to receive data, but if we need to send data\r\n // (pendingSegs.length > 0) then we create a new request to send the data. The server will automatically\r\n // close the old request.\r\n if (this.alive &&\r\n this.sendNewPolls &&\r\n this.outstandingRequests.size < (this.pendingSegs.length > 0 ? 2 : 1)) {\r\n //construct our url\r\n this.currentSerial++;\r\n var urlParams = {};\r\n urlParams[FIREBASE_LONGPOLL_ID_PARAM] = this.myID;\r\n urlParams[FIREBASE_LONGPOLL_PW_PARAM] = this.myPW;\r\n urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = this.currentSerial;\r\n var theURL = this.urlFn(urlParams);\r\n //Now add as much data as we can.\r\n var curDataString = '';\r\n var i = 0;\r\n while (this.pendingSegs.length > 0) {\r\n //first, lets see if the next segment will fit.\r\n var nextSeg = this.pendingSegs[0];\r\n if (nextSeg.d.length +\r\n SEG_HEADER_SIZE +\r\n curDataString.length <=\r\n MAX_URL_DATA_SIZE) {\r\n //great, the segment will fit. Lets append it.\r\n var theSeg = this.pendingSegs.shift();\r\n curDataString =\r\n curDataString +\r\n '&' +\r\n FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM +\r\n i +\r\n '=' +\r\n theSeg.seg +\r\n '&' +\r\n FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET +\r\n i +\r\n '=' +\r\n theSeg.ts +\r\n '&' +\r\n FIREBASE_LONGPOLL_DATA_PARAM +\r\n i +\r\n '=' +\r\n theSeg.d;\r\n i++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n theURL = theURL + curDataString;\r\n this.addLongPollTag_(theURL, this.currentSerial);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Queue a packet for transmission to the server.\r\n * @param segnum - A sequential id for this packet segment used for reassembly\r\n * @param totalsegs - The total number of segments in this packet\r\n * @param data - The data for this segment.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.enqueueSegment = function (segnum, totalsegs, data) {\r\n //add this to the queue of segments to send.\r\n this.pendingSegs.push({ seg: segnum, ts: totalsegs, d: data });\r\n //send the data immediately if there isn't already data being transmitted, unless\r\n //startLongPoll hasn't been called yet.\r\n if (this.alive) {\r\n this.newRequest_();\r\n }\r\n };\r\n /**\r\n * Add a script tag for a regular long-poll request.\r\n * @param url - The URL of the script tag.\r\n * @param serial - The serial number of the request.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.addLongPollTag_ = function (url, serial) {\r\n var _this = this;\r\n //remember that we sent this request.\r\n this.outstandingRequests.add(serial);\r\n var doNewRequest = function () {\r\n _this.outstandingRequests.delete(serial);\r\n _this.newRequest_();\r\n };\r\n // If this request doesn't return on its own accord (by the server sending us some data), we'll\r\n // create a new one after the KEEPALIVE interval to make sure we always keep a fresh request open.\r\n var keepaliveTimeout = setTimeout(doNewRequest, Math.floor(KEEPALIVE_REQUEST_INTERVAL));\r\n var readyStateCB = function () {\r\n // Request completed. Cancel the keepalive.\r\n clearTimeout(keepaliveTimeout);\r\n // Trigger a new request so we can continue receiving data.\r\n doNewRequest();\r\n };\r\n this.addTag(url, readyStateCB);\r\n };\r\n /**\r\n * Add an arbitrary script tag to the iframe.\r\n * @param url - The URL for the script tag source.\r\n * @param loadCB - A callback to be triggered once the script has loaded.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.addTag = function (url, loadCB) {\r\n var _this = this;\r\n if (isNodeSdk()) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n this.doNodeLongPoll(url, loadCB);\r\n }\r\n else {\r\n setTimeout(function () {\r\n try {\r\n // if we're already closed, don't add this poll\r\n if (!_this.sendNewPolls) {\r\n return;\r\n }\r\n var newScript_1 = _this.myIFrame.doc.createElement('script');\r\n newScript_1.type = 'text/javascript';\r\n newScript_1.async = true;\r\n newScript_1.src = url;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n newScript_1.onload = newScript_1.onreadystatechange = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var rstate = newScript_1.readyState;\r\n if (!rstate || rstate === 'loaded' || rstate === 'complete') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n newScript_1.onload = newScript_1.onreadystatechange = null;\r\n if (newScript_1.parentNode) {\r\n newScript_1.parentNode.removeChild(newScript_1);\r\n }\r\n loadCB();\r\n }\r\n };\r\n newScript_1.onerror = function () {\r\n log('Long-poll script failed to load: ' + url);\r\n _this.sendNewPolls = false;\r\n _this.close();\r\n };\r\n _this.myIFrame.doc.body.appendChild(newScript_1);\r\n }\r\n catch (e) {\r\n // TODO: we should make this error visible somehow\r\n }\r\n }, Math.floor(1));\r\n }\r\n };\r\n return FirebaseIFrameScriptHolder;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar WEBSOCKET_MAX_FRAME_SIZE = 16384;\r\nvar WEBSOCKET_KEEPALIVE_INTERVAL = 45000;\r\nvar WebSocketImpl = null;\r\nif (typeof MozWebSocket !== 'undefined') {\r\n WebSocketImpl = MozWebSocket;\r\n}\r\nelse if (typeof WebSocket !== 'undefined') {\r\n WebSocketImpl = WebSocket;\r\n}\r\n/**\r\n * Create a new websocket connection with the given callbacks.\r\n */\r\nvar WebSocketConnection = /** @class */ (function () {\r\n /**\r\n * @param connId identifier for this transport\r\n * @param repoInfo The info for the websocket endpoint.\r\n * @param applicationId The Firebase App ID for this project.\r\n * @param appCheckToken The App Check Token for this client.\r\n * @param authToken The Auth Token for this client.\r\n * @param transportSessionId Optional transportSessionId if this is connecting\r\n * to an existing transport session\r\n * @param lastSessionId Optional lastSessionId if there was a previous\r\n * connection\r\n */\r\n function WebSocketConnection(connId, repoInfo, applicationId, appCheckToken, authToken, transportSessionId, lastSessionId) {\r\n this.connId = connId;\r\n this.applicationId = applicationId;\r\n this.appCheckToken = appCheckToken;\r\n this.authToken = authToken;\r\n this.keepaliveTimer = null;\r\n this.frames = null;\r\n this.totalFrames = 0;\r\n this.bytesSent = 0;\r\n this.bytesReceived = 0;\r\n this.log_ = logWrapper(this.connId);\r\n this.stats_ = statsManagerGetCollection(repoInfo);\r\n this.connURL = WebSocketConnection.connectionURL_(repoInfo, transportSessionId, lastSessionId, appCheckToken);\r\n this.nodeAdmin = repoInfo.nodeAdmin;\r\n }\r\n /**\r\n * @param repoInfo - The info for the websocket endpoint.\r\n * @param transportSessionId - Optional transportSessionId if this is connecting to an existing transport\r\n * session\r\n * @param lastSessionId - Optional lastSessionId if there was a previous connection\r\n * @returns connection url\r\n */\r\n WebSocketConnection.connectionURL_ = function (repoInfo, transportSessionId, lastSessionId, appCheckToken) {\r\n var urlParams = {};\r\n urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\r\n if (!isNodeSdk() &&\r\n typeof location !== 'undefined' &&\r\n location.hostname &&\r\n FORGE_DOMAIN_RE.test(location.hostname)) {\r\n urlParams[REFERER_PARAM] = FORGE_REF;\r\n }\r\n if (transportSessionId) {\r\n urlParams[TRANSPORT_SESSION_PARAM] = transportSessionId;\r\n }\r\n if (lastSessionId) {\r\n urlParams[LAST_SESSION_PARAM] = lastSessionId;\r\n }\r\n if (appCheckToken) {\r\n urlParams[APP_CHECK_TOKEN_PARAM] = appCheckToken;\r\n }\r\n return repoInfoConnectionURL(repoInfo, WEBSOCKET, urlParams);\r\n };\r\n /**\r\n * @param onMessage - Callback when messages arrive\r\n * @param onDisconnect - Callback with connection lost.\r\n */\r\n WebSocketConnection.prototype.open = function (onMessage, onDisconnect) {\r\n var _this = this;\r\n this.onDisconnect = onDisconnect;\r\n this.onMessage = onMessage;\r\n this.log_('Websocket connecting to ' + this.connURL);\r\n this.everConnected_ = false;\r\n // Assume failure until proven otherwise.\r\n PersistentStorage.set('previous_websocket_failure', true);\r\n try {\r\n if (isNodeSdk()) {\r\n var device = this.nodeAdmin ? 'AdminNode' : 'Node';\r\n // UA Format: Firebase////\r\n var options = {\r\n headers: {\r\n 'User-Agent': \"Firebase/\" + PROTOCOL_VERSION + \"/\" + SDK_VERSION + \"/\" + process.platform + \"/\" + device,\r\n 'X-Firebase-GMPID': this.applicationId || ''\r\n }\r\n };\r\n // If using Node with admin creds, AppCheck-related checks are unnecessary.\r\n // Note that we send the credentials here even if they aren't admin credentials, which is\r\n // not a problem.\r\n // Note that this header is just used to bypass appcheck, and the token should still be sent\r\n // through the websocket connection once it is established.\r\n if (this.authToken) {\r\n options.headers['Authorization'] = \"Bearer \" + this.authToken;\r\n }\r\n if (this.appCheckToken) {\r\n options.headers['X-Firebase-AppCheck'] = this.appCheckToken;\r\n }\r\n // Plumb appropriate http_proxy environment variable into faye-websocket if it exists.\r\n var env = process['env'];\r\n var proxy = this.connURL.indexOf('wss://') === 0\r\n ? env['HTTPS_PROXY'] || env['https_proxy']\r\n : env['HTTP_PROXY'] || env['http_proxy'];\r\n if (proxy) {\r\n options['proxy'] = { origin: proxy };\r\n }\r\n this.mySock = new WebSocketImpl(this.connURL, [], options);\r\n }\r\n else {\r\n var options = {\r\n headers: {\r\n 'X-Firebase-GMPID': this.applicationId || '',\r\n 'X-Firebase-AppCheck': this.appCheckToken || ''\r\n }\r\n };\r\n this.mySock = new WebSocketImpl(this.connURL, [], options);\r\n }\r\n }\r\n catch (e) {\r\n this.log_('Error instantiating WebSocket.');\r\n var error = e.message || e.data;\r\n if (error) {\r\n this.log_(error);\r\n }\r\n this.onClosed_();\r\n return;\r\n }\r\n this.mySock.onopen = function () {\r\n _this.log_('Websocket connected.');\r\n _this.everConnected_ = true;\r\n };\r\n this.mySock.onclose = function () {\r\n _this.log_('Websocket connection was disconnected.');\r\n _this.mySock = null;\r\n _this.onClosed_();\r\n };\r\n this.mySock.onmessage = function (m) {\r\n _this.handleIncomingFrame(m);\r\n };\r\n this.mySock.onerror = function (e) {\r\n _this.log_('WebSocket error. Closing connection.');\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var error = e.message || e.data;\r\n if (error) {\r\n _this.log_(error);\r\n }\r\n _this.onClosed_();\r\n };\r\n };\r\n /**\r\n * No-op for websockets, we don't need to do anything once the connection is confirmed as open\r\n */\r\n WebSocketConnection.prototype.start = function () { };\r\n WebSocketConnection.forceDisallow = function () {\r\n WebSocketConnection.forceDisallow_ = true;\r\n };\r\n WebSocketConnection.isAvailable = function () {\r\n var isOldAndroid = false;\r\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\r\n var oldAndroidRegex = /Android ([0-9]{0,}\\.[0-9]{0,})/;\r\n var oldAndroidMatch = navigator.userAgent.match(oldAndroidRegex);\r\n if (oldAndroidMatch && oldAndroidMatch.length > 1) {\r\n if (parseFloat(oldAndroidMatch[1]) < 4.4) {\r\n isOldAndroid = true;\r\n }\r\n }\r\n }\r\n return (!isOldAndroid &&\r\n WebSocketImpl !== null &&\r\n !WebSocketConnection.forceDisallow_);\r\n };\r\n /**\r\n * Returns true if we previously failed to connect with this transport.\r\n */\r\n WebSocketConnection.previouslyFailed = function () {\r\n // If our persistent storage is actually only in-memory storage,\r\n // we default to assuming that it previously failed to be safe.\r\n return (PersistentStorage.isInMemoryStorage ||\r\n PersistentStorage.get('previous_websocket_failure') === true);\r\n };\r\n WebSocketConnection.prototype.markConnectionHealthy = function () {\r\n PersistentStorage.remove('previous_websocket_failure');\r\n };\r\n WebSocketConnection.prototype.appendFrame_ = function (data) {\r\n this.frames.push(data);\r\n if (this.frames.length === this.totalFrames) {\r\n var fullMess = this.frames.join('');\r\n this.frames = null;\r\n var jsonMess = jsonEval(fullMess);\r\n //handle the message\r\n this.onMessage(jsonMess);\r\n }\r\n };\r\n /**\r\n * @param frameCount - The number of frames we are expecting from the server\r\n */\r\n WebSocketConnection.prototype.handleNewFrameCount_ = function (frameCount) {\r\n this.totalFrames = frameCount;\r\n this.frames = [];\r\n };\r\n /**\r\n * Attempts to parse a frame count out of some text. If it can't, assumes a value of 1\r\n * @returns Any remaining data to be process, or null if there is none\r\n */\r\n WebSocketConnection.prototype.extractFrameCount_ = function (data) {\r\n assert(this.frames === null, 'We already have a frame buffer');\r\n // TODO: The server is only supposed to send up to 9999 frames (i.e. length <= 4), but that isn't being enforced\r\n // currently. So allowing larger frame counts (length <= 6). See https://app.asana.com/0/search/8688598998380/8237608042508\r\n if (data.length <= 6) {\r\n var frameCount = Number(data);\r\n if (!isNaN(frameCount)) {\r\n this.handleNewFrameCount_(frameCount);\r\n return null;\r\n }\r\n }\r\n this.handleNewFrameCount_(1);\r\n return data;\r\n };\r\n /**\r\n * Process a websocket frame that has arrived from the server.\r\n * @param mess - The frame data\r\n */\r\n WebSocketConnection.prototype.handleIncomingFrame = function (mess) {\r\n if (this.mySock === null) {\r\n return; // Chrome apparently delivers incoming packets even after we .close() the connection sometimes.\r\n }\r\n var data = mess['data'];\r\n this.bytesReceived += data.length;\r\n this.stats_.incrementCounter('bytes_received', data.length);\r\n this.resetKeepAlive();\r\n if (this.frames !== null) {\r\n // we're buffering\r\n this.appendFrame_(data);\r\n }\r\n else {\r\n // try to parse out a frame count, otherwise, assume 1 and process it\r\n var remainingData = this.extractFrameCount_(data);\r\n if (remainingData !== null) {\r\n this.appendFrame_(remainingData);\r\n }\r\n }\r\n };\r\n /**\r\n * Send a message to the server\r\n * @param data - The JSON object to transmit\r\n */\r\n WebSocketConnection.prototype.send = function (data) {\r\n this.resetKeepAlive();\r\n var dataStr = stringify(data);\r\n this.bytesSent += dataStr.length;\r\n this.stats_.incrementCounter('bytes_sent', dataStr.length);\r\n //We can only fit a certain amount in each websocket frame, so we need to split this request\r\n //up into multiple pieces if it doesn't fit in one request.\r\n var dataSegs = splitStringBySize(dataStr, WEBSOCKET_MAX_FRAME_SIZE);\r\n //Send the length header\r\n if (dataSegs.length > 1) {\r\n this.sendString_(String(dataSegs.length));\r\n }\r\n //Send the actual data in segments.\r\n for (var i = 0; i < dataSegs.length; i++) {\r\n this.sendString_(dataSegs[i]);\r\n }\r\n };\r\n WebSocketConnection.prototype.shutdown_ = function () {\r\n this.isClosed_ = true;\r\n if (this.keepaliveTimer) {\r\n clearInterval(this.keepaliveTimer);\r\n this.keepaliveTimer = null;\r\n }\r\n if (this.mySock) {\r\n this.mySock.close();\r\n this.mySock = null;\r\n }\r\n };\r\n WebSocketConnection.prototype.onClosed_ = function () {\r\n if (!this.isClosed_) {\r\n this.log_('WebSocket is closing itself');\r\n this.shutdown_();\r\n // since this is an internal close, trigger the close listener\r\n if (this.onDisconnect) {\r\n this.onDisconnect(this.everConnected_);\r\n this.onDisconnect = null;\r\n }\r\n }\r\n };\r\n /**\r\n * External-facing close handler.\r\n * Close the websocket and kill the connection.\r\n */\r\n WebSocketConnection.prototype.close = function () {\r\n if (!this.isClosed_) {\r\n this.log_('WebSocket is being closed');\r\n this.shutdown_();\r\n }\r\n };\r\n /**\r\n * Kill the current keepalive timer and start a new one, to ensure that it always fires N seconds after\r\n * the last activity.\r\n */\r\n WebSocketConnection.prototype.resetKeepAlive = function () {\r\n var _this = this;\r\n clearInterval(this.keepaliveTimer);\r\n this.keepaliveTimer = setInterval(function () {\r\n //If there has been no websocket activity for a while, send a no-op\r\n if (_this.mySock) {\r\n _this.sendString_('0');\r\n }\r\n _this.resetKeepAlive();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }, Math.floor(WEBSOCKET_KEEPALIVE_INTERVAL));\r\n };\r\n /**\r\n * Send a string over the websocket.\r\n *\r\n * @param str - String to send.\r\n */\r\n WebSocketConnection.prototype.sendString_ = function (str) {\r\n // Firefox seems to sometimes throw exceptions (NS_ERROR_UNEXPECTED) from websocket .send()\r\n // calls for some unknown reason. We treat these as an error and disconnect.\r\n // See https://app.asana.com/0/58926111402292/68021340250410\r\n try {\r\n this.mySock.send(str);\r\n }\r\n catch (e) {\r\n this.log_('Exception thrown from WebSocket.send():', e.message || e.data, 'Closing connection.');\r\n setTimeout(this.onClosed_.bind(this), 0);\r\n }\r\n };\r\n /**\r\n * Number of response before we consider the connection \"healthy.\"\r\n */\r\n WebSocketConnection.responsesRequiredToBeHealthy = 2;\r\n /**\r\n * Time to wait for the connection te become healthy before giving up.\r\n */\r\n WebSocketConnection.healthyTimeout = 30000;\r\n return WebSocketConnection;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Currently simplistic, this class manages what transport a Connection should use at various stages of its\r\n * lifecycle.\r\n *\r\n * It starts with longpolling in a browser, and httppolling on node. It then upgrades to websockets if\r\n * they are available.\r\n */\r\nvar TransportManager = /** @class */ (function () {\r\n /**\r\n * @param repoInfo - Metadata around the namespace we're connecting to\r\n */\r\n function TransportManager(repoInfo) {\r\n this.initTransports_(repoInfo);\r\n }\r\n Object.defineProperty(TransportManager, \"ALL_TRANSPORTS\", {\r\n get: function () {\r\n return [BrowserPollConnection, WebSocketConnection];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TransportManager.prototype.initTransports_ = function (repoInfo) {\r\n var e_1, _a;\r\n var isWebSocketsAvailable = WebSocketConnection && WebSocketConnection['isAvailable']();\r\n var isSkipPollConnection = isWebSocketsAvailable && !WebSocketConnection.previouslyFailed();\r\n if (repoInfo.webSocketOnly) {\r\n if (!isWebSocketsAvailable) {\r\n warn(\"wss:// URL used, but browser isn't known to support websockets. Trying anyway.\");\r\n }\r\n isSkipPollConnection = true;\r\n }\r\n if (isSkipPollConnection) {\r\n this.transports_ = [WebSocketConnection];\r\n }\r\n else {\r\n var transports = (this.transports_ = []);\r\n try {\r\n for (var _b = __values(TransportManager.ALL_TRANSPORTS), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var transport = _c.value;\r\n if (transport && transport['isAvailable']()) {\r\n transports.push(transport);\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n };\r\n /**\r\n * @returns The constructor for the initial transport to use\r\n */\r\n TransportManager.prototype.initialTransport = function () {\r\n if (this.transports_.length > 0) {\r\n return this.transports_[0];\r\n }\r\n else {\r\n throw new Error('No transports available');\r\n }\r\n };\r\n /**\r\n * @returns The constructor for the next transport, or null\r\n */\r\n TransportManager.prototype.upgradeTransport = function () {\r\n if (this.transports_.length > 1) {\r\n return this.transports_[1];\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n return TransportManager;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Abort upgrade attempt if it takes longer than 60s.\r\nvar UPGRADE_TIMEOUT = 60000;\r\n// For some transports (WebSockets), we need to \"validate\" the transport by exchanging a few requests and responses.\r\n// If we haven't sent enough requests within 5s, we'll start sending noop ping requests.\r\nvar DELAY_BEFORE_SENDING_EXTRA_REQUESTS = 5000;\r\n// If the initial data sent triggers a lot of bandwidth (i.e. it's a large put or a listen for a large amount of data)\r\n// then we may not be able to exchange our ping/pong requests within the healthy timeout. So if we reach the timeout\r\n// but we've sent/received enough bytes, we don't cancel the connection.\r\nvar BYTES_SENT_HEALTHY_OVERRIDE = 10 * 1024;\r\nvar BYTES_RECEIVED_HEALTHY_OVERRIDE = 100 * 1024;\r\nvar MESSAGE_TYPE = 't';\r\nvar MESSAGE_DATA = 'd';\r\nvar CONTROL_SHUTDOWN = 's';\r\nvar CONTROL_RESET = 'r';\r\nvar CONTROL_ERROR = 'e';\r\nvar CONTROL_PONG = 'o';\r\nvar SWITCH_ACK = 'a';\r\nvar END_TRANSMISSION = 'n';\r\nvar PING = 'p';\r\nvar SERVER_HELLO = 'h';\r\n/**\r\n * Creates a new real-time connection to the server using whichever method works\r\n * best in the current browser.\r\n */\r\nvar Connection = /** @class */ (function () {\r\n /**\r\n * @param id - an id for this connection\r\n * @param repoInfo_ - the info for the endpoint to connect to\r\n * @param applicationId_ - the Firebase App ID for this project\r\n * @param appCheckToken_ - The App Check Token for this device.\r\n * @param authToken_ - The auth token for this session.\r\n * @param onMessage_ - the callback to be triggered when a server-push message arrives\r\n * @param onReady_ - the callback to be triggered when this connection is ready to send messages.\r\n * @param onDisconnect_ - the callback to be triggered when a connection was lost\r\n * @param onKill_ - the callback to be triggered when this connection has permanently shut down.\r\n * @param lastSessionId - last session id in persistent connection. is used to clean up old session in real-time server\r\n */\r\n function Connection(id, repoInfo_, applicationId_, appCheckToken_, authToken_, onMessage_, onReady_, onDisconnect_, onKill_, lastSessionId) {\r\n this.id = id;\r\n this.repoInfo_ = repoInfo_;\r\n this.applicationId_ = applicationId_;\r\n this.appCheckToken_ = appCheckToken_;\r\n this.authToken_ = authToken_;\r\n this.onMessage_ = onMessage_;\r\n this.onReady_ = onReady_;\r\n this.onDisconnect_ = onDisconnect_;\r\n this.onKill_ = onKill_;\r\n this.lastSessionId = lastSessionId;\r\n this.connectionCount = 0;\r\n this.pendingDataMessages = [];\r\n this.state_ = 0 /* CONNECTING */;\r\n this.log_ = logWrapper('c:' + this.id + ':');\r\n this.transportManager_ = new TransportManager(repoInfo_);\r\n this.log_('Connection created');\r\n this.start_();\r\n }\r\n /**\r\n * Starts a connection attempt\r\n */\r\n Connection.prototype.start_ = function () {\r\n var _this = this;\r\n var conn = this.transportManager_.initialTransport();\r\n this.conn_ = new conn(this.nextTransportId_(), this.repoInfo_, this.applicationId_, this.appCheckToken_, this.authToken_, null, this.lastSessionId);\r\n // For certain transports (WebSockets), we need to send and receive several messages back and forth before we\r\n // can consider the transport healthy.\r\n this.primaryResponsesRequired_ = conn['responsesRequiredToBeHealthy'] || 0;\r\n var onMessageReceived = this.connReceiver_(this.conn_);\r\n var onConnectionLost = this.disconnReceiver_(this.conn_);\r\n this.tx_ = this.conn_;\r\n this.rx_ = this.conn_;\r\n this.secondaryConn_ = null;\r\n this.isHealthy_ = false;\r\n /*\r\n * Firefox doesn't like when code from one iframe tries to create another iframe by way of the parent frame.\r\n * This can occur in the case of a redirect, i.e. we guessed wrong on what server to connect to and received a reset.\r\n * Somehow, setTimeout seems to make this ok. That doesn't make sense from a security perspective, since you should\r\n * still have the context of your originating frame.\r\n */\r\n setTimeout(function () {\r\n // this.conn_ gets set to null in some of the tests. Check to make sure it still exists before using it\r\n _this.conn_ && _this.conn_.open(onMessageReceived, onConnectionLost);\r\n }, Math.floor(0));\r\n var healthyTimeoutMS = conn['healthyTimeout'] || 0;\r\n if (healthyTimeoutMS > 0) {\r\n this.healthyTimeout_ = setTimeoutNonBlocking(function () {\r\n _this.healthyTimeout_ = null;\r\n if (!_this.isHealthy_) {\r\n if (_this.conn_ &&\r\n _this.conn_.bytesReceived > BYTES_RECEIVED_HEALTHY_OVERRIDE) {\r\n _this.log_('Connection exceeded healthy timeout but has received ' +\r\n _this.conn_.bytesReceived +\r\n ' bytes. Marking connection healthy.');\r\n _this.isHealthy_ = true;\r\n _this.conn_.markConnectionHealthy();\r\n }\r\n else if (_this.conn_ &&\r\n _this.conn_.bytesSent > BYTES_SENT_HEALTHY_OVERRIDE) {\r\n _this.log_('Connection exceeded healthy timeout but has sent ' +\r\n _this.conn_.bytesSent +\r\n ' bytes. Leaving connection alive.');\r\n // NOTE: We don't want to mark it healthy, since we have no guarantee that the bytes have made it to\r\n // the server.\r\n }\r\n else {\r\n _this.log_('Closing unhealthy connection after timeout.');\r\n _this.close();\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }, Math.floor(healthyTimeoutMS));\r\n }\r\n };\r\n Connection.prototype.nextTransportId_ = function () {\r\n return 'c:' + this.id + ':' + this.connectionCount++;\r\n };\r\n Connection.prototype.disconnReceiver_ = function (conn) {\r\n var _this = this;\r\n return function (everConnected) {\r\n if (conn === _this.conn_) {\r\n _this.onConnectionLost_(everConnected);\r\n }\r\n else if (conn === _this.secondaryConn_) {\r\n _this.log_('Secondary connection lost.');\r\n _this.onSecondaryConnectionLost_();\r\n }\r\n else {\r\n _this.log_('closing an old connection');\r\n }\r\n };\r\n };\r\n Connection.prototype.connReceiver_ = function (conn) {\r\n var _this = this;\r\n return function (message) {\r\n if (_this.state_ !== 2 /* DISCONNECTED */) {\r\n if (conn === _this.rx_) {\r\n _this.onPrimaryMessageReceived_(message);\r\n }\r\n else if (conn === _this.secondaryConn_) {\r\n _this.onSecondaryMessageReceived_(message);\r\n }\r\n else {\r\n _this.log_('message on old connection');\r\n }\r\n }\r\n };\r\n };\r\n /**\r\n * @param dataMsg - An arbitrary data message to be sent to the server\r\n */\r\n Connection.prototype.sendRequest = function (dataMsg) {\r\n // wrap in a data message envelope and send it on\r\n var msg = { t: 'd', d: dataMsg };\r\n this.sendData_(msg);\r\n };\r\n Connection.prototype.tryCleanupConnection = function () {\r\n if (this.tx_ === this.secondaryConn_ && this.rx_ === this.secondaryConn_) {\r\n this.log_('cleaning up and promoting a connection: ' + this.secondaryConn_.connId);\r\n this.conn_ = this.secondaryConn_;\r\n this.secondaryConn_ = null;\r\n // the server will shutdown the old connection\r\n }\r\n };\r\n Connection.prototype.onSecondaryControl_ = function (controlData) {\r\n if (MESSAGE_TYPE in controlData) {\r\n var cmd = controlData[MESSAGE_TYPE];\r\n if (cmd === SWITCH_ACK) {\r\n this.upgradeIfSecondaryHealthy_();\r\n }\r\n else if (cmd === CONTROL_RESET) {\r\n // Most likely the session wasn't valid. Abandon the switch attempt\r\n this.log_('Got a reset on secondary, closing it');\r\n this.secondaryConn_.close();\r\n // If we were already using this connection for something, than we need to fully close\r\n if (this.tx_ === this.secondaryConn_ ||\r\n this.rx_ === this.secondaryConn_) {\r\n this.close();\r\n }\r\n }\r\n else if (cmd === CONTROL_PONG) {\r\n this.log_('got pong on secondary.');\r\n this.secondaryResponsesRequired_--;\r\n this.upgradeIfSecondaryHealthy_();\r\n }\r\n }\r\n };\r\n Connection.prototype.onSecondaryMessageReceived_ = function (parsedData) {\r\n var layer = requireKey('t', parsedData);\r\n var data = requireKey('d', parsedData);\r\n if (layer === 'c') {\r\n this.onSecondaryControl_(data);\r\n }\r\n else if (layer === 'd') {\r\n // got a data message, but we're still second connection. Need to buffer it up\r\n this.pendingDataMessages.push(data);\r\n }\r\n else {\r\n throw new Error('Unknown protocol layer: ' + layer);\r\n }\r\n };\r\n Connection.prototype.upgradeIfSecondaryHealthy_ = function () {\r\n if (this.secondaryResponsesRequired_ <= 0) {\r\n this.log_('Secondary connection is healthy.');\r\n this.isHealthy_ = true;\r\n this.secondaryConn_.markConnectionHealthy();\r\n this.proceedWithUpgrade_();\r\n }\r\n else {\r\n // Send a ping to make sure the connection is healthy.\r\n this.log_('sending ping on secondary.');\r\n this.secondaryConn_.send({ t: 'c', d: { t: PING, d: {} } });\r\n }\r\n };\r\n Connection.prototype.proceedWithUpgrade_ = function () {\r\n // tell this connection to consider itself open\r\n this.secondaryConn_.start();\r\n // send ack\r\n this.log_('sending client ack on secondary');\r\n this.secondaryConn_.send({ t: 'c', d: { t: SWITCH_ACK, d: {} } });\r\n // send end packet on primary transport, switch to sending on this one\r\n // can receive on this one, buffer responses until end received on primary transport\r\n this.log_('Ending transmission on primary');\r\n this.conn_.send({ t: 'c', d: { t: END_TRANSMISSION, d: {} } });\r\n this.tx_ = this.secondaryConn_;\r\n this.tryCleanupConnection();\r\n };\r\n Connection.prototype.onPrimaryMessageReceived_ = function (parsedData) {\r\n // Must refer to parsedData properties in quotes, so closure doesn't touch them.\r\n var layer = requireKey('t', parsedData);\r\n var data = requireKey('d', parsedData);\r\n if (layer === 'c') {\r\n this.onControl_(data);\r\n }\r\n else if (layer === 'd') {\r\n this.onDataMessage_(data);\r\n }\r\n };\r\n Connection.prototype.onDataMessage_ = function (message) {\r\n this.onPrimaryResponse_();\r\n // We don't do anything with data messages, just kick them up a level\r\n this.onMessage_(message);\r\n };\r\n Connection.prototype.onPrimaryResponse_ = function () {\r\n if (!this.isHealthy_) {\r\n this.primaryResponsesRequired_--;\r\n if (this.primaryResponsesRequired_ <= 0) {\r\n this.log_('Primary connection is healthy.');\r\n this.isHealthy_ = true;\r\n this.conn_.markConnectionHealthy();\r\n }\r\n }\r\n };\r\n Connection.prototype.onControl_ = function (controlData) {\r\n var cmd = requireKey(MESSAGE_TYPE, controlData);\r\n if (MESSAGE_DATA in controlData) {\r\n var payload = controlData[MESSAGE_DATA];\r\n if (cmd === SERVER_HELLO) {\r\n this.onHandshake_(payload);\r\n }\r\n else if (cmd === END_TRANSMISSION) {\r\n this.log_('recvd end transmission on primary');\r\n this.rx_ = this.secondaryConn_;\r\n for (var i = 0; i < this.pendingDataMessages.length; ++i) {\r\n this.onDataMessage_(this.pendingDataMessages[i]);\r\n }\r\n this.pendingDataMessages = [];\r\n this.tryCleanupConnection();\r\n }\r\n else if (cmd === CONTROL_SHUTDOWN) {\r\n // This was previously the 'onKill' callback passed to the lower-level connection\r\n // payload in this case is the reason for the shutdown. Generally a human-readable error\r\n this.onConnectionShutdown_(payload);\r\n }\r\n else if (cmd === CONTROL_RESET) {\r\n // payload in this case is the host we should contact\r\n this.onReset_(payload);\r\n }\r\n else if (cmd === CONTROL_ERROR) {\r\n error('Server Error: ' + payload);\r\n }\r\n else if (cmd === CONTROL_PONG) {\r\n this.log_('got pong on primary.');\r\n this.onPrimaryResponse_();\r\n this.sendPingOnPrimaryIfNecessary_();\r\n }\r\n else {\r\n error('Unknown control packet command: ' + cmd);\r\n }\r\n }\r\n };\r\n /**\r\n * @param handshake - The handshake data returned from the server\r\n */\r\n Connection.prototype.onHandshake_ = function (handshake) {\r\n var timestamp = handshake.ts;\r\n var version = handshake.v;\r\n var host = handshake.h;\r\n this.sessionId = handshake.s;\r\n this.repoInfo_.host = host;\r\n // if we've already closed the connection, then don't bother trying to progress further\r\n if (this.state_ === 0 /* CONNECTING */) {\r\n this.conn_.start();\r\n this.onConnectionEstablished_(this.conn_, timestamp);\r\n if (PROTOCOL_VERSION !== version) {\r\n warn('Protocol version mismatch detected');\r\n }\r\n // TODO: do we want to upgrade? when? maybe a delay?\r\n this.tryStartUpgrade_();\r\n }\r\n };\r\n Connection.prototype.tryStartUpgrade_ = function () {\r\n var conn = this.transportManager_.upgradeTransport();\r\n if (conn) {\r\n this.startUpgrade_(conn);\r\n }\r\n };\r\n Connection.prototype.startUpgrade_ = function (conn) {\r\n var _this = this;\r\n this.secondaryConn_ = new conn(this.nextTransportId_(), this.repoInfo_, this.applicationId_, this.appCheckToken_, this.authToken_, this.sessionId);\r\n // For certain transports (WebSockets), we need to send and receive several messages back and forth before we\r\n // can consider the transport healthy.\r\n this.secondaryResponsesRequired_ =\r\n conn['responsesRequiredToBeHealthy'] || 0;\r\n var onMessage = this.connReceiver_(this.secondaryConn_);\r\n var onDisconnect = this.disconnReceiver_(this.secondaryConn_);\r\n this.secondaryConn_.open(onMessage, onDisconnect);\r\n // If we haven't successfully upgraded after UPGRADE_TIMEOUT, give up and kill the secondary.\r\n setTimeoutNonBlocking(function () {\r\n if (_this.secondaryConn_) {\r\n _this.log_('Timed out trying to upgrade.');\r\n _this.secondaryConn_.close();\r\n }\r\n }, Math.floor(UPGRADE_TIMEOUT));\r\n };\r\n Connection.prototype.onReset_ = function (host) {\r\n this.log_('Reset packet received. New host: ' + host);\r\n this.repoInfo_.host = host;\r\n // TODO: if we're already \"connected\", we need to trigger a disconnect at the next layer up.\r\n // We don't currently support resets after the connection has already been established\r\n if (this.state_ === 1 /* CONNECTED */) {\r\n this.close();\r\n }\r\n else {\r\n // Close whatever connections we have open and start again.\r\n this.closeConnections_();\r\n this.start_();\r\n }\r\n };\r\n Connection.prototype.onConnectionEstablished_ = function (conn, timestamp) {\r\n var _this = this;\r\n this.log_('Realtime connection established.');\r\n this.conn_ = conn;\r\n this.state_ = 1 /* CONNECTED */;\r\n if (this.onReady_) {\r\n this.onReady_(timestamp, this.sessionId);\r\n this.onReady_ = null;\r\n }\r\n // If after 5 seconds we haven't sent enough requests to the server to get the connection healthy,\r\n // send some pings.\r\n if (this.primaryResponsesRequired_ === 0) {\r\n this.log_('Primary connection is healthy.');\r\n this.isHealthy_ = true;\r\n }\r\n else {\r\n setTimeoutNonBlocking(function () {\r\n _this.sendPingOnPrimaryIfNecessary_();\r\n }, Math.floor(DELAY_BEFORE_SENDING_EXTRA_REQUESTS));\r\n }\r\n };\r\n Connection.prototype.sendPingOnPrimaryIfNecessary_ = function () {\r\n // If the connection isn't considered healthy yet, we'll send a noop ping packet request.\r\n if (!this.isHealthy_ && this.state_ === 1 /* CONNECTED */) {\r\n this.log_('sending ping on primary.');\r\n this.sendData_({ t: 'c', d: { t: PING, d: {} } });\r\n }\r\n };\r\n Connection.prototype.onSecondaryConnectionLost_ = function () {\r\n var conn = this.secondaryConn_;\r\n this.secondaryConn_ = null;\r\n if (this.tx_ === conn || this.rx_ === conn) {\r\n // we are relying on this connection already in some capacity. Therefore, a failure is real\r\n this.close();\r\n }\r\n };\r\n /**\r\n * @param everConnected - Whether or not the connection ever reached a server. Used to determine if\r\n * we should flush the host cache\r\n */\r\n Connection.prototype.onConnectionLost_ = function (everConnected) {\r\n this.conn_ = null;\r\n // NOTE: IF you're seeing a Firefox error for this line, I think it might be because it's getting\r\n // called on window close and RealtimeState.CONNECTING is no longer defined. Just a guess.\r\n if (!everConnected && this.state_ === 0 /* CONNECTING */) {\r\n this.log_('Realtime connection failed.');\r\n // Since we failed to connect at all, clear any cached entry for this namespace in case the machine went away\r\n if (this.repoInfo_.isCacheableHost()) {\r\n PersistentStorage.remove('host:' + this.repoInfo_.host);\r\n // reset the internal host to what we would show the user, i.e. .firebaseio.com\r\n this.repoInfo_.internalHost = this.repoInfo_.host;\r\n }\r\n }\r\n else if (this.state_ === 1 /* CONNECTED */) {\r\n this.log_('Realtime connection lost.');\r\n }\r\n this.close();\r\n };\r\n Connection.prototype.onConnectionShutdown_ = function (reason) {\r\n this.log_('Connection shutdown command received. Shutting down...');\r\n if (this.onKill_) {\r\n this.onKill_(reason);\r\n this.onKill_ = null;\r\n }\r\n // We intentionally don't want to fire onDisconnect (kill is a different case),\r\n // so clear the callback.\r\n this.onDisconnect_ = null;\r\n this.close();\r\n };\r\n Connection.prototype.sendData_ = function (data) {\r\n if (this.state_ !== 1 /* CONNECTED */) {\r\n throw 'Connection is not connected';\r\n }\r\n else {\r\n this.tx_.send(data);\r\n }\r\n };\r\n /**\r\n * Cleans up this connection, calling the appropriate callbacks\r\n */\r\n Connection.prototype.close = function () {\r\n if (this.state_ !== 2 /* DISCONNECTED */) {\r\n this.log_('Closing realtime connection.');\r\n this.state_ = 2 /* DISCONNECTED */;\r\n this.closeConnections_();\r\n if (this.onDisconnect_) {\r\n this.onDisconnect_();\r\n this.onDisconnect_ = null;\r\n }\r\n }\r\n };\r\n Connection.prototype.closeConnections_ = function () {\r\n this.log_('Shutting down all connections');\r\n if (this.conn_) {\r\n this.conn_.close();\r\n this.conn_ = null;\r\n }\r\n if (this.secondaryConn_) {\r\n this.secondaryConn_.close();\r\n this.secondaryConn_ = null;\r\n }\r\n if (this.healthyTimeout_) {\r\n clearTimeout(this.healthyTimeout_);\r\n this.healthyTimeout_ = null;\r\n }\r\n };\r\n return Connection;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Interface defining the set of actions that can be performed against the Firebase server\r\n * (basically corresponds to our wire protocol).\r\n *\r\n * @interface\r\n */\r\nvar ServerActions = /** @class */ (function () {\r\n function ServerActions() {\r\n }\r\n ServerActions.prototype.put = function (pathString, data, onComplete, hash) { };\r\n ServerActions.prototype.merge = function (pathString, data, onComplete, hash) { };\r\n /**\r\n * Refreshes the auth token for the current connection.\r\n * @param token - The authentication token\r\n */\r\n ServerActions.prototype.refreshAuthToken = function (token) { };\r\n /**\r\n * Refreshes the app check token for the current connection.\r\n * @param token The app check token\r\n */\r\n ServerActions.prototype.refreshAppCheckToken = function (token) { };\r\n ServerActions.prototype.onDisconnectPut = function (pathString, data, onComplete) { };\r\n ServerActions.prototype.onDisconnectMerge = function (pathString, data, onComplete) { };\r\n ServerActions.prototype.onDisconnectCancel = function (pathString, onComplete) { };\r\n ServerActions.prototype.reportStats = function (stats) { };\r\n return ServerActions;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Base class to be used if you want to emit events. Call the constructor with\r\n * the set of allowed event names.\r\n */\r\nvar EventEmitter = /** @class */ (function () {\r\n function EventEmitter(allowedEvents_) {\r\n this.allowedEvents_ = allowedEvents_;\r\n this.listeners_ = {};\r\n assert(Array.isArray(allowedEvents_) && allowedEvents_.length > 0, 'Requires a non-empty array');\r\n }\r\n /**\r\n * To be called by derived classes to trigger events.\r\n */\r\n EventEmitter.prototype.trigger = function (eventType) {\r\n var varArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n varArgs[_i - 1] = arguments[_i];\r\n }\r\n if (Array.isArray(this.listeners_[eventType])) {\r\n // Clone the list, since callbacks could add/remove listeners.\r\n var listeners = __spreadArray([], __read(this.listeners_[eventType]));\r\n for (var i = 0; i < listeners.length; i++) {\r\n listeners[i].callback.apply(listeners[i].context, varArgs);\r\n }\r\n }\r\n };\r\n EventEmitter.prototype.on = function (eventType, callback, context) {\r\n this.validateEventType_(eventType);\r\n this.listeners_[eventType] = this.listeners_[eventType] || [];\r\n this.listeners_[eventType].push({ callback: callback, context: context });\r\n var eventData = this.getInitialEvent(eventType);\r\n if (eventData) {\r\n callback.apply(context, eventData);\r\n }\r\n };\r\n EventEmitter.prototype.off = function (eventType, callback, context) {\r\n this.validateEventType_(eventType);\r\n var listeners = this.listeners_[eventType] || [];\r\n for (var i = 0; i < listeners.length; i++) {\r\n if (listeners[i].callback === callback &&\r\n (!context || context === listeners[i].context)) {\r\n listeners.splice(i, 1);\r\n return;\r\n }\r\n }\r\n };\r\n EventEmitter.prototype.validateEventType_ = function (eventType) {\r\n assert(this.allowedEvents_.find(function (et) {\r\n return et === eventType;\r\n }), 'Unknown event: ' + eventType);\r\n };\r\n return EventEmitter;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Monitors online state (as reported by window.online/offline events).\r\n *\r\n * The expectation is that this could have many false positives (thinks we are online\r\n * when we're not), but no false negatives. So we can safely use it to determine when\r\n * we definitely cannot reach the internet.\r\n */\r\nvar OnlineMonitor = /** @class */ (function (_super) {\r\n __extends(OnlineMonitor, _super);\r\n function OnlineMonitor() {\r\n var _this = _super.call(this, ['online']) || this;\r\n _this.online_ = true;\r\n // We've had repeated complaints that Cordova apps can get stuck \"offline\", e.g.\r\n // https://forum.ionicframework.com/t/firebase-connection-is-lost-and-never-come-back/43810\r\n // It would seem that the 'online' event does not always fire consistently. So we disable it\r\n // for Cordova.\r\n if (typeof window !== 'undefined' &&\r\n typeof window.addEventListener !== 'undefined' &&\r\n !isMobileCordova()) {\r\n window.addEventListener('online', function () {\r\n if (!_this.online_) {\r\n _this.online_ = true;\r\n _this.trigger('online', true);\r\n }\r\n }, false);\r\n window.addEventListener('offline', function () {\r\n if (_this.online_) {\r\n _this.online_ = false;\r\n _this.trigger('online', false);\r\n }\r\n }, false);\r\n }\r\n return _this;\r\n }\r\n OnlineMonitor.getInstance = function () {\r\n return new OnlineMonitor();\r\n };\r\n OnlineMonitor.prototype.getInitialEvent = function (eventType) {\r\n assert(eventType === 'online', 'Unknown event type: ' + eventType);\r\n return [this.online_];\r\n };\r\n OnlineMonitor.prototype.currentlyOnline = function () {\r\n return this.online_;\r\n };\r\n return OnlineMonitor;\r\n}(EventEmitter));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Maximum key depth. */\r\nvar MAX_PATH_DEPTH = 32;\r\n/** Maximum number of (UTF8) bytes in a Firebase path. */\r\nvar MAX_PATH_LENGTH_BYTES = 768;\r\n/**\r\n * An immutable object representing a parsed path. It's immutable so that you\r\n * can pass them around to other functions without worrying about them changing\r\n * it.\r\n */\r\nvar Path = /** @class */ (function () {\r\n /**\r\n * @param pathOrString - Path string to parse, or another path, or the raw\r\n * tokens array\r\n */\r\n function Path(pathOrString, pieceNum) {\r\n if (pieceNum === void 0) {\r\n this.pieces_ = pathOrString.split('/');\r\n // Remove empty pieces.\r\n var copyTo = 0;\r\n for (var i = 0; i < this.pieces_.length; i++) {\r\n if (this.pieces_[i].length > 0) {\r\n this.pieces_[copyTo] = this.pieces_[i];\r\n copyTo++;\r\n }\r\n }\r\n this.pieces_.length = copyTo;\r\n this.pieceNum_ = 0;\r\n }\r\n else {\r\n this.pieces_ = pathOrString;\r\n this.pieceNum_ = pieceNum;\r\n }\r\n }\r\n Path.prototype.toString = function () {\r\n var pathString = '';\r\n for (var i = this.pieceNum_; i < this.pieces_.length; i++) {\r\n if (this.pieces_[i] !== '') {\r\n pathString += '/' + this.pieces_[i];\r\n }\r\n }\r\n return pathString || '/';\r\n };\r\n return Path;\r\n}());\r\nfunction newEmptyPath() {\r\n return new Path('');\r\n}\r\nfunction pathGetFront(path) {\r\n if (path.pieceNum_ >= path.pieces_.length) {\r\n return null;\r\n }\r\n return path.pieces_[path.pieceNum_];\r\n}\r\n/**\r\n * @returns The number of segments in this path\r\n */\r\nfunction pathGetLength(path) {\r\n return path.pieces_.length - path.pieceNum_;\r\n}\r\nfunction pathPopFront(path) {\r\n var pieceNum = path.pieceNum_;\r\n if (pieceNum < path.pieces_.length) {\r\n pieceNum++;\r\n }\r\n return new Path(path.pieces_, pieceNum);\r\n}\r\nfunction pathGetBack(path) {\r\n if (path.pieceNum_ < path.pieces_.length) {\r\n return path.pieces_[path.pieces_.length - 1];\r\n }\r\n return null;\r\n}\r\nfunction pathToUrlEncodedString(path) {\r\n var pathString = '';\r\n for (var i = path.pieceNum_; i < path.pieces_.length; i++) {\r\n if (path.pieces_[i] !== '') {\r\n pathString += '/' + encodeURIComponent(String(path.pieces_[i]));\r\n }\r\n }\r\n return pathString || '/';\r\n}\r\n/**\r\n * Shallow copy of the parts of the path.\r\n *\r\n */\r\nfunction pathSlice(path, begin) {\r\n if (begin === void 0) { begin = 0; }\r\n return path.pieces_.slice(path.pieceNum_ + begin);\r\n}\r\nfunction pathParent(path) {\r\n if (path.pieceNum_ >= path.pieces_.length) {\r\n return null;\r\n }\r\n var pieces = [];\r\n for (var i = path.pieceNum_; i < path.pieces_.length - 1; i++) {\r\n pieces.push(path.pieces_[i]);\r\n }\r\n return new Path(pieces, 0);\r\n}\r\nfunction pathChild(path, childPathObj) {\r\n var pieces = [];\r\n for (var i = path.pieceNum_; i < path.pieces_.length; i++) {\r\n pieces.push(path.pieces_[i]);\r\n }\r\n if (childPathObj instanceof Path) {\r\n for (var i = childPathObj.pieceNum_; i < childPathObj.pieces_.length; i++) {\r\n pieces.push(childPathObj.pieces_[i]);\r\n }\r\n }\r\n else {\r\n var childPieces = childPathObj.split('/');\r\n for (var i = 0; i < childPieces.length; i++) {\r\n if (childPieces[i].length > 0) {\r\n pieces.push(childPieces[i]);\r\n }\r\n }\r\n }\r\n return new Path(pieces, 0);\r\n}\r\n/**\r\n * @returns True if there are no segments in this path\r\n */\r\nfunction pathIsEmpty(path) {\r\n return path.pieceNum_ >= path.pieces_.length;\r\n}\r\n/**\r\n * @returns The path from outerPath to innerPath\r\n */\r\nfunction newRelativePath(outerPath, innerPath) {\r\n var outer = pathGetFront(outerPath), inner = pathGetFront(innerPath);\r\n if (outer === null) {\r\n return innerPath;\r\n }\r\n else if (outer === inner) {\r\n return newRelativePath(pathPopFront(outerPath), pathPopFront(innerPath));\r\n }\r\n else {\r\n throw new Error('INTERNAL ERROR: innerPath (' +\r\n innerPath +\r\n ') is not within ' +\r\n 'outerPath (' +\r\n outerPath +\r\n ')');\r\n }\r\n}\r\n/**\r\n * @returns -1, 0, 1 if left is less, equal, or greater than the right.\r\n */\r\nfunction pathCompare(left, right) {\r\n var leftKeys = pathSlice(left, 0);\r\n var rightKeys = pathSlice(right, 0);\r\n for (var i = 0; i < leftKeys.length && i < rightKeys.length; i++) {\r\n var cmp = nameCompare(leftKeys[i], rightKeys[i]);\r\n if (cmp !== 0) {\r\n return cmp;\r\n }\r\n }\r\n if (leftKeys.length === rightKeys.length) {\r\n return 0;\r\n }\r\n return leftKeys.length < rightKeys.length ? -1 : 1;\r\n}\r\n/**\r\n * @returns true if paths are the same.\r\n */\r\nfunction pathEquals(path, other) {\r\n if (pathGetLength(path) !== pathGetLength(other)) {\r\n return false;\r\n }\r\n for (var i = path.pieceNum_, j = other.pieceNum_; i <= path.pieces_.length; i++, j++) {\r\n if (path.pieces_[i] !== other.pieces_[j]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * @returns True if this path is a parent (or the same as) other\r\n */\r\nfunction pathContains(path, other) {\r\n var i = path.pieceNum_;\r\n var j = other.pieceNum_;\r\n if (pathGetLength(path) > pathGetLength(other)) {\r\n return false;\r\n }\r\n while (i < path.pieces_.length) {\r\n if (path.pieces_[i] !== other.pieces_[j]) {\r\n return false;\r\n }\r\n ++i;\r\n ++j;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Dynamic (mutable) path used to count path lengths.\r\n *\r\n * This class is used to efficiently check paths for valid\r\n * length (in UTF8 bytes) and depth (used in path validation).\r\n *\r\n * Throws Error exception if path is ever invalid.\r\n *\r\n * The definition of a path always begins with '/'.\r\n */\r\nvar ValidationPath = /** @class */ (function () {\r\n /**\r\n * @param path - Initial Path.\r\n * @param errorPrefix_ - Prefix for any error messages.\r\n */\r\n function ValidationPath(path, errorPrefix_) {\r\n this.errorPrefix_ = errorPrefix_;\r\n this.parts_ = pathSlice(path, 0);\r\n /** Initialize to number of '/' chars needed in path. */\r\n this.byteLength_ = Math.max(1, this.parts_.length);\r\n for (var i = 0; i < this.parts_.length; i++) {\r\n this.byteLength_ += stringLength(this.parts_[i]);\r\n }\r\n validationPathCheckValid(this);\r\n }\r\n return ValidationPath;\r\n}());\r\nfunction validationPathPush(validationPath, child) {\r\n // Count the needed '/'\r\n if (validationPath.parts_.length > 0) {\r\n validationPath.byteLength_ += 1;\r\n }\r\n validationPath.parts_.push(child);\r\n validationPath.byteLength_ += stringLength(child);\r\n validationPathCheckValid(validationPath);\r\n}\r\nfunction validationPathPop(validationPath) {\r\n var last = validationPath.parts_.pop();\r\n validationPath.byteLength_ -= stringLength(last);\r\n // Un-count the previous '/'\r\n if (validationPath.parts_.length > 0) {\r\n validationPath.byteLength_ -= 1;\r\n }\r\n}\r\nfunction validationPathCheckValid(validationPath) {\r\n if (validationPath.byteLength_ > MAX_PATH_LENGTH_BYTES) {\r\n throw new Error(validationPath.errorPrefix_ +\r\n 'has a key path longer than ' +\r\n MAX_PATH_LENGTH_BYTES +\r\n ' bytes (' +\r\n validationPath.byteLength_ +\r\n ').');\r\n }\r\n if (validationPath.parts_.length > MAX_PATH_DEPTH) {\r\n throw new Error(validationPath.errorPrefix_ +\r\n 'path specified exceeds the maximum depth that can be written (' +\r\n MAX_PATH_DEPTH +\r\n ') or object contains a cycle ' +\r\n validationPathToErrorString(validationPath));\r\n }\r\n}\r\n/**\r\n * String for use in error messages - uses '.' notation for path.\r\n */\r\nfunction validationPathToErrorString(validationPath) {\r\n if (validationPath.parts_.length === 0) {\r\n return '';\r\n }\r\n return \"in property '\" + validationPath.parts_.join('.') + \"'\";\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar VisibilityMonitor = /** @class */ (function (_super) {\r\n __extends(VisibilityMonitor, _super);\r\n function VisibilityMonitor() {\r\n var _this = _super.call(this, ['visible']) || this;\r\n var hidden;\r\n var visibilityChange;\r\n if (typeof document !== 'undefined' &&\r\n typeof document.addEventListener !== 'undefined') {\r\n if (typeof document['hidden'] !== 'undefined') {\r\n // Opera 12.10 and Firefox 18 and later support\r\n visibilityChange = 'visibilitychange';\r\n hidden = 'hidden';\r\n }\r\n else if (typeof document['mozHidden'] !== 'undefined') {\r\n visibilityChange = 'mozvisibilitychange';\r\n hidden = 'mozHidden';\r\n }\r\n else if (typeof document['msHidden'] !== 'undefined') {\r\n visibilityChange = 'msvisibilitychange';\r\n hidden = 'msHidden';\r\n }\r\n else if (typeof document['webkitHidden'] !== 'undefined') {\r\n visibilityChange = 'webkitvisibilitychange';\r\n hidden = 'webkitHidden';\r\n }\r\n }\r\n // Initially, we always assume we are visible. This ensures that in browsers\r\n // without page visibility support or in cases where we are never visible\r\n // (e.g. chrome extension), we act as if we are visible, i.e. don't delay\r\n // reconnects\r\n _this.visible_ = true;\r\n if (visibilityChange) {\r\n document.addEventListener(visibilityChange, function () {\r\n var visible = !document[hidden];\r\n if (visible !== _this.visible_) {\r\n _this.visible_ = visible;\r\n _this.trigger('visible', visible);\r\n }\r\n }, false);\r\n }\r\n return _this;\r\n }\r\n VisibilityMonitor.getInstance = function () {\r\n return new VisibilityMonitor();\r\n };\r\n VisibilityMonitor.prototype.getInitialEvent = function (eventType) {\r\n assert(eventType === 'visible', 'Unknown event type: ' + eventType);\r\n return [this.visible_];\r\n };\r\n return VisibilityMonitor;\r\n}(EventEmitter));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar RECONNECT_MIN_DELAY = 1000;\r\nvar RECONNECT_MAX_DELAY_DEFAULT = 60 * 5 * 1000; // 5 minutes in milliseconds (Case: 1858)\r\nvar GET_CONNECT_TIMEOUT = 3 * 1000;\r\nvar RECONNECT_MAX_DELAY_FOR_ADMINS = 30 * 1000; // 30 seconds for admin clients (likely to be a backend server)\r\nvar RECONNECT_DELAY_MULTIPLIER = 1.3;\r\nvar RECONNECT_DELAY_RESET_TIMEOUT = 30000; // Reset delay back to MIN_DELAY after being connected for 30sec.\r\nvar SERVER_KILL_INTERRUPT_REASON = 'server_kill';\r\n// If auth fails repeatedly, we'll assume something is wrong and log a warning / back off.\r\nvar INVALID_TOKEN_THRESHOLD = 3;\r\n/**\r\n * Firebase connection. Abstracts wire protocol and handles reconnecting.\r\n *\r\n * NOTE: All JSON objects sent to the realtime connection must have property names enclosed\r\n * in quotes to make sure the closure compiler does not minify them.\r\n */\r\nvar PersistentConnection = /** @class */ (function (_super) {\r\n __extends(PersistentConnection, _super);\r\n /**\r\n * @param repoInfo_ - Data about the namespace we are connecting to\r\n * @param applicationId_ - The Firebase App ID for this project\r\n * @param onDataUpdate_ - A callback for new data from the server\r\n */\r\n function PersistentConnection(repoInfo_, applicationId_, onDataUpdate_, onConnectStatus_, onServerInfoUpdate_, authTokenProvider_, appCheckTokenProvider_, authOverride_) {\r\n var _this = _super.call(this) || this;\r\n _this.repoInfo_ = repoInfo_;\r\n _this.applicationId_ = applicationId_;\r\n _this.onDataUpdate_ = onDataUpdate_;\r\n _this.onConnectStatus_ = onConnectStatus_;\r\n _this.onServerInfoUpdate_ = onServerInfoUpdate_;\r\n _this.authTokenProvider_ = authTokenProvider_;\r\n _this.appCheckTokenProvider_ = appCheckTokenProvider_;\r\n _this.authOverride_ = authOverride_;\r\n // Used for diagnostic logging.\r\n _this.id = PersistentConnection.nextPersistentConnectionId_++;\r\n _this.log_ = logWrapper('p:' + _this.id + ':');\r\n _this.interruptReasons_ = {};\r\n _this.listens = new Map();\r\n _this.outstandingPuts_ = [];\r\n _this.outstandingGets_ = [];\r\n _this.outstandingPutCount_ = 0;\r\n _this.outstandingGetCount_ = 0;\r\n _this.onDisconnectRequestQueue_ = [];\r\n _this.connected_ = false;\r\n _this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n _this.maxReconnectDelay_ = RECONNECT_MAX_DELAY_DEFAULT;\r\n _this.securityDebugCallback_ = null;\r\n _this.lastSessionId = null;\r\n _this.establishConnectionTimer_ = null;\r\n _this.visible_ = false;\r\n // Before we get connected, we keep a queue of pending messages to send.\r\n _this.requestCBHash_ = {};\r\n _this.requestNumber_ = 0;\r\n _this.realtime_ = null;\r\n _this.authToken_ = null;\r\n _this.appCheckToken_ = null;\r\n _this.forceTokenRefresh_ = false;\r\n _this.invalidAuthTokenCount_ = 0;\r\n _this.invalidAppCheckTokenCount_ = 0;\r\n _this.firstConnection_ = true;\r\n _this.lastConnectionAttemptTime_ = null;\r\n _this.lastConnectionEstablishedTime_ = null;\r\n if (authOverride_ && !isNodeSdk()) {\r\n throw new Error('Auth override specified in options, but not supported on non Node.js platforms');\r\n }\r\n VisibilityMonitor.getInstance().on('visible', _this.onVisible_, _this);\r\n if (repoInfo_.host.indexOf('fblocal') === -1) {\r\n OnlineMonitor.getInstance().on('online', _this.onOnline_, _this);\r\n }\r\n return _this;\r\n }\r\n PersistentConnection.prototype.sendRequest = function (action, body, onResponse) {\r\n var curReqNum = ++this.requestNumber_;\r\n var msg = { r: curReqNum, a: action, b: body };\r\n this.log_(stringify(msg));\r\n assert(this.connected_, \"sendRequest call when we're not connected not allowed.\");\r\n this.realtime_.sendRequest(msg);\r\n if (onResponse) {\r\n this.requestCBHash_[curReqNum] = onResponse;\r\n }\r\n };\r\n PersistentConnection.prototype.get = function (query) {\r\n var _this = this;\r\n this.initConnection_();\r\n var deferred = new Deferred();\r\n var request = {\r\n p: query._path.toString(),\r\n q: query._queryObject\r\n };\r\n var outstandingGet = {\r\n action: 'g',\r\n request: request,\r\n onComplete: function (message) {\r\n var payload = message['d'];\r\n if (message['s'] === 'ok') {\r\n _this.onDataUpdate_(request['p'], payload, \r\n /*isMerge*/ false, \r\n /*tag*/ null);\r\n deferred.resolve(payload);\r\n }\r\n else {\r\n deferred.reject(payload);\r\n }\r\n }\r\n };\r\n this.outstandingGets_.push(outstandingGet);\r\n this.outstandingGetCount_++;\r\n var index = this.outstandingGets_.length - 1;\r\n if (!this.connected_) {\r\n setTimeout(function () {\r\n var get = _this.outstandingGets_[index];\r\n if (get === undefined || outstandingGet !== get) {\r\n return;\r\n }\r\n delete _this.outstandingGets_[index];\r\n _this.outstandingGetCount_--;\r\n if (_this.outstandingGetCount_ === 0) {\r\n _this.outstandingGets_ = [];\r\n }\r\n _this.log_('get ' + index + ' timed out on connection');\r\n deferred.reject(new Error('Client is offline.'));\r\n }, GET_CONNECT_TIMEOUT);\r\n }\r\n if (this.connected_) {\r\n this.sendGet_(index);\r\n }\r\n return deferred.promise;\r\n };\r\n PersistentConnection.prototype.listen = function (query, currentHashFn, tag, onComplete) {\r\n this.initConnection_();\r\n var queryId = query._queryIdentifier;\r\n var pathString = query._path.toString();\r\n this.log_('Listen called for ' + pathString + ' ' + queryId);\r\n if (!this.listens.has(pathString)) {\r\n this.listens.set(pathString, new Map());\r\n }\r\n assert(query._queryParams.isDefault() || !query._queryParams.loadsAllData(), 'listen() called for non-default but complete query');\r\n assert(!this.listens.get(pathString).has(queryId), 'listen() called twice for same path/queryId.');\r\n var listenSpec = {\r\n onComplete: onComplete,\r\n hashFn: currentHashFn,\r\n query: query,\r\n tag: tag\r\n };\r\n this.listens.get(pathString).set(queryId, listenSpec);\r\n if (this.connected_) {\r\n this.sendListen_(listenSpec);\r\n }\r\n };\r\n PersistentConnection.prototype.sendGet_ = function (index) {\r\n var _this = this;\r\n var get = this.outstandingGets_[index];\r\n this.sendRequest('g', get.request, function (message) {\r\n delete _this.outstandingGets_[index];\r\n _this.outstandingGetCount_--;\r\n if (_this.outstandingGetCount_ === 0) {\r\n _this.outstandingGets_ = [];\r\n }\r\n if (get.onComplete) {\r\n get.onComplete(message);\r\n }\r\n });\r\n };\r\n PersistentConnection.prototype.sendListen_ = function (listenSpec) {\r\n var _this = this;\r\n var query = listenSpec.query;\r\n var pathString = query._path.toString();\r\n var queryId = query._queryIdentifier;\r\n this.log_('Listen on ' + pathString + ' for ' + queryId);\r\n var req = { /*path*/ p: pathString };\r\n var action = 'q';\r\n // Only bother to send query if it's non-default.\r\n if (listenSpec.tag) {\r\n req['q'] = query._queryObject;\r\n req['t'] = listenSpec.tag;\r\n }\r\n req[ /*hash*/'h'] = listenSpec.hashFn();\r\n this.sendRequest(action, req, function (message) {\r\n var payload = message[ /*data*/'d'];\r\n var status = message[ /*status*/'s'];\r\n // print warnings in any case...\r\n PersistentConnection.warnOnListenWarnings_(payload, query);\r\n var currentListenSpec = _this.listens.get(pathString) &&\r\n _this.listens.get(pathString).get(queryId);\r\n // only trigger actions if the listen hasn't been removed and readded\r\n if (currentListenSpec === listenSpec) {\r\n _this.log_('listen response', message);\r\n if (status !== 'ok') {\r\n _this.removeListen_(pathString, queryId);\r\n }\r\n if (listenSpec.onComplete) {\r\n listenSpec.onComplete(status, payload);\r\n }\r\n }\r\n });\r\n };\r\n PersistentConnection.warnOnListenWarnings_ = function (payload, query) {\r\n if (payload && typeof payload === 'object' && contains(payload, 'w')) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var warnings = safeGet(payload, 'w');\r\n if (Array.isArray(warnings) && ~warnings.indexOf('no_index')) {\r\n var indexSpec = '\".indexOn\": \"' + query._queryParams.getIndex().toString() + '\"';\r\n var indexPath = query._path.toString();\r\n warn(\"Using an unspecified index. Your data will be downloaded and \" +\r\n (\"filtered on the client. Consider adding \" + indexSpec + \" at \") +\r\n (indexPath + \" to your security rules for better performance.\"));\r\n }\r\n }\r\n };\r\n PersistentConnection.prototype.refreshAuthToken = function (token) {\r\n this.authToken_ = token;\r\n this.log_('Auth token refreshed');\r\n if (this.authToken_) {\r\n this.tryAuth();\r\n }\r\n else {\r\n //If we're connected we want to let the server know to unauthenticate us. If we're not connected, simply delete\r\n //the credential so we dont become authenticated next time we connect.\r\n if (this.connected_) {\r\n this.sendRequest('unauth', {}, function () { });\r\n }\r\n }\r\n this.reduceReconnectDelayIfAdminCredential_(token);\r\n };\r\n PersistentConnection.prototype.reduceReconnectDelayIfAdminCredential_ = function (credential) {\r\n // NOTE: This isn't intended to be bulletproof (a malicious developer can always just modify the client).\r\n // Additionally, we don't bother resetting the max delay back to the default if auth fails / expires.\r\n var isFirebaseSecret = credential && credential.length === 40;\r\n if (isFirebaseSecret || isAdmin(credential)) {\r\n this.log_('Admin auth credential detected. Reducing max reconnect time.');\r\n this.maxReconnectDelay_ = RECONNECT_MAX_DELAY_FOR_ADMINS;\r\n }\r\n };\r\n PersistentConnection.prototype.refreshAppCheckToken = function (token) {\r\n this.appCheckToken_ = token;\r\n this.log_('App check token refreshed');\r\n if (this.appCheckToken_) {\r\n this.tryAppCheck();\r\n }\r\n else {\r\n //If we're connected we want to let the server know to unauthenticate us.\r\n //If we're not connected, simply delete the credential so we dont become\r\n // authenticated next time we connect.\r\n if (this.connected_) {\r\n this.sendRequest('unappeck', {}, function () { });\r\n }\r\n }\r\n };\r\n /**\r\n * Attempts to authenticate with the given credentials. If the authentication attempt fails, it's triggered like\r\n * a auth revoked (the connection is closed).\r\n */\r\n PersistentConnection.prototype.tryAuth = function () {\r\n var _this = this;\r\n if (this.connected_ && this.authToken_) {\r\n var token_1 = this.authToken_;\r\n var authMethod = isValidFormat(token_1) ? 'auth' : 'gauth';\r\n var requestData = { cred: token_1 };\r\n if (this.authOverride_ === null) {\r\n requestData['noauth'] = true;\r\n }\r\n else if (typeof this.authOverride_ === 'object') {\r\n requestData['authvar'] = this.authOverride_;\r\n }\r\n this.sendRequest(authMethod, requestData, function (res) {\r\n var status = res[ /*status*/'s'];\r\n var data = res[ /*data*/'d'] || 'error';\r\n if (_this.authToken_ === token_1) {\r\n if (status === 'ok') {\r\n _this.invalidAuthTokenCount_ = 0;\r\n }\r\n else {\r\n // Triggers reconnect and force refresh for auth token\r\n _this.onAuthRevoked_(status, data);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Attempts to authenticate with the given token. If the authentication\r\n * attempt fails, it's triggered like the token was revoked (the connection is\r\n * closed).\r\n */\r\n PersistentConnection.prototype.tryAppCheck = function () {\r\n var _this = this;\r\n if (this.connected_ && this.appCheckToken_) {\r\n this.sendRequest('appcheck', { 'token': this.appCheckToken_ }, function (res) {\r\n var status = res[ /*status*/'s'];\r\n var data = res[ /*data*/'d'] || 'error';\r\n if (status === 'ok') {\r\n _this.invalidAppCheckTokenCount_ = 0;\r\n }\r\n else {\r\n _this.onAppCheckRevoked_(status, data);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n PersistentConnection.prototype.unlisten = function (query, tag) {\r\n var pathString = query._path.toString();\r\n var queryId = query._queryIdentifier;\r\n this.log_('Unlisten called for ' + pathString + ' ' + queryId);\r\n assert(query._queryParams.isDefault() || !query._queryParams.loadsAllData(), 'unlisten() called for non-default but complete query');\r\n var listen = this.removeListen_(pathString, queryId);\r\n if (listen && this.connected_) {\r\n this.sendUnlisten_(pathString, queryId, query._queryObject, tag);\r\n }\r\n };\r\n PersistentConnection.prototype.sendUnlisten_ = function (pathString, queryId, queryObj, tag) {\r\n this.log_('Unlisten on ' + pathString + ' for ' + queryId);\r\n var req = { /*path*/ p: pathString };\r\n var action = 'n';\r\n // Only bother sending queryId if it's non-default.\r\n if (tag) {\r\n req['q'] = queryObj;\r\n req['t'] = tag;\r\n }\r\n this.sendRequest(action, req);\r\n };\r\n PersistentConnection.prototype.onDisconnectPut = function (pathString, data, onComplete) {\r\n this.initConnection_();\r\n if (this.connected_) {\r\n this.sendOnDisconnect_('o', pathString, data, onComplete);\r\n }\r\n else {\r\n this.onDisconnectRequestQueue_.push({\r\n pathString: pathString,\r\n action: 'o',\r\n data: data,\r\n onComplete: onComplete\r\n });\r\n }\r\n };\r\n PersistentConnection.prototype.onDisconnectMerge = function (pathString, data, onComplete) {\r\n this.initConnection_();\r\n if (this.connected_) {\r\n this.sendOnDisconnect_('om', pathString, data, onComplete);\r\n }\r\n else {\r\n this.onDisconnectRequestQueue_.push({\r\n pathString: pathString,\r\n action: 'om',\r\n data: data,\r\n onComplete: onComplete\r\n });\r\n }\r\n };\r\n PersistentConnection.prototype.onDisconnectCancel = function (pathString, onComplete) {\r\n this.initConnection_();\r\n if (this.connected_) {\r\n this.sendOnDisconnect_('oc', pathString, null, onComplete);\r\n }\r\n else {\r\n this.onDisconnectRequestQueue_.push({\r\n pathString: pathString,\r\n action: 'oc',\r\n data: null,\r\n onComplete: onComplete\r\n });\r\n }\r\n };\r\n PersistentConnection.prototype.sendOnDisconnect_ = function (action, pathString, data, onComplete) {\r\n var request = { /*path*/ p: pathString, /*data*/ d: data };\r\n this.log_('onDisconnect ' + action, request);\r\n this.sendRequest(action, request, function (response) {\r\n if (onComplete) {\r\n setTimeout(function () {\r\n onComplete(response[ /*status*/'s'], response[ /* data */'d']);\r\n }, Math.floor(0));\r\n }\r\n });\r\n };\r\n PersistentConnection.prototype.put = function (pathString, data, onComplete, hash) {\r\n this.putInternal('p', pathString, data, onComplete, hash);\r\n };\r\n PersistentConnection.prototype.merge = function (pathString, data, onComplete, hash) {\r\n this.putInternal('m', pathString, data, onComplete, hash);\r\n };\r\n PersistentConnection.prototype.putInternal = function (action, pathString, data, onComplete, hash) {\r\n this.initConnection_();\r\n var request = {\r\n /*path*/ p: pathString,\r\n /*data*/ d: data\r\n };\r\n if (hash !== undefined) {\r\n request[ /*hash*/'h'] = hash;\r\n }\r\n // TODO: Only keep track of the most recent put for a given path?\r\n this.outstandingPuts_.push({\r\n action: action,\r\n request: request,\r\n onComplete: onComplete\r\n });\r\n this.outstandingPutCount_++;\r\n var index = this.outstandingPuts_.length - 1;\r\n if (this.connected_) {\r\n this.sendPut_(index);\r\n }\r\n else {\r\n this.log_('Buffering put: ' + pathString);\r\n }\r\n };\r\n PersistentConnection.prototype.sendPut_ = function (index) {\r\n var _this = this;\r\n var action = this.outstandingPuts_[index].action;\r\n var request = this.outstandingPuts_[index].request;\r\n var onComplete = this.outstandingPuts_[index].onComplete;\r\n this.outstandingPuts_[index].queued = this.connected_;\r\n this.sendRequest(action, request, function (message) {\r\n _this.log_(action + ' response', message);\r\n delete _this.outstandingPuts_[index];\r\n _this.outstandingPutCount_--;\r\n // Clean up array occasionally.\r\n if (_this.outstandingPutCount_ === 0) {\r\n _this.outstandingPuts_ = [];\r\n }\r\n if (onComplete) {\r\n onComplete(message[ /*status*/'s'], message[ /* data */'d']);\r\n }\r\n });\r\n };\r\n PersistentConnection.prototype.reportStats = function (stats) {\r\n var _this = this;\r\n // If we're not connected, we just drop the stats.\r\n if (this.connected_) {\r\n var request = { /*counters*/ c: stats };\r\n this.log_('reportStats', request);\r\n this.sendRequest(/*stats*/ 's', request, function (result) {\r\n var status = result[ /*status*/'s'];\r\n if (status !== 'ok') {\r\n var errorReason = result[ /* data */'d'];\r\n _this.log_('reportStats', 'Error sending stats: ' + errorReason);\r\n }\r\n });\r\n }\r\n };\r\n PersistentConnection.prototype.onDataMessage_ = function (message) {\r\n if ('r' in message) {\r\n // this is a response\r\n this.log_('from server: ' + stringify(message));\r\n var reqNum = message['r'];\r\n var onResponse = this.requestCBHash_[reqNum];\r\n if (onResponse) {\r\n delete this.requestCBHash_[reqNum];\r\n onResponse(message[ /*body*/'b']);\r\n }\r\n }\r\n else if ('error' in message) {\r\n throw 'A server-side error has occurred: ' + message['error'];\r\n }\r\n else if ('a' in message) {\r\n // a and b are action and body, respectively\r\n this.onDataPush_(message['a'], message['b']);\r\n }\r\n };\r\n PersistentConnection.prototype.onDataPush_ = function (action, body) {\r\n this.log_('handleServerMessage', action, body);\r\n if (action === 'd') {\r\n this.onDataUpdate_(body[ /*path*/'p'], body[ /*data*/'d'], \r\n /*isMerge*/ false, body['t']);\r\n }\r\n else if (action === 'm') {\r\n this.onDataUpdate_(body[ /*path*/'p'], body[ /*data*/'d'], \r\n /*isMerge=*/ true, body['t']);\r\n }\r\n else if (action === 'c') {\r\n this.onListenRevoked_(body[ /*path*/'p'], body[ /*query*/'q']);\r\n }\r\n else if (action === 'ac') {\r\n this.onAuthRevoked_(body[ /*status code*/'s'], body[ /* explanation */'d']);\r\n }\r\n else if (action === 'apc') {\r\n this.onAppCheckRevoked_(body[ /*status code*/'s'], body[ /* explanation */'d']);\r\n }\r\n else if (action === 'sd') {\r\n this.onSecurityDebugPacket_(body);\r\n }\r\n else {\r\n error('Unrecognized action received from server: ' +\r\n stringify(action) +\r\n '\\nAre you using the latest client?');\r\n }\r\n };\r\n PersistentConnection.prototype.onReady_ = function (timestamp, sessionId) {\r\n this.log_('connection ready');\r\n this.connected_ = true;\r\n this.lastConnectionEstablishedTime_ = new Date().getTime();\r\n this.handleTimestamp_(timestamp);\r\n this.lastSessionId = sessionId;\r\n if (this.firstConnection_) {\r\n this.sendConnectStats_();\r\n }\r\n this.restoreState_();\r\n this.firstConnection_ = false;\r\n this.onConnectStatus_(true);\r\n };\r\n PersistentConnection.prototype.scheduleConnect_ = function (timeout) {\r\n var _this = this;\r\n assert(!this.realtime_, \"Scheduling a connect when we're already connected/ing?\");\r\n if (this.establishConnectionTimer_) {\r\n clearTimeout(this.establishConnectionTimer_);\r\n }\r\n // NOTE: Even when timeout is 0, it's important to do a setTimeout to work around an infuriating \"Security Error\" in\r\n // Firefox when trying to write to our long-polling iframe in some scenarios (e.g. Forge or our unit tests).\r\n this.establishConnectionTimer_ = setTimeout(function () {\r\n _this.establishConnectionTimer_ = null;\r\n _this.establishConnection_();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }, Math.floor(timeout));\r\n };\r\n PersistentConnection.prototype.initConnection_ = function () {\r\n if (!this.realtime_ && this.firstConnection_) {\r\n this.scheduleConnect_(0);\r\n }\r\n };\r\n PersistentConnection.prototype.onVisible_ = function (visible) {\r\n // NOTE: Tabbing away and back to a window will defeat our reconnect backoff, but I think that's fine.\r\n if (visible &&\r\n !this.visible_ &&\r\n this.reconnectDelay_ === this.maxReconnectDelay_) {\r\n this.log_('Window became visible. Reducing delay.');\r\n this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n if (!this.realtime_) {\r\n this.scheduleConnect_(0);\r\n }\r\n }\r\n this.visible_ = visible;\r\n };\r\n PersistentConnection.prototype.onOnline_ = function (online) {\r\n if (online) {\r\n this.log_('Browser went online.');\r\n this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n if (!this.realtime_) {\r\n this.scheduleConnect_(0);\r\n }\r\n }\r\n else {\r\n this.log_('Browser went offline. Killing connection.');\r\n if (this.realtime_) {\r\n this.realtime_.close();\r\n }\r\n }\r\n };\r\n PersistentConnection.prototype.onRealtimeDisconnect_ = function () {\r\n this.log_('data client disconnected');\r\n this.connected_ = false;\r\n this.realtime_ = null;\r\n // Since we don't know if our sent transactions succeeded or not, we need to cancel them.\r\n this.cancelSentTransactions_();\r\n // Clear out the pending requests.\r\n this.requestCBHash_ = {};\r\n if (this.shouldReconnect_()) {\r\n if (!this.visible_) {\r\n this.log_(\"Window isn't visible. Delaying reconnect.\");\r\n this.reconnectDelay_ = this.maxReconnectDelay_;\r\n this.lastConnectionAttemptTime_ = new Date().getTime();\r\n }\r\n else if (this.lastConnectionEstablishedTime_) {\r\n // If we've been connected long enough, reset reconnect delay to minimum.\r\n var timeSinceLastConnectSucceeded = new Date().getTime() - this.lastConnectionEstablishedTime_;\r\n if (timeSinceLastConnectSucceeded > RECONNECT_DELAY_RESET_TIMEOUT) {\r\n this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n }\r\n this.lastConnectionEstablishedTime_ = null;\r\n }\r\n var timeSinceLastConnectAttempt = new Date().getTime() - this.lastConnectionAttemptTime_;\r\n var reconnectDelay = Math.max(0, this.reconnectDelay_ - timeSinceLastConnectAttempt);\r\n reconnectDelay = Math.random() * reconnectDelay;\r\n this.log_('Trying to reconnect in ' + reconnectDelay + 'ms');\r\n this.scheduleConnect_(reconnectDelay);\r\n // Adjust reconnect delay for next time.\r\n this.reconnectDelay_ = Math.min(this.maxReconnectDelay_, this.reconnectDelay_ * RECONNECT_DELAY_MULTIPLIER);\r\n }\r\n this.onConnectStatus_(false);\r\n };\r\n PersistentConnection.prototype.establishConnection_ = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var onDataMessage, onReady, onDisconnect_1, connId, lastSessionId, canceled_1, connection_1, closeFn, sendRequestFn, forceRefresh, _a, authToken, appCheckToken, error_1;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!this.shouldReconnect_()) return [3 /*break*/, 4];\r\n this.log_('Making a connection attempt');\r\n this.lastConnectionAttemptTime_ = new Date().getTime();\r\n this.lastConnectionEstablishedTime_ = null;\r\n onDataMessage = this.onDataMessage_.bind(this);\r\n onReady = this.onReady_.bind(this);\r\n onDisconnect_1 = this.onRealtimeDisconnect_.bind(this);\r\n connId = this.id + ':' + PersistentConnection.nextConnectionId_++;\r\n lastSessionId = this.lastSessionId;\r\n canceled_1 = false;\r\n connection_1 = null;\r\n closeFn = function () {\r\n if (connection_1) {\r\n connection_1.close();\r\n }\r\n else {\r\n canceled_1 = true;\r\n onDisconnect_1();\r\n }\r\n };\r\n sendRequestFn = function (msg) {\r\n assert(connection_1, \"sendRequest call when we're not connected not allowed.\");\r\n connection_1.sendRequest(msg);\r\n };\r\n this.realtime_ = {\r\n close: closeFn,\r\n sendRequest: sendRequestFn\r\n };\r\n forceRefresh = this.forceTokenRefresh_;\r\n this.forceTokenRefresh_ = false;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, Promise.all([\r\n this.authTokenProvider_.getToken(forceRefresh),\r\n this.appCheckTokenProvider_.getToken(forceRefresh)\r\n ])];\r\n case 2:\r\n _a = __read.apply(void 0, [_b.sent(), 2]), authToken = _a[0], appCheckToken = _a[1];\r\n if (!canceled_1) {\r\n log('getToken() completed. Creating connection.');\r\n this.authToken_ = authToken && authToken.accessToken;\r\n this.appCheckToken_ = appCheckToken && appCheckToken.token;\r\n connection_1 = new Connection(connId, this.repoInfo_, this.applicationId_, this.appCheckToken_, this.authToken_, onDataMessage, onReady, onDisconnect_1, \r\n /* onKill= */ function (reason) {\r\n warn(reason + ' (' + _this.repoInfo_.toString() + ')');\r\n _this.interrupt(SERVER_KILL_INTERRUPT_REASON);\r\n }, lastSessionId);\r\n }\r\n else {\r\n log('getToken() completed but was canceled');\r\n }\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_1 = _b.sent();\r\n this.log_('Failed to get token: ' + error_1);\r\n if (!canceled_1) {\r\n if (this.repoInfo_.nodeAdmin) {\r\n // This may be a critical error for the Admin Node.js SDK, so log a warning.\r\n // But getToken() may also just have temporarily failed, so we still want to\r\n // continue retrying.\r\n warn(error_1);\r\n }\r\n closeFn();\r\n }\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n PersistentConnection.prototype.interrupt = function (reason) {\r\n log('Interrupting connection for reason: ' + reason);\r\n this.interruptReasons_[reason] = true;\r\n if (this.realtime_) {\r\n this.realtime_.close();\r\n }\r\n else {\r\n if (this.establishConnectionTimer_) {\r\n clearTimeout(this.establishConnectionTimer_);\r\n this.establishConnectionTimer_ = null;\r\n }\r\n if (this.connected_) {\r\n this.onRealtimeDisconnect_();\r\n }\r\n }\r\n };\r\n PersistentConnection.prototype.resume = function (reason) {\r\n log('Resuming connection for reason: ' + reason);\r\n delete this.interruptReasons_[reason];\r\n if (isEmpty(this.interruptReasons_)) {\r\n this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n if (!this.realtime_) {\r\n this.scheduleConnect_(0);\r\n }\r\n }\r\n };\r\n PersistentConnection.prototype.handleTimestamp_ = function (timestamp) {\r\n var delta = timestamp - new Date().getTime();\r\n this.onServerInfoUpdate_({ serverTimeOffset: delta });\r\n };\r\n PersistentConnection.prototype.cancelSentTransactions_ = function () {\r\n for (var i = 0; i < this.outstandingPuts_.length; i++) {\r\n var put = this.outstandingPuts_[i];\r\n if (put && /*hash*/ 'h' in put.request && put.queued) {\r\n if (put.onComplete) {\r\n put.onComplete('disconnect');\r\n }\r\n delete this.outstandingPuts_[i];\r\n this.outstandingPutCount_--;\r\n }\r\n }\r\n // Clean up array occasionally.\r\n if (this.outstandingPutCount_ === 0) {\r\n this.outstandingPuts_ = [];\r\n }\r\n };\r\n PersistentConnection.prototype.onListenRevoked_ = function (pathString, query) {\r\n // Remove the listen and manufacture a \"permission_denied\" error for the failed listen.\r\n var queryId;\r\n if (!query) {\r\n queryId = 'default';\r\n }\r\n else {\r\n queryId = query.map(function (q) { return ObjectToUniqueKey(q); }).join('$');\r\n }\r\n var listen = this.removeListen_(pathString, queryId);\r\n if (listen && listen.onComplete) {\r\n listen.onComplete('permission_denied');\r\n }\r\n };\r\n PersistentConnection.prototype.removeListen_ = function (pathString, queryId) {\r\n var normalizedPathString = new Path(pathString).toString(); // normalize path.\r\n var listen;\r\n if (this.listens.has(normalizedPathString)) {\r\n var map = this.listens.get(normalizedPathString);\r\n listen = map.get(queryId);\r\n map.delete(queryId);\r\n if (map.size === 0) {\r\n this.listens.delete(normalizedPathString);\r\n }\r\n }\r\n else {\r\n // all listens for this path has already been removed\r\n listen = undefined;\r\n }\r\n return listen;\r\n };\r\n PersistentConnection.prototype.onAuthRevoked_ = function (statusCode, explanation) {\r\n log('Auth token revoked: ' + statusCode + '/' + explanation);\r\n this.authToken_ = null;\r\n this.forceTokenRefresh_ = true;\r\n this.realtime_.close();\r\n if (statusCode === 'invalid_token' || statusCode === 'permission_denied') {\r\n // We'll wait a couple times before logging the warning / increasing the\r\n // retry period since oauth tokens will report as \"invalid\" if they're\r\n // just expired. Plus there may be transient issues that resolve themselves.\r\n this.invalidAuthTokenCount_++;\r\n if (this.invalidAuthTokenCount_ >= INVALID_TOKEN_THRESHOLD) {\r\n // Set a long reconnect delay because recovery is unlikely\r\n this.reconnectDelay_ = RECONNECT_MAX_DELAY_FOR_ADMINS;\r\n // Notify the auth token provider that the token is invalid, which will log\r\n // a warning\r\n this.authTokenProvider_.notifyForInvalidToken();\r\n }\r\n }\r\n };\r\n PersistentConnection.prototype.onAppCheckRevoked_ = function (statusCode, explanation) {\r\n log('App check token revoked: ' + statusCode + '/' + explanation);\r\n this.appCheckToken_ = null;\r\n this.forceTokenRefresh_ = true;\r\n // Note: We don't close the connection as the developer may not have\r\n // enforcement enabled. The backend closes connections with enforcements.\r\n if (statusCode === 'invalid_token' || statusCode === 'permission_denied') {\r\n // We'll wait a couple times before logging the warning / increasing the\r\n // retry period since oauth tokens will report as \"invalid\" if they're\r\n // just expired. Plus there may be transient issues that resolve themselves.\r\n this.invalidAppCheckTokenCount_++;\r\n if (this.invalidAppCheckTokenCount_ >= INVALID_TOKEN_THRESHOLD) {\r\n this.appCheckTokenProvider_.notifyForInvalidToken();\r\n }\r\n }\r\n };\r\n PersistentConnection.prototype.onSecurityDebugPacket_ = function (body) {\r\n if (this.securityDebugCallback_) {\r\n this.securityDebugCallback_(body);\r\n }\r\n else {\r\n if ('msg' in body) {\r\n console.log('FIREBASE: ' + body['msg'].replace('\\n', '\\nFIREBASE: '));\r\n }\r\n }\r\n };\r\n PersistentConnection.prototype.restoreState_ = function () {\r\n var e_1, _a, e_2, _b;\r\n //Re-authenticate ourselves if we have a credential stored.\r\n this.tryAuth();\r\n this.tryAppCheck();\r\n try {\r\n // Puts depend on having received the corresponding data update from the server before they complete, so we must\r\n // make sure to send listens before puts.\r\n for (var _c = __values(this.listens.values()), _d = _c.next(); !_d.done; _d = _c.next()) {\r\n var queries = _d.value;\r\n try {\r\n for (var _e = (e_2 = void 0, __values(queries.values())), _f = _e.next(); !_f.done; _f = _e.next()) {\r\n var listenSpec = _f.value;\r\n this.sendListen_(listenSpec);\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n for (var i = 0; i < this.outstandingPuts_.length; i++) {\r\n if (this.outstandingPuts_[i]) {\r\n this.sendPut_(i);\r\n }\r\n }\r\n while (this.onDisconnectRequestQueue_.length) {\r\n var request = this.onDisconnectRequestQueue_.shift();\r\n this.sendOnDisconnect_(request.action, request.pathString, request.data, request.onComplete);\r\n }\r\n for (var i = 0; i < this.outstandingGets_.length; i++) {\r\n if (this.outstandingGets_[i]) {\r\n this.sendGet_(i);\r\n }\r\n }\r\n };\r\n /**\r\n * Sends client stats for first connection\r\n */\r\n PersistentConnection.prototype.sendConnectStats_ = function () {\r\n var stats = {};\r\n var clientName = 'js';\r\n if (isNodeSdk()) {\r\n if (this.repoInfo_.nodeAdmin) {\r\n clientName = 'admin_node';\r\n }\r\n else {\r\n clientName = 'node';\r\n }\r\n }\r\n stats['sdk.' + clientName + '.' + SDK_VERSION.replace(/\\./g, '-')] = 1;\r\n if (isMobileCordova()) {\r\n stats['framework.cordova'] = 1;\r\n }\r\n else if (isReactNative()) {\r\n stats['framework.reactnative'] = 1;\r\n }\r\n this.reportStats(stats);\r\n };\r\n PersistentConnection.prototype.shouldReconnect_ = function () {\r\n var online = OnlineMonitor.getInstance().currentlyOnline();\r\n return isEmpty(this.interruptReasons_) && online;\r\n };\r\n PersistentConnection.nextPersistentConnectionId_ = 0;\r\n /**\r\n * Counter for number of connections created. Mainly used for tagging in the logs\r\n */\r\n PersistentConnection.nextConnectionId_ = 0;\r\n return PersistentConnection;\r\n}(ServerActions));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar NamedNode = /** @class */ (function () {\r\n function NamedNode(name, node) {\r\n this.name = name;\r\n this.node = node;\r\n }\r\n NamedNode.Wrap = function (name, node) {\r\n return new NamedNode(name, node);\r\n };\r\n return NamedNode;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Index = /** @class */ (function () {\r\n function Index() {\r\n }\r\n /**\r\n * @returns A standalone comparison function for\r\n * this index\r\n */\r\n Index.prototype.getCompare = function () {\r\n return this.compare.bind(this);\r\n };\r\n /**\r\n * Given a before and after value for a node, determine if the indexed value has changed. Even if they are different,\r\n * it's possible that the changes are isolated to parts of the snapshot that are not indexed.\r\n *\r\n *\r\n * @returns True if the portion of the snapshot being indexed changed between oldNode and newNode\r\n */\r\n Index.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n var oldWrapped = new NamedNode(MIN_NAME, oldNode);\r\n var newWrapped = new NamedNode(MIN_NAME, newNode);\r\n return this.compare(oldWrapped, newWrapped) !== 0;\r\n };\r\n /**\r\n * @returns a node wrapper that will sort equal to or less than\r\n * any other node wrapper, using this index\r\n */\r\n Index.prototype.minPost = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return NamedNode.MIN;\r\n };\r\n return Index;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __EMPTY_NODE;\r\nvar KeyIndex = /** @class */ (function (_super) {\r\n __extends(KeyIndex, _super);\r\n function KeyIndex() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(KeyIndex, \"__EMPTY_NODE\", {\r\n get: function () {\r\n return __EMPTY_NODE;\r\n },\r\n set: function (val) {\r\n __EMPTY_NODE = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n KeyIndex.prototype.compare = function (a, b) {\r\n return nameCompare(a.name, b.name);\r\n };\r\n KeyIndex.prototype.isDefinedOn = function (node) {\r\n // We could probably return true here (since every node has a key), but it's never called\r\n // so just leaving unimplemented for now.\r\n throw assertionError('KeyIndex.isDefinedOn not expected to be called.');\r\n };\r\n KeyIndex.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n return false; // The key for a node never changes.\r\n };\r\n KeyIndex.prototype.minPost = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return NamedNode.MIN;\r\n };\r\n KeyIndex.prototype.maxPost = function () {\r\n // TODO: This should really be created once and cached in a static property, but\r\n // NamedNode isn't defined yet, so I can't use it in a static. Bleh.\r\n return new NamedNode(MAX_NAME, __EMPTY_NODE);\r\n };\r\n KeyIndex.prototype.makePost = function (indexValue, name) {\r\n assert(typeof indexValue === 'string', 'KeyIndex indexValue must always be a string.');\r\n // We just use empty node, but it'll never be compared, since our comparator only looks at name.\r\n return new NamedNode(indexValue, __EMPTY_NODE);\r\n };\r\n /**\r\n * @returns String representation for inclusion in a query spec\r\n */\r\n KeyIndex.prototype.toString = function () {\r\n return '.key';\r\n };\r\n return KeyIndex;\r\n}(Index));\r\nvar KEY_INDEX = new KeyIndex();\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An iterator over an LLRBNode.\r\n */\r\nvar SortedMapIterator = /** @class */ (function () {\r\n /**\r\n * @param node - Node to iterate.\r\n * @param isReverse_ - Whether or not to iterate in reverse\r\n */\r\n function SortedMapIterator(node, startKey, comparator, isReverse_, resultGenerator_) {\r\n if (resultGenerator_ === void 0) { resultGenerator_ = null; }\r\n this.isReverse_ = isReverse_;\r\n this.resultGenerator_ = resultGenerator_;\r\n this.nodeStack_ = [];\r\n var cmp = 1;\r\n while (!node.isEmpty()) {\r\n node = node;\r\n cmp = startKey ? comparator(node.key, startKey) : 1;\r\n // flip the comparison if we're going in reverse\r\n if (isReverse_) {\r\n cmp *= -1;\r\n }\r\n if (cmp < 0) {\r\n // This node is less than our start key. ignore it\r\n if (this.isReverse_) {\r\n node = node.left;\r\n }\r\n else {\r\n node = node.right;\r\n }\r\n }\r\n else if (cmp === 0) {\r\n // This node is exactly equal to our start key. Push it on the stack, but stop iterating;\r\n this.nodeStack_.push(node);\r\n break;\r\n }\r\n else {\r\n // This node is greater than our start key, add it to the stack and move to the next one\r\n this.nodeStack_.push(node);\r\n if (this.isReverse_) {\r\n node = node.right;\r\n }\r\n else {\r\n node = node.left;\r\n }\r\n }\r\n }\r\n }\r\n SortedMapIterator.prototype.getNext = function () {\r\n if (this.nodeStack_.length === 0) {\r\n return null;\r\n }\r\n var node = this.nodeStack_.pop();\r\n var result;\r\n if (this.resultGenerator_) {\r\n result = this.resultGenerator_(node.key, node.value);\r\n }\r\n else {\r\n result = { key: node.key, value: node.value };\r\n }\r\n if (this.isReverse_) {\r\n node = node.left;\r\n while (!node.isEmpty()) {\r\n this.nodeStack_.push(node);\r\n node = node.right;\r\n }\r\n }\r\n else {\r\n node = node.right;\r\n while (!node.isEmpty()) {\r\n this.nodeStack_.push(node);\r\n node = node.left;\r\n }\r\n }\r\n return result;\r\n };\r\n SortedMapIterator.prototype.hasNext = function () {\r\n return this.nodeStack_.length > 0;\r\n };\r\n SortedMapIterator.prototype.peek = function () {\r\n if (this.nodeStack_.length === 0) {\r\n return null;\r\n }\r\n var node = this.nodeStack_[this.nodeStack_.length - 1];\r\n if (this.resultGenerator_) {\r\n return this.resultGenerator_(node.key, node.value);\r\n }\r\n else {\r\n return { key: node.key, value: node.value };\r\n }\r\n };\r\n return SortedMapIterator;\r\n}());\r\n/**\r\n * Represents a node in a Left-leaning Red-Black tree.\r\n */\r\nvar LLRBNode = /** @class */ (function () {\r\n /**\r\n * @param key - Key associated with this node.\r\n * @param value - Value associated with this node.\r\n * @param color - Whether this node is red.\r\n * @param left - Left child.\r\n * @param right - Right child.\r\n */\r\n function LLRBNode(key, value, color, left, right) {\r\n this.key = key;\r\n this.value = value;\r\n this.color = color != null ? color : LLRBNode.RED;\r\n this.left =\r\n left != null ? left : SortedMap.EMPTY_NODE;\r\n this.right =\r\n right != null ? right : SortedMap.EMPTY_NODE;\r\n }\r\n /**\r\n * Returns a copy of the current node, optionally replacing pieces of it.\r\n *\r\n * @param key - New key for the node, or null.\r\n * @param value - New value for the node, or null.\r\n * @param color - New color for the node, or null.\r\n * @param left - New left child for the node, or null.\r\n * @param right - New right child for the node, or null.\r\n * @returns The node copy.\r\n */\r\n LLRBNode.prototype.copy = function (key, value, color, left, right) {\r\n return new LLRBNode(key != null ? key : this.key, value != null ? value : this.value, color != null ? color : this.color, left != null ? left : this.left, right != null ? right : this.right);\r\n };\r\n /**\r\n * @returns The total number of nodes in the tree.\r\n */\r\n LLRBNode.prototype.count = function () {\r\n return this.left.count() + 1 + this.right.count();\r\n };\r\n /**\r\n * @returns True if the tree is empty.\r\n */\r\n LLRBNode.prototype.isEmpty = function () {\r\n return false;\r\n };\r\n /**\r\n * Traverses the tree in key order and calls the specified action function\r\n * for each node.\r\n *\r\n * @param action - Callback function to be called for each\r\n * node. If it returns true, traversal is aborted.\r\n * @returns The first truthy value returned by action, or the last falsey\r\n * value returned by action\r\n */\r\n LLRBNode.prototype.inorderTraversal = function (action) {\r\n return (this.left.inorderTraversal(action) ||\r\n !!action(this.key, this.value) ||\r\n this.right.inorderTraversal(action));\r\n };\r\n /**\r\n * Traverses the tree in reverse key order and calls the specified action function\r\n * for each node.\r\n *\r\n * @param action - Callback function to be called for each\r\n * node. If it returns true, traversal is aborted.\r\n * @returns True if traversal was aborted.\r\n */\r\n LLRBNode.prototype.reverseTraversal = function (action) {\r\n return (this.right.reverseTraversal(action) ||\r\n action(this.key, this.value) ||\r\n this.left.reverseTraversal(action));\r\n };\r\n /**\r\n * @returns The minimum node in the tree.\r\n */\r\n LLRBNode.prototype.min_ = function () {\r\n if (this.left.isEmpty()) {\r\n return this;\r\n }\r\n else {\r\n return this.left.min_();\r\n }\r\n };\r\n /**\r\n * @returns The maximum key in the tree.\r\n */\r\n LLRBNode.prototype.minKey = function () {\r\n return this.min_().key;\r\n };\r\n /**\r\n * @returns The maximum key in the tree.\r\n */\r\n LLRBNode.prototype.maxKey = function () {\r\n if (this.right.isEmpty()) {\r\n return this.key;\r\n }\r\n else {\r\n return this.right.maxKey();\r\n }\r\n };\r\n /**\r\n * @param key - Key to insert.\r\n * @param value - Value to insert.\r\n * @param comparator - Comparator.\r\n * @returns New tree, with the key/value added.\r\n */\r\n LLRBNode.prototype.insert = function (key, value, comparator) {\r\n var n = this;\r\n var cmp = comparator(key, n.key);\r\n if (cmp < 0) {\r\n n = n.copy(null, null, null, n.left.insert(key, value, comparator), null);\r\n }\r\n else if (cmp === 0) {\r\n n = n.copy(null, value, null, null, null);\r\n }\r\n else {\r\n n = n.copy(null, null, null, null, n.right.insert(key, value, comparator));\r\n }\r\n return n.fixUp_();\r\n };\r\n /**\r\n * @returns New tree, with the minimum key removed.\r\n */\r\n LLRBNode.prototype.removeMin_ = function () {\r\n if (this.left.isEmpty()) {\r\n return SortedMap.EMPTY_NODE;\r\n }\r\n var n = this;\r\n if (!n.left.isRed_() && !n.left.left.isRed_()) {\r\n n = n.moveRedLeft_();\r\n }\r\n n = n.copy(null, null, null, n.left.removeMin_(), null);\r\n return n.fixUp_();\r\n };\r\n /**\r\n * @param key - The key of the item to remove.\r\n * @param comparator - Comparator.\r\n * @returns New tree, with the specified item removed.\r\n */\r\n LLRBNode.prototype.remove = function (key, comparator) {\r\n var n, smallest;\r\n n = this;\r\n if (comparator(key, n.key) < 0) {\r\n if (!n.left.isEmpty() && !n.left.isRed_() && !n.left.left.isRed_()) {\r\n n = n.moveRedLeft_();\r\n }\r\n n = n.copy(null, null, null, n.left.remove(key, comparator), null);\r\n }\r\n else {\r\n if (n.left.isRed_()) {\r\n n = n.rotateRight_();\r\n }\r\n if (!n.right.isEmpty() && !n.right.isRed_() && !n.right.left.isRed_()) {\r\n n = n.moveRedRight_();\r\n }\r\n if (comparator(key, n.key) === 0) {\r\n if (n.right.isEmpty()) {\r\n return SortedMap.EMPTY_NODE;\r\n }\r\n else {\r\n smallest = n.right.min_();\r\n n = n.copy(smallest.key, smallest.value, null, null, n.right.removeMin_());\r\n }\r\n }\r\n n = n.copy(null, null, null, null, n.right.remove(key, comparator));\r\n }\r\n return n.fixUp_();\r\n };\r\n /**\r\n * @returns Whether this is a RED node.\r\n */\r\n LLRBNode.prototype.isRed_ = function () {\r\n return this.color;\r\n };\r\n /**\r\n * @returns New tree after performing any needed rotations.\r\n */\r\n LLRBNode.prototype.fixUp_ = function () {\r\n var n = this;\r\n if (n.right.isRed_() && !n.left.isRed_()) {\r\n n = n.rotateLeft_();\r\n }\r\n if (n.left.isRed_() && n.left.left.isRed_()) {\r\n n = n.rotateRight_();\r\n }\r\n if (n.left.isRed_() && n.right.isRed_()) {\r\n n = n.colorFlip_();\r\n }\r\n return n;\r\n };\r\n /**\r\n * @returns New tree, after moveRedLeft.\r\n */\r\n LLRBNode.prototype.moveRedLeft_ = function () {\r\n var n = this.colorFlip_();\r\n if (n.right.left.isRed_()) {\r\n n = n.copy(null, null, null, null, n.right.rotateRight_());\r\n n = n.rotateLeft_();\r\n n = n.colorFlip_();\r\n }\r\n return n;\r\n };\r\n /**\r\n * @returns New tree, after moveRedRight.\r\n */\r\n LLRBNode.prototype.moveRedRight_ = function () {\r\n var n = this.colorFlip_();\r\n if (n.left.left.isRed_()) {\r\n n = n.rotateRight_();\r\n n = n.colorFlip_();\r\n }\r\n return n;\r\n };\r\n /**\r\n * @returns New tree, after rotateLeft.\r\n */\r\n LLRBNode.prototype.rotateLeft_ = function () {\r\n var nl = this.copy(null, null, LLRBNode.RED, null, this.right.left);\r\n return this.right.copy(null, null, this.color, nl, null);\r\n };\r\n /**\r\n * @returns New tree, after rotateRight.\r\n */\r\n LLRBNode.prototype.rotateRight_ = function () {\r\n var nr = this.copy(null, null, LLRBNode.RED, this.left.right, null);\r\n return this.left.copy(null, null, this.color, null, nr);\r\n };\r\n /**\r\n * @returns Newt ree, after colorFlip.\r\n */\r\n LLRBNode.prototype.colorFlip_ = function () {\r\n var left = this.left.copy(null, null, !this.left.color, null, null);\r\n var right = this.right.copy(null, null, !this.right.color, null, null);\r\n return this.copy(null, null, !this.color, left, right);\r\n };\r\n /**\r\n * For testing.\r\n *\r\n * @returns True if all is well.\r\n */\r\n LLRBNode.prototype.checkMaxDepth_ = function () {\r\n var blackDepth = this.check_();\r\n return Math.pow(2.0, blackDepth) <= this.count() + 1;\r\n };\r\n LLRBNode.prototype.check_ = function () {\r\n if (this.isRed_() && this.left.isRed_()) {\r\n throw new Error('Red node has red child(' + this.key + ',' + this.value + ')');\r\n }\r\n if (this.right.isRed_()) {\r\n throw new Error('Right child of (' + this.key + ',' + this.value + ') is red');\r\n }\r\n var blackDepth = this.left.check_();\r\n if (blackDepth !== this.right.check_()) {\r\n throw new Error('Black depths differ');\r\n }\r\n else {\r\n return blackDepth + (this.isRed_() ? 0 : 1);\r\n }\r\n };\r\n LLRBNode.RED = true;\r\n LLRBNode.BLACK = false;\r\n return LLRBNode;\r\n}());\r\n/**\r\n * Represents an empty node (a leaf node in the Red-Black Tree).\r\n */\r\nvar LLRBEmptyNode = /** @class */ (function () {\r\n function LLRBEmptyNode() {\r\n }\r\n /**\r\n * Returns a copy of the current node.\r\n *\r\n * @returns The node copy.\r\n */\r\n LLRBEmptyNode.prototype.copy = function (key, value, color, left, right) {\r\n return this;\r\n };\r\n /**\r\n * Returns a copy of the tree, with the specified key/value added.\r\n *\r\n * @param key - Key to be added.\r\n * @param value - Value to be added.\r\n * @param comparator - Comparator.\r\n * @returns New tree, with item added.\r\n */\r\n LLRBEmptyNode.prototype.insert = function (key, value, comparator) {\r\n return new LLRBNode(key, value, null);\r\n };\r\n /**\r\n * Returns a copy of the tree, with the specified key removed.\r\n *\r\n * @param key - The key to remove.\r\n * @param comparator - Comparator.\r\n * @returns New tree, with item removed.\r\n */\r\n LLRBEmptyNode.prototype.remove = function (key, comparator) {\r\n return this;\r\n };\r\n /**\r\n * @returns The total number of nodes in the tree.\r\n */\r\n LLRBEmptyNode.prototype.count = function () {\r\n return 0;\r\n };\r\n /**\r\n * @returns True if the tree is empty.\r\n */\r\n LLRBEmptyNode.prototype.isEmpty = function () {\r\n return true;\r\n };\r\n /**\r\n * Traverses the tree in key order and calls the specified action function\r\n * for each node.\r\n *\r\n * @param action - Callback function to be called for each\r\n * node. If it returns true, traversal is aborted.\r\n * @returns True if traversal was aborted.\r\n */\r\n LLRBEmptyNode.prototype.inorderTraversal = function (action) {\r\n return false;\r\n };\r\n /**\r\n * Traverses the tree in reverse key order and calls the specified action function\r\n * for each node.\r\n *\r\n * @param action - Callback function to be called for each\r\n * node. If it returns true, traversal is aborted.\r\n * @returns True if traversal was aborted.\r\n */\r\n LLRBEmptyNode.prototype.reverseTraversal = function (action) {\r\n return false;\r\n };\r\n LLRBEmptyNode.prototype.minKey = function () {\r\n return null;\r\n };\r\n LLRBEmptyNode.prototype.maxKey = function () {\r\n return null;\r\n };\r\n LLRBEmptyNode.prototype.check_ = function () {\r\n return 0;\r\n };\r\n /**\r\n * @returns Whether this node is red.\r\n */\r\n LLRBEmptyNode.prototype.isRed_ = function () {\r\n return false;\r\n };\r\n return LLRBEmptyNode;\r\n}());\r\n/**\r\n * An immutable sorted map implementation, based on a Left-leaning Red-Black\r\n * tree.\r\n */\r\nvar SortedMap = /** @class */ (function () {\r\n /**\r\n * @param comparator_ - Key comparator.\r\n * @param root_ - Optional root node for the map.\r\n */\r\n function SortedMap(comparator_, root_) {\r\n if (root_ === void 0) { root_ = SortedMap.EMPTY_NODE; }\r\n this.comparator_ = comparator_;\r\n this.root_ = root_;\r\n }\r\n /**\r\n * Returns a copy of the map, with the specified key/value added or replaced.\r\n * (TODO: We should perhaps rename this method to 'put')\r\n *\r\n * @param key - Key to be added.\r\n * @param value - Value to be added.\r\n * @returns New map, with item added.\r\n */\r\n SortedMap.prototype.insert = function (key, value) {\r\n return new SortedMap(this.comparator_, this.root_\r\n .insert(key, value, this.comparator_)\r\n .copy(null, null, LLRBNode.BLACK, null, null));\r\n };\r\n /**\r\n * Returns a copy of the map, with the specified key removed.\r\n *\r\n * @param key - The key to remove.\r\n * @returns New map, with item removed.\r\n */\r\n SortedMap.prototype.remove = function (key) {\r\n return new SortedMap(this.comparator_, this.root_\r\n .remove(key, this.comparator_)\r\n .copy(null, null, LLRBNode.BLACK, null, null));\r\n };\r\n /**\r\n * Returns the value of the node with the given key, or null.\r\n *\r\n * @param key - The key to look up.\r\n * @returns The value of the node with the given key, or null if the\r\n * key doesn't exist.\r\n */\r\n SortedMap.prototype.get = function (key) {\r\n var cmp;\r\n var node = this.root_;\r\n while (!node.isEmpty()) {\r\n cmp = this.comparator_(key, node.key);\r\n if (cmp === 0) {\r\n return node.value;\r\n }\r\n else if (cmp < 0) {\r\n node = node.left;\r\n }\r\n else if (cmp > 0) {\r\n node = node.right;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns the key of the item *before* the specified key, or null if key is the first item.\r\n * @param key - The key to find the predecessor of\r\n * @returns The predecessor key.\r\n */\r\n SortedMap.prototype.getPredecessorKey = function (key) {\r\n var cmp, node = this.root_, rightParent = null;\r\n while (!node.isEmpty()) {\r\n cmp = this.comparator_(key, node.key);\r\n if (cmp === 0) {\r\n if (!node.left.isEmpty()) {\r\n node = node.left;\r\n while (!node.right.isEmpty()) {\r\n node = node.right;\r\n }\r\n return node.key;\r\n }\r\n else if (rightParent) {\r\n return rightParent.key;\r\n }\r\n else {\r\n return null; // first item.\r\n }\r\n }\r\n else if (cmp < 0) {\r\n node = node.left;\r\n }\r\n else if (cmp > 0) {\r\n rightParent = node;\r\n node = node.right;\r\n }\r\n }\r\n throw new Error('Attempted to find predecessor key for a nonexistent key. What gives?');\r\n };\r\n /**\r\n * @returns True if the map is empty.\r\n */\r\n SortedMap.prototype.isEmpty = function () {\r\n return this.root_.isEmpty();\r\n };\r\n /**\r\n * @returns The total number of nodes in the map.\r\n */\r\n SortedMap.prototype.count = function () {\r\n return this.root_.count();\r\n };\r\n /**\r\n * @returns The minimum key in the map.\r\n */\r\n SortedMap.prototype.minKey = function () {\r\n return this.root_.minKey();\r\n };\r\n /**\r\n * @returns The maximum key in the map.\r\n */\r\n SortedMap.prototype.maxKey = function () {\r\n return this.root_.maxKey();\r\n };\r\n /**\r\n * Traverses the map in key order and calls the specified action function\r\n * for each key/value pair.\r\n *\r\n * @param action - Callback function to be called\r\n * for each key/value pair. If action returns true, traversal is aborted.\r\n * @returns The first truthy value returned by action, or the last falsey\r\n * value returned by action\r\n */\r\n SortedMap.prototype.inorderTraversal = function (action) {\r\n return this.root_.inorderTraversal(action);\r\n };\r\n /**\r\n * Traverses the map in reverse key order and calls the specified action function\r\n * for each key/value pair.\r\n *\r\n * @param action - Callback function to be called\r\n * for each key/value pair. If action returns true, traversal is aborted.\r\n * @returns True if the traversal was aborted.\r\n */\r\n SortedMap.prototype.reverseTraversal = function (action) {\r\n return this.root_.reverseTraversal(action);\r\n };\r\n /**\r\n * Returns an iterator over the SortedMap.\r\n * @returns The iterator.\r\n */\r\n SortedMap.prototype.getIterator = function (resultGenerator) {\r\n return new SortedMapIterator(this.root_, null, this.comparator_, false, resultGenerator);\r\n };\r\n SortedMap.prototype.getIteratorFrom = function (key, resultGenerator) {\r\n return new SortedMapIterator(this.root_, key, this.comparator_, false, resultGenerator);\r\n };\r\n SortedMap.prototype.getReverseIteratorFrom = function (key, resultGenerator) {\r\n return new SortedMapIterator(this.root_, key, this.comparator_, true, resultGenerator);\r\n };\r\n SortedMap.prototype.getReverseIterator = function (resultGenerator) {\r\n return new SortedMapIterator(this.root_, null, this.comparator_, true, resultGenerator);\r\n };\r\n /**\r\n * Always use the same empty node, to reduce memory.\r\n */\r\n SortedMap.EMPTY_NODE = new LLRBEmptyNode();\r\n return SortedMap;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction NAME_ONLY_COMPARATOR(left, right) {\r\n return nameCompare(left.name, right.name);\r\n}\r\nfunction NAME_COMPARATOR(left, right) {\r\n return nameCompare(left, right);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar MAX_NODE$2;\r\nfunction setMaxNode$1(val) {\r\n MAX_NODE$2 = val;\r\n}\r\nvar priorityHashText = function (priority) {\r\n if (typeof priority === 'number') {\r\n return 'number:' + doubleToIEEE754String(priority);\r\n }\r\n else {\r\n return 'string:' + priority;\r\n }\r\n};\r\n/**\r\n * Validates that a priority snapshot Node is valid.\r\n */\r\nvar validatePriorityNode = function (priorityNode) {\r\n if (priorityNode.isLeafNode()) {\r\n var val = priorityNode.val();\r\n assert(typeof val === 'string' ||\r\n typeof val === 'number' ||\r\n (typeof val === 'object' && contains(val, '.sv')), 'Priority must be a string or number.');\r\n }\r\n else {\r\n assert(priorityNode === MAX_NODE$2 || priorityNode.isEmpty(), 'priority of unexpected type.');\r\n }\r\n // Don't call getPriority() on MAX_NODE to avoid hitting assertion.\r\n assert(priorityNode === MAX_NODE$2 || priorityNode.getPriority().isEmpty(), \"Priority nodes can't have a priority of their own.\");\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __childrenNodeConstructor;\r\n/**\r\n * LeafNode is a class for storing leaf nodes in a DataSnapshot. It\r\n * implements Node and stores the value of the node (a string,\r\n * number, or boolean) accessible via getValue().\r\n */\r\nvar LeafNode = /** @class */ (function () {\r\n /**\r\n * @param value_ - The value to store in this leaf node. The object type is\r\n * possible in the event of a deferred value\r\n * @param priorityNode_ - The priority of this node.\r\n */\r\n function LeafNode(value_, priorityNode_) {\r\n if (priorityNode_ === void 0) { priorityNode_ = LeafNode.__childrenNodeConstructor.EMPTY_NODE; }\r\n this.value_ = value_;\r\n this.priorityNode_ = priorityNode_;\r\n this.lazyHash_ = null;\r\n assert(this.value_ !== undefined && this.value_ !== null, \"LeafNode shouldn't be created with null/undefined value.\");\r\n validatePriorityNode(this.priorityNode_);\r\n }\r\n Object.defineProperty(LeafNode, \"__childrenNodeConstructor\", {\r\n get: function () {\r\n return __childrenNodeConstructor;\r\n },\r\n set: function (val) {\r\n __childrenNodeConstructor = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n LeafNode.prototype.isLeafNode = function () {\r\n return true;\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.getPriority = function () {\r\n return this.priorityNode_;\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.updatePriority = function (newPriorityNode) {\r\n return new LeafNode(this.value_, newPriorityNode);\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.getImmediateChild = function (childName) {\r\n // Hack to treat priority as a regular child\r\n if (childName === '.priority') {\r\n return this.priorityNode_;\r\n }\r\n else {\r\n return LeafNode.__childrenNodeConstructor.EMPTY_NODE;\r\n }\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.getChild = function (path) {\r\n if (pathIsEmpty(path)) {\r\n return this;\r\n }\r\n else if (pathGetFront(path) === '.priority') {\r\n return this.priorityNode_;\r\n }\r\n else {\r\n return LeafNode.__childrenNodeConstructor.EMPTY_NODE;\r\n }\r\n };\r\n LeafNode.prototype.hasChild = function () {\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.getPredecessorChildName = function (childName, childNode) {\r\n return null;\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.updateImmediateChild = function (childName, newChildNode) {\r\n if (childName === '.priority') {\r\n return this.updatePriority(newChildNode);\r\n }\r\n else if (newChildNode.isEmpty() && childName !== '.priority') {\r\n return this;\r\n }\r\n else {\r\n return LeafNode.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(childName, newChildNode).updatePriority(this.priorityNode_);\r\n }\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.updateChild = function (path, newChildNode) {\r\n var front = pathGetFront(path);\r\n if (front === null) {\r\n return newChildNode;\r\n }\r\n else if (newChildNode.isEmpty() && front !== '.priority') {\r\n return this;\r\n }\r\n else {\r\n assert(front !== '.priority' || pathGetLength(path) === 1, '.priority must be the last token in a path');\r\n return this.updateImmediateChild(front, LeafNode.__childrenNodeConstructor.EMPTY_NODE.updateChild(pathPopFront(path), newChildNode));\r\n }\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.isEmpty = function () {\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.numChildren = function () {\r\n return 0;\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.forEachChild = function (index, action) {\r\n return false;\r\n };\r\n LeafNode.prototype.val = function (exportFormat) {\r\n if (exportFormat && !this.getPriority().isEmpty()) {\r\n return {\r\n '.value': this.getValue(),\r\n '.priority': this.getPriority().val()\r\n };\r\n }\r\n else {\r\n return this.getValue();\r\n }\r\n };\r\n /** @inheritDoc */\r\n LeafNode.prototype.hash = function () {\r\n if (this.lazyHash_ === null) {\r\n var toHash = '';\r\n if (!this.priorityNode_.isEmpty()) {\r\n toHash +=\r\n 'priority:' +\r\n priorityHashText(this.priorityNode_.val()) +\r\n ':';\r\n }\r\n var type = typeof this.value_;\r\n toHash += type + ':';\r\n if (type === 'number') {\r\n toHash += doubleToIEEE754String(this.value_);\r\n }\r\n else {\r\n toHash += this.value_;\r\n }\r\n this.lazyHash_ = sha1(toHash);\r\n }\r\n return this.lazyHash_;\r\n };\r\n /**\r\n * Returns the value of the leaf node.\r\n * @returns The value of the node.\r\n */\r\n LeafNode.prototype.getValue = function () {\r\n return this.value_;\r\n };\r\n LeafNode.prototype.compareTo = function (other) {\r\n if (other === LeafNode.__childrenNodeConstructor.EMPTY_NODE) {\r\n return 1;\r\n }\r\n else if (other instanceof LeafNode.__childrenNodeConstructor) {\r\n return -1;\r\n }\r\n else {\r\n assert(other.isLeafNode(), 'Unknown node type');\r\n return this.compareToLeafNode_(other);\r\n }\r\n };\r\n /**\r\n * Comparison specifically for two leaf nodes\r\n */\r\n LeafNode.prototype.compareToLeafNode_ = function (otherLeaf) {\r\n var otherLeafType = typeof otherLeaf.value_;\r\n var thisLeafType = typeof this.value_;\r\n var otherIndex = LeafNode.VALUE_TYPE_ORDER.indexOf(otherLeafType);\r\n var thisIndex = LeafNode.VALUE_TYPE_ORDER.indexOf(thisLeafType);\r\n assert(otherIndex >= 0, 'Unknown leaf type: ' + otherLeafType);\r\n assert(thisIndex >= 0, 'Unknown leaf type: ' + thisLeafType);\r\n if (otherIndex === thisIndex) {\r\n // Same type, compare values\r\n if (thisLeafType === 'object') {\r\n // Deferred value nodes are all equal, but we should also never get to this point...\r\n return 0;\r\n }\r\n else {\r\n // Note that this works because true > false, all others are number or string comparisons\r\n if (this.value_ < otherLeaf.value_) {\r\n return -1;\r\n }\r\n else if (this.value_ === otherLeaf.value_) {\r\n return 0;\r\n }\r\n else {\r\n return 1;\r\n }\r\n }\r\n }\r\n else {\r\n return thisIndex - otherIndex;\r\n }\r\n };\r\n LeafNode.prototype.withIndex = function () {\r\n return this;\r\n };\r\n LeafNode.prototype.isIndexed = function () {\r\n return true;\r\n };\r\n LeafNode.prototype.equals = function (other) {\r\n if (other === this) {\r\n return true;\r\n }\r\n else if (other.isLeafNode()) {\r\n var otherLeaf = other;\r\n return (this.value_ === otherLeaf.value_ &&\r\n this.priorityNode_.equals(otherLeaf.priorityNode_));\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * The sort order for comparing leaf nodes of different types. If two leaf nodes have\r\n * the same type, the comparison falls back to their value\r\n */\r\n LeafNode.VALUE_TYPE_ORDER = ['object', 'boolean', 'number', 'string'];\r\n return LeafNode;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar nodeFromJSON$1;\r\nvar MAX_NODE$1;\r\nfunction setNodeFromJSON(val) {\r\n nodeFromJSON$1 = val;\r\n}\r\nfunction setMaxNode(val) {\r\n MAX_NODE$1 = val;\r\n}\r\nvar PriorityIndex = /** @class */ (function (_super) {\r\n __extends(PriorityIndex, _super);\r\n function PriorityIndex() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PriorityIndex.prototype.compare = function (a, b) {\r\n var aPriority = a.node.getPriority();\r\n var bPriority = b.node.getPriority();\r\n var indexCmp = aPriority.compareTo(bPriority);\r\n if (indexCmp === 0) {\r\n return nameCompare(a.name, b.name);\r\n }\r\n else {\r\n return indexCmp;\r\n }\r\n };\r\n PriorityIndex.prototype.isDefinedOn = function (node) {\r\n return !node.getPriority().isEmpty();\r\n };\r\n PriorityIndex.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n return !oldNode.getPriority().equals(newNode.getPriority());\r\n };\r\n PriorityIndex.prototype.minPost = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return NamedNode.MIN;\r\n };\r\n PriorityIndex.prototype.maxPost = function () {\r\n return new NamedNode(MAX_NAME, new LeafNode('[PRIORITY-POST]', MAX_NODE$1));\r\n };\r\n PriorityIndex.prototype.makePost = function (indexValue, name) {\r\n var priorityNode = nodeFromJSON$1(indexValue);\r\n return new NamedNode(name, new LeafNode('[PRIORITY-POST]', priorityNode));\r\n };\r\n /**\r\n * @returns String representation for inclusion in a query spec\r\n */\r\n PriorityIndex.prototype.toString = function () {\r\n return '.priority';\r\n };\r\n return PriorityIndex;\r\n}(Index));\r\nvar PRIORITY_INDEX = new PriorityIndex();\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar LOG_2 = Math.log(2);\r\nvar Base12Num = /** @class */ (function () {\r\n function Base12Num(length) {\r\n var logBase2 = function (num) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return parseInt((Math.log(num) / LOG_2), 10);\r\n };\r\n var bitMask = function (bits) { return parseInt(Array(bits + 1).join('1'), 2); };\r\n this.count = logBase2(length + 1);\r\n this.current_ = this.count - 1;\r\n var mask = bitMask(this.count);\r\n this.bits_ = (length + 1) & mask;\r\n }\r\n Base12Num.prototype.nextBitIsOne = function () {\r\n //noinspection JSBitwiseOperatorUsage\r\n var result = !(this.bits_ & (0x1 << this.current_));\r\n this.current_--;\r\n return result;\r\n };\r\n return Base12Num;\r\n}());\r\n/**\r\n * Takes a list of child nodes and constructs a SortedSet using the given comparison\r\n * function\r\n *\r\n * Uses the algorithm described in the paper linked here:\r\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1458\r\n *\r\n * @param childList - Unsorted list of children\r\n * @param cmp - The comparison method to be used\r\n * @param keyFn - An optional function to extract K from a node wrapper, if K's\r\n * type is not NamedNode\r\n * @param mapSortFn - An optional override for comparator used by the generated sorted map\r\n */\r\nvar buildChildSet = function (childList, cmp, keyFn, mapSortFn) {\r\n childList.sort(cmp);\r\n var buildBalancedTree = function (low, high) {\r\n var length = high - low;\r\n var namedNode;\r\n var key;\r\n if (length === 0) {\r\n return null;\r\n }\r\n else if (length === 1) {\r\n namedNode = childList[low];\r\n key = keyFn ? keyFn(namedNode) : namedNode;\r\n return new LLRBNode(key, namedNode.node, LLRBNode.BLACK, null, null);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var middle = parseInt((length / 2), 10) + low;\r\n var left = buildBalancedTree(low, middle);\r\n var right = buildBalancedTree(middle + 1, high);\r\n namedNode = childList[middle];\r\n key = keyFn ? keyFn(namedNode) : namedNode;\r\n return new LLRBNode(key, namedNode.node, LLRBNode.BLACK, left, right);\r\n }\r\n };\r\n var buildFrom12Array = function (base12) {\r\n var node = null;\r\n var root = null;\r\n var index = childList.length;\r\n var buildPennant = function (chunkSize, color) {\r\n var low = index - chunkSize;\r\n var high = index;\r\n index -= chunkSize;\r\n var childTree = buildBalancedTree(low + 1, high);\r\n var namedNode = childList[low];\r\n var key = keyFn ? keyFn(namedNode) : namedNode;\r\n attachPennant(new LLRBNode(key, namedNode.node, color, null, childTree));\r\n };\r\n var attachPennant = function (pennant) {\r\n if (node) {\r\n node.left = pennant;\r\n node = pennant;\r\n }\r\n else {\r\n root = pennant;\r\n node = pennant;\r\n }\r\n };\r\n for (var i = 0; i < base12.count; ++i) {\r\n var isOne = base12.nextBitIsOne();\r\n // The number of nodes taken in each slice is 2^(arr.length - (i + 1))\r\n var chunkSize = Math.pow(2, base12.count - (i + 1));\r\n if (isOne) {\r\n buildPennant(chunkSize, LLRBNode.BLACK);\r\n }\r\n else {\r\n // current == 2\r\n buildPennant(chunkSize, LLRBNode.BLACK);\r\n buildPennant(chunkSize, LLRBNode.RED);\r\n }\r\n }\r\n return root;\r\n };\r\n var base12 = new Base12Num(childList.length);\r\n var root = buildFrom12Array(base12);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return new SortedMap(mapSortFn || cmp, root);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar _defaultIndexMap;\r\nvar fallbackObject = {};\r\nvar IndexMap = /** @class */ (function () {\r\n function IndexMap(indexes_, indexSet_) {\r\n this.indexes_ = indexes_;\r\n this.indexSet_ = indexSet_;\r\n }\r\n Object.defineProperty(IndexMap, \"Default\", {\r\n /**\r\n * The default IndexMap for nodes without a priority\r\n */\r\n get: function () {\r\n assert(fallbackObject && PRIORITY_INDEX, 'ChildrenNode.ts has not been loaded');\r\n _defaultIndexMap =\r\n _defaultIndexMap ||\r\n new IndexMap({ '.priority': fallbackObject }, { '.priority': PRIORITY_INDEX });\r\n return _defaultIndexMap;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n IndexMap.prototype.get = function (indexKey) {\r\n var sortedMap = safeGet(this.indexes_, indexKey);\r\n if (!sortedMap) {\r\n throw new Error('No index defined for ' + indexKey);\r\n }\r\n if (sortedMap instanceof SortedMap) {\r\n return sortedMap;\r\n }\r\n else {\r\n // The index exists, but it falls back to just name comparison. Return null so that the calling code uses the\r\n // regular child map\r\n return null;\r\n }\r\n };\r\n IndexMap.prototype.hasIndex = function (indexDefinition) {\r\n return contains(this.indexSet_, indexDefinition.toString());\r\n };\r\n IndexMap.prototype.addIndex = function (indexDefinition, existingChildren) {\r\n assert(indexDefinition !== KEY_INDEX, \"KeyIndex always exists and isn't meant to be added to the IndexMap.\");\r\n var childList = [];\r\n var sawIndexedValue = false;\r\n var iter = existingChildren.getIterator(NamedNode.Wrap);\r\n var next = iter.getNext();\r\n while (next) {\r\n sawIndexedValue =\r\n sawIndexedValue || indexDefinition.isDefinedOn(next.node);\r\n childList.push(next);\r\n next = iter.getNext();\r\n }\r\n var newIndex;\r\n if (sawIndexedValue) {\r\n newIndex = buildChildSet(childList, indexDefinition.getCompare());\r\n }\r\n else {\r\n newIndex = fallbackObject;\r\n }\r\n var indexName = indexDefinition.toString();\r\n var newIndexSet = __assign({}, this.indexSet_);\r\n newIndexSet[indexName] = indexDefinition;\r\n var newIndexes = __assign({}, this.indexes_);\r\n newIndexes[indexName] = newIndex;\r\n return new IndexMap(newIndexes, newIndexSet);\r\n };\r\n /**\r\n * Ensure that this node is properly tracked in any indexes that we're maintaining\r\n */\r\n IndexMap.prototype.addToIndexes = function (namedNode, existingChildren) {\r\n var _this = this;\r\n var newIndexes = map(this.indexes_, function (indexedChildren, indexName) {\r\n var index = safeGet(_this.indexSet_, indexName);\r\n assert(index, 'Missing index implementation for ' + indexName);\r\n if (indexedChildren === fallbackObject) {\r\n // Check to see if we need to index everything\r\n if (index.isDefinedOn(namedNode.node)) {\r\n // We need to build this index\r\n var childList = [];\r\n var iter = existingChildren.getIterator(NamedNode.Wrap);\r\n var next = iter.getNext();\r\n while (next) {\r\n if (next.name !== namedNode.name) {\r\n childList.push(next);\r\n }\r\n next = iter.getNext();\r\n }\r\n childList.push(namedNode);\r\n return buildChildSet(childList, index.getCompare());\r\n }\r\n else {\r\n // No change, this remains a fallback\r\n return fallbackObject;\r\n }\r\n }\r\n else {\r\n var existingSnap = existingChildren.get(namedNode.name);\r\n var newChildren = indexedChildren;\r\n if (existingSnap) {\r\n newChildren = newChildren.remove(new NamedNode(namedNode.name, existingSnap));\r\n }\r\n return newChildren.insert(namedNode, namedNode.node);\r\n }\r\n });\r\n return new IndexMap(newIndexes, this.indexSet_);\r\n };\r\n /**\r\n * Create a new IndexMap instance with the given value removed\r\n */\r\n IndexMap.prototype.removeFromIndexes = function (namedNode, existingChildren) {\r\n var newIndexes = map(this.indexes_, function (indexedChildren) {\r\n if (indexedChildren === fallbackObject) {\r\n // This is the fallback. Just return it, nothing to do in this case\r\n return indexedChildren;\r\n }\r\n else {\r\n var existingSnap = existingChildren.get(namedNode.name);\r\n if (existingSnap) {\r\n return indexedChildren.remove(new NamedNode(namedNode.name, existingSnap));\r\n }\r\n else {\r\n // No record of this child\r\n return indexedChildren;\r\n }\r\n }\r\n });\r\n return new IndexMap(newIndexes, this.indexSet_);\r\n };\r\n return IndexMap;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// TODO: For memory savings, don't store priorityNode_ if it's empty.\r\nvar EMPTY_NODE;\r\n/**\r\n * ChildrenNode is a class for storing internal nodes in a DataSnapshot\r\n * (i.e. nodes with children). It implements Node and stores the\r\n * list of children in the children property, sorted by child name.\r\n */\r\nvar ChildrenNode = /** @class */ (function () {\r\n /**\r\n * @param children_ - List of children of this node..\r\n * @param priorityNode_ - The priority of this node (as a snapshot node).\r\n */\r\n function ChildrenNode(children_, priorityNode_, indexMap_) {\r\n this.children_ = children_;\r\n this.priorityNode_ = priorityNode_;\r\n this.indexMap_ = indexMap_;\r\n this.lazyHash_ = null;\r\n /**\r\n * Note: The only reason we allow null priority is for EMPTY_NODE, since we can't use\r\n * EMPTY_NODE as the priority of EMPTY_NODE. We might want to consider making EMPTY_NODE its own\r\n * class instead of an empty ChildrenNode.\r\n */\r\n if (this.priorityNode_) {\r\n validatePriorityNode(this.priorityNode_);\r\n }\r\n if (this.children_.isEmpty()) {\r\n assert(!this.priorityNode_ || this.priorityNode_.isEmpty(), 'An empty node cannot have a priority');\r\n }\r\n }\r\n Object.defineProperty(ChildrenNode, \"EMPTY_NODE\", {\r\n get: function () {\r\n return (EMPTY_NODE ||\r\n (EMPTY_NODE = new ChildrenNode(new SortedMap(NAME_COMPARATOR), null, IndexMap.Default)));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.isLeafNode = function () {\r\n return false;\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.getPriority = function () {\r\n return this.priorityNode_ || EMPTY_NODE;\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.updatePriority = function (newPriorityNode) {\r\n if (this.children_.isEmpty()) {\r\n // Don't allow priorities on empty nodes\r\n return this;\r\n }\r\n else {\r\n return new ChildrenNode(this.children_, newPriorityNode, this.indexMap_);\r\n }\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.getImmediateChild = function (childName) {\r\n // Hack to treat priority as a regular child\r\n if (childName === '.priority') {\r\n return this.getPriority();\r\n }\r\n else {\r\n var child = this.children_.get(childName);\r\n return child === null ? EMPTY_NODE : child;\r\n }\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.getChild = function (path) {\r\n var front = pathGetFront(path);\r\n if (front === null) {\r\n return this;\r\n }\r\n return this.getImmediateChild(front).getChild(pathPopFront(path));\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.hasChild = function (childName) {\r\n return this.children_.get(childName) !== null;\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.updateImmediateChild = function (childName, newChildNode) {\r\n assert(newChildNode, 'We should always be passing snapshot nodes');\r\n if (childName === '.priority') {\r\n return this.updatePriority(newChildNode);\r\n }\r\n else {\r\n var namedNode = new NamedNode(childName, newChildNode);\r\n var newChildren = void 0, newIndexMap = void 0;\r\n if (newChildNode.isEmpty()) {\r\n newChildren = this.children_.remove(childName);\r\n newIndexMap = this.indexMap_.removeFromIndexes(namedNode, this.children_);\r\n }\r\n else {\r\n newChildren = this.children_.insert(childName, newChildNode);\r\n newIndexMap = this.indexMap_.addToIndexes(namedNode, this.children_);\r\n }\r\n var newPriority = newChildren.isEmpty()\r\n ? EMPTY_NODE\r\n : this.priorityNode_;\r\n return new ChildrenNode(newChildren, newPriority, newIndexMap);\r\n }\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.updateChild = function (path, newChildNode) {\r\n var front = pathGetFront(path);\r\n if (front === null) {\r\n return newChildNode;\r\n }\r\n else {\r\n assert(pathGetFront(path) !== '.priority' || pathGetLength(path) === 1, '.priority must be the last token in a path');\r\n var newImmediateChild = this.getImmediateChild(front).updateChild(pathPopFront(path), newChildNode);\r\n return this.updateImmediateChild(front, newImmediateChild);\r\n }\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.isEmpty = function () {\r\n return this.children_.isEmpty();\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.numChildren = function () {\r\n return this.children_.count();\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.val = function (exportFormat) {\r\n if (this.isEmpty()) {\r\n return null;\r\n }\r\n var obj = {};\r\n var numKeys = 0, maxKey = 0, allIntegerKeys = true;\r\n this.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n obj[key] = childNode.val(exportFormat);\r\n numKeys++;\r\n if (allIntegerKeys && ChildrenNode.INTEGER_REGEXP_.test(key)) {\r\n maxKey = Math.max(maxKey, Number(key));\r\n }\r\n else {\r\n allIntegerKeys = false;\r\n }\r\n });\r\n if (!exportFormat && allIntegerKeys && maxKey < 2 * numKeys) {\r\n // convert to array.\r\n var array = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (var key in obj) {\r\n array[key] = obj[key];\r\n }\r\n return array;\r\n }\r\n else {\r\n if (exportFormat && !this.getPriority().isEmpty()) {\r\n obj['.priority'] = this.getPriority().val();\r\n }\r\n return obj;\r\n }\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.hash = function () {\r\n if (this.lazyHash_ === null) {\r\n var toHash_1 = '';\r\n if (!this.getPriority().isEmpty()) {\r\n toHash_1 +=\r\n 'priority:' +\r\n priorityHashText(this.getPriority().val()) +\r\n ':';\r\n }\r\n this.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n var childHash = childNode.hash();\r\n if (childHash !== '') {\r\n toHash_1 += ':' + key + ':' + childHash;\r\n }\r\n });\r\n this.lazyHash_ = toHash_1 === '' ? '' : sha1(toHash_1);\r\n }\r\n return this.lazyHash_;\r\n };\r\n /** @inheritDoc */\r\n ChildrenNode.prototype.getPredecessorChildName = function (childName, childNode, index) {\r\n var idx = this.resolveIndex_(index);\r\n if (idx) {\r\n var predecessor = idx.getPredecessorKey(new NamedNode(childName, childNode));\r\n return predecessor ? predecessor.name : null;\r\n }\r\n else {\r\n return this.children_.getPredecessorKey(childName);\r\n }\r\n };\r\n ChildrenNode.prototype.getFirstChildName = function (indexDefinition) {\r\n var idx = this.resolveIndex_(indexDefinition);\r\n if (idx) {\r\n var minKey = idx.minKey();\r\n return minKey && minKey.name;\r\n }\r\n else {\r\n return this.children_.minKey();\r\n }\r\n };\r\n ChildrenNode.prototype.getFirstChild = function (indexDefinition) {\r\n var minKey = this.getFirstChildName(indexDefinition);\r\n if (minKey) {\r\n return new NamedNode(minKey, this.children_.get(minKey));\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Given an index, return the key name of the largest value we have, according to that index\r\n */\r\n ChildrenNode.prototype.getLastChildName = function (indexDefinition) {\r\n var idx = this.resolveIndex_(indexDefinition);\r\n if (idx) {\r\n var maxKey = idx.maxKey();\r\n return maxKey && maxKey.name;\r\n }\r\n else {\r\n return this.children_.maxKey();\r\n }\r\n };\r\n ChildrenNode.prototype.getLastChild = function (indexDefinition) {\r\n var maxKey = this.getLastChildName(indexDefinition);\r\n if (maxKey) {\r\n return new NamedNode(maxKey, this.children_.get(maxKey));\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n ChildrenNode.prototype.forEachChild = function (index, action) {\r\n var idx = this.resolveIndex_(index);\r\n if (idx) {\r\n return idx.inorderTraversal(function (wrappedNode) {\r\n return action(wrappedNode.name, wrappedNode.node);\r\n });\r\n }\r\n else {\r\n return this.children_.inorderTraversal(action);\r\n }\r\n };\r\n ChildrenNode.prototype.getIterator = function (indexDefinition) {\r\n return this.getIteratorFrom(indexDefinition.minPost(), indexDefinition);\r\n };\r\n ChildrenNode.prototype.getIteratorFrom = function (startPost, indexDefinition) {\r\n var idx = this.resolveIndex_(indexDefinition);\r\n if (idx) {\r\n return idx.getIteratorFrom(startPost, function (key) { return key; });\r\n }\r\n else {\r\n var iterator = this.children_.getIteratorFrom(startPost.name, NamedNode.Wrap);\r\n var next = iterator.peek();\r\n while (next != null && indexDefinition.compare(next, startPost) < 0) {\r\n iterator.getNext();\r\n next = iterator.peek();\r\n }\r\n return iterator;\r\n }\r\n };\r\n ChildrenNode.prototype.getReverseIterator = function (indexDefinition) {\r\n return this.getReverseIteratorFrom(indexDefinition.maxPost(), indexDefinition);\r\n };\r\n ChildrenNode.prototype.getReverseIteratorFrom = function (endPost, indexDefinition) {\r\n var idx = this.resolveIndex_(indexDefinition);\r\n if (idx) {\r\n return idx.getReverseIteratorFrom(endPost, function (key) {\r\n return key;\r\n });\r\n }\r\n else {\r\n var iterator = this.children_.getReverseIteratorFrom(endPost.name, NamedNode.Wrap);\r\n var next = iterator.peek();\r\n while (next != null && indexDefinition.compare(next, endPost) > 0) {\r\n iterator.getNext();\r\n next = iterator.peek();\r\n }\r\n return iterator;\r\n }\r\n };\r\n ChildrenNode.prototype.compareTo = function (other) {\r\n if (this.isEmpty()) {\r\n if (other.isEmpty()) {\r\n return 0;\r\n }\r\n else {\r\n return -1;\r\n }\r\n }\r\n else if (other.isLeafNode() || other.isEmpty()) {\r\n return 1;\r\n }\r\n else if (other === MAX_NODE) {\r\n return -1;\r\n }\r\n else {\r\n // Must be another node with children.\r\n return 0;\r\n }\r\n };\r\n ChildrenNode.prototype.withIndex = function (indexDefinition) {\r\n if (indexDefinition === KEY_INDEX ||\r\n this.indexMap_.hasIndex(indexDefinition)) {\r\n return this;\r\n }\r\n else {\r\n var newIndexMap = this.indexMap_.addIndex(indexDefinition, this.children_);\r\n return new ChildrenNode(this.children_, this.priorityNode_, newIndexMap);\r\n }\r\n };\r\n ChildrenNode.prototype.isIndexed = function (index) {\r\n return index === KEY_INDEX || this.indexMap_.hasIndex(index);\r\n };\r\n ChildrenNode.prototype.equals = function (other) {\r\n if (other === this) {\r\n return true;\r\n }\r\n else if (other.isLeafNode()) {\r\n return false;\r\n }\r\n else {\r\n var otherChildrenNode = other;\r\n if (!this.getPriority().equals(otherChildrenNode.getPriority())) {\r\n return false;\r\n }\r\n else if (this.children_.count() === otherChildrenNode.children_.count()) {\r\n var thisIter = this.getIterator(PRIORITY_INDEX);\r\n var otherIter = otherChildrenNode.getIterator(PRIORITY_INDEX);\r\n var thisCurrent = thisIter.getNext();\r\n var otherCurrent = otherIter.getNext();\r\n while (thisCurrent && otherCurrent) {\r\n if (thisCurrent.name !== otherCurrent.name ||\r\n !thisCurrent.node.equals(otherCurrent.node)) {\r\n return false;\r\n }\r\n thisCurrent = thisIter.getNext();\r\n otherCurrent = otherIter.getNext();\r\n }\r\n return thisCurrent === null && otherCurrent === null;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n };\r\n /**\r\n * Returns a SortedMap ordered by index, or null if the default (by-key) ordering can be used\r\n * instead.\r\n *\r\n */\r\n ChildrenNode.prototype.resolveIndex_ = function (indexDefinition) {\r\n if (indexDefinition === KEY_INDEX) {\r\n return null;\r\n }\r\n else {\r\n return this.indexMap_.get(indexDefinition.toString());\r\n }\r\n };\r\n ChildrenNode.INTEGER_REGEXP_ = /^(0|[1-9]\\d*)$/;\r\n return ChildrenNode;\r\n}());\r\nvar MaxNode = /** @class */ (function (_super) {\r\n __extends(MaxNode, _super);\r\n function MaxNode() {\r\n return _super.call(this, new SortedMap(NAME_COMPARATOR), ChildrenNode.EMPTY_NODE, IndexMap.Default) || this;\r\n }\r\n MaxNode.prototype.compareTo = function (other) {\r\n if (other === this) {\r\n return 0;\r\n }\r\n else {\r\n return 1;\r\n }\r\n };\r\n MaxNode.prototype.equals = function (other) {\r\n // Not that we every compare it, but MAX_NODE is only ever equal to itself\r\n return other === this;\r\n };\r\n MaxNode.prototype.getPriority = function () {\r\n return this;\r\n };\r\n MaxNode.prototype.getImmediateChild = function (childName) {\r\n return ChildrenNode.EMPTY_NODE;\r\n };\r\n MaxNode.prototype.isEmpty = function () {\r\n return false;\r\n };\r\n return MaxNode;\r\n}(ChildrenNode));\r\n/**\r\n * Marker that will sort higher than any other snapshot.\r\n */\r\nvar MAX_NODE = new MaxNode();\r\nObject.defineProperties(NamedNode, {\r\n MIN: {\r\n value: new NamedNode(MIN_NAME, ChildrenNode.EMPTY_NODE)\r\n },\r\n MAX: {\r\n value: new NamedNode(MAX_NAME, MAX_NODE)\r\n }\r\n});\r\n/**\r\n * Reference Extensions\r\n */\r\nKeyIndex.__EMPTY_NODE = ChildrenNode.EMPTY_NODE;\r\nLeafNode.__childrenNodeConstructor = ChildrenNode;\r\nsetMaxNode$1(MAX_NODE);\r\nsetMaxNode(MAX_NODE);\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar USE_HINZE = true;\r\n/**\r\n * Constructs a snapshot node representing the passed JSON and returns it.\r\n * @param json - JSON to create a node for.\r\n * @param priority - Optional priority to use. This will be ignored if the\r\n * passed JSON contains a .priority property.\r\n */\r\nfunction nodeFromJSON(json, priority) {\r\n if (priority === void 0) { priority = null; }\r\n if (json === null) {\r\n return ChildrenNode.EMPTY_NODE;\r\n }\r\n if (typeof json === 'object' && '.priority' in json) {\r\n priority = json['.priority'];\r\n }\r\n assert(priority === null ||\r\n typeof priority === 'string' ||\r\n typeof priority === 'number' ||\r\n (typeof priority === 'object' && '.sv' in priority), 'Invalid priority type found: ' + typeof priority);\r\n if (typeof json === 'object' && '.value' in json && json['.value'] !== null) {\r\n json = json['.value'];\r\n }\r\n // Valid leaf nodes include non-objects or server-value wrapper objects\r\n if (typeof json !== 'object' || '.sv' in json) {\r\n var jsonLeaf = json;\r\n return new LeafNode(jsonLeaf, nodeFromJSON(priority));\r\n }\r\n if (!(json instanceof Array) && USE_HINZE) {\r\n var children_1 = [];\r\n var childrenHavePriority_1 = false;\r\n var hinzeJsonObj = json;\r\n each(hinzeJsonObj, function (key, child) {\r\n if (key.substring(0, 1) !== '.') {\r\n // Ignore metadata nodes\r\n var childNode = nodeFromJSON(child);\r\n if (!childNode.isEmpty()) {\r\n childrenHavePriority_1 =\r\n childrenHavePriority_1 || !childNode.getPriority().isEmpty();\r\n children_1.push(new NamedNode(key, childNode));\r\n }\r\n }\r\n });\r\n if (children_1.length === 0) {\r\n return ChildrenNode.EMPTY_NODE;\r\n }\r\n var childSet = buildChildSet(children_1, NAME_ONLY_COMPARATOR, function (namedNode) { return namedNode.name; }, NAME_COMPARATOR);\r\n if (childrenHavePriority_1) {\r\n var sortedChildSet = buildChildSet(children_1, PRIORITY_INDEX.getCompare());\r\n return new ChildrenNode(childSet, nodeFromJSON(priority), new IndexMap({ '.priority': sortedChildSet }, { '.priority': PRIORITY_INDEX }));\r\n }\r\n else {\r\n return new ChildrenNode(childSet, nodeFromJSON(priority), IndexMap.Default);\r\n }\r\n }\r\n else {\r\n var node_1 = ChildrenNode.EMPTY_NODE;\r\n each(json, function (key, childData) {\r\n if (contains(json, key)) {\r\n if (key.substring(0, 1) !== '.') {\r\n // ignore metadata nodes.\r\n var childNode = nodeFromJSON(childData);\r\n if (childNode.isLeafNode() || !childNode.isEmpty()) {\r\n node_1 = node_1.updateImmediateChild(key, childNode);\r\n }\r\n }\r\n }\r\n });\r\n return node_1.updatePriority(nodeFromJSON(priority));\r\n }\r\n}\r\nsetNodeFromJSON(nodeFromJSON);\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar PathIndex = /** @class */ (function (_super) {\r\n __extends(PathIndex, _super);\r\n function PathIndex(indexPath_) {\r\n var _this = _super.call(this) || this;\r\n _this.indexPath_ = indexPath_;\r\n assert(!pathIsEmpty(indexPath_) && pathGetFront(indexPath_) !== '.priority', \"Can't create PathIndex with empty path or .priority key\");\r\n return _this;\r\n }\r\n PathIndex.prototype.extractChild = function (snap) {\r\n return snap.getChild(this.indexPath_);\r\n };\r\n PathIndex.prototype.isDefinedOn = function (node) {\r\n return !node.getChild(this.indexPath_).isEmpty();\r\n };\r\n PathIndex.prototype.compare = function (a, b) {\r\n var aChild = this.extractChild(a.node);\r\n var bChild = this.extractChild(b.node);\r\n var indexCmp = aChild.compareTo(bChild);\r\n if (indexCmp === 0) {\r\n return nameCompare(a.name, b.name);\r\n }\r\n else {\r\n return indexCmp;\r\n }\r\n };\r\n PathIndex.prototype.makePost = function (indexValue, name) {\r\n var valueNode = nodeFromJSON(indexValue);\r\n var node = ChildrenNode.EMPTY_NODE.updateChild(this.indexPath_, valueNode);\r\n return new NamedNode(name, node);\r\n };\r\n PathIndex.prototype.maxPost = function () {\r\n var node = ChildrenNode.EMPTY_NODE.updateChild(this.indexPath_, MAX_NODE);\r\n return new NamedNode(MAX_NAME, node);\r\n };\r\n PathIndex.prototype.toString = function () {\r\n return pathSlice(this.indexPath_, 0).join('/');\r\n };\r\n return PathIndex;\r\n}(Index));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ValueIndex = /** @class */ (function (_super) {\r\n __extends(ValueIndex, _super);\r\n function ValueIndex() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ValueIndex.prototype.compare = function (a, b) {\r\n var indexCmp = a.node.compareTo(b.node);\r\n if (indexCmp === 0) {\r\n return nameCompare(a.name, b.name);\r\n }\r\n else {\r\n return indexCmp;\r\n }\r\n };\r\n ValueIndex.prototype.isDefinedOn = function (node) {\r\n return true;\r\n };\r\n ValueIndex.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n return !oldNode.equals(newNode);\r\n };\r\n ValueIndex.prototype.minPost = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return NamedNode.MIN;\r\n };\r\n ValueIndex.prototype.maxPost = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return NamedNode.MAX;\r\n };\r\n ValueIndex.prototype.makePost = function (indexValue, name) {\r\n var valueNode = nodeFromJSON(indexValue);\r\n return new NamedNode(name, valueNode);\r\n };\r\n /**\r\n * @returns String representation for inclusion in a query spec\r\n */\r\n ValueIndex.prototype.toString = function () {\r\n return '.value';\r\n };\r\n return ValueIndex;\r\n}(Index));\r\nvar VALUE_INDEX = new ValueIndex();\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Modeled after base64 web-safe chars, but ordered by ASCII.\r\nvar PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';\r\nvar MIN_PUSH_CHAR = '-';\r\nvar MAX_PUSH_CHAR = 'z';\r\nvar MAX_KEY_LEN = 786;\r\n/**\r\n * Fancy ID generator that creates 20-character string identifiers with the\r\n * following properties:\r\n *\r\n * 1. They're based on timestamp so that they sort *after* any existing ids.\r\n * 2. They contain 72-bits of random data after the timestamp so that IDs won't\r\n * collide with other clients' IDs.\r\n * 3. They sort *lexicographically* (so the timestamp is converted to characters\r\n * that will sort properly).\r\n * 4. They're monotonically increasing. Even if you generate more than one in\r\n * the same timestamp, the latter ones will sort after the former ones. We do\r\n * this by using the previous random bits but \"incrementing\" them by 1 (only\r\n * in the case of a timestamp collision).\r\n */\r\nvar nextPushId = (function () {\r\n // Timestamp of last push, used to prevent local collisions if you push twice\r\n // in one ms.\r\n var lastPushTime = 0;\r\n // We generate 72-bits of randomness which get turned into 12 characters and\r\n // appended to the timestamp to prevent collisions with other clients. We\r\n // store the last characters we generated because in the event of a collision,\r\n // we'll use those same characters except \"incremented\" by one.\r\n var lastRandChars = [];\r\n return function (now) {\r\n var duplicateTime = now === lastPushTime;\r\n lastPushTime = now;\r\n var i;\r\n var timeStampChars = new Array(8);\r\n for (i = 7; i >= 0; i--) {\r\n timeStampChars[i] = PUSH_CHARS.charAt(now % 64);\r\n // NOTE: Can't use << here because javascript will convert to int and lose\r\n // the upper bits.\r\n now = Math.floor(now / 64);\r\n }\r\n assert(now === 0, 'Cannot push at time == 0');\r\n var id = timeStampChars.join('');\r\n if (!duplicateTime) {\r\n for (i = 0; i < 12; i++) {\r\n lastRandChars[i] = Math.floor(Math.random() * 64);\r\n }\r\n }\r\n else {\r\n // If the timestamp hasn't changed since last push, use the same random\r\n // number, except incremented by 1.\r\n for (i = 11; i >= 0 && lastRandChars[i] === 63; i--) {\r\n lastRandChars[i] = 0;\r\n }\r\n lastRandChars[i]++;\r\n }\r\n for (i = 0; i < 12; i++) {\r\n id += PUSH_CHARS.charAt(lastRandChars[i]);\r\n }\r\n assert(id.length === 20, 'nextPushId: Length should be 20.');\r\n return id;\r\n };\r\n})();\r\nvar successor = function (key) {\r\n if (key === '' + INTEGER_32_MAX) {\r\n // See https://firebase.google.com/docs/database/web/lists-of-data#data-order\r\n return MIN_PUSH_CHAR;\r\n }\r\n var keyAsInt = tryParseInt(key);\r\n if (keyAsInt != null) {\r\n return '' + (keyAsInt + 1);\r\n }\r\n var next = new Array(key.length);\r\n for (var i_1 = 0; i_1 < next.length; i_1++) {\r\n next[i_1] = key.charAt(i_1);\r\n }\r\n if (next.length < MAX_KEY_LEN) {\r\n next.push(MIN_PUSH_CHAR);\r\n return next.join('');\r\n }\r\n var i = next.length - 1;\r\n while (i >= 0 && next[i] === MAX_PUSH_CHAR) {\r\n i--;\r\n }\r\n // `successor` was called on the largest possible key, so return the\r\n // MAX_NAME, which sorts larger than all keys.\r\n if (i === -1) {\r\n return MAX_NAME;\r\n }\r\n var source = next[i];\r\n var sourcePlusOne = PUSH_CHARS.charAt(PUSH_CHARS.indexOf(source) + 1);\r\n next[i] = sourcePlusOne;\r\n return next.slice(0, i + 1).join('');\r\n};\r\n// `key` is assumed to be non-empty.\r\nvar predecessor = function (key) {\r\n if (key === '' + INTEGER_32_MIN) {\r\n return MIN_NAME;\r\n }\r\n var keyAsInt = tryParseInt(key);\r\n if (keyAsInt != null) {\r\n return '' + (keyAsInt - 1);\r\n }\r\n var next = new Array(key.length);\r\n for (var i = 0; i < next.length; i++) {\r\n next[i] = key.charAt(i);\r\n }\r\n // If `key` ends in `MIN_PUSH_CHAR`, the largest key lexicographically\r\n // smaller than `key`, is `key[0:key.length - 1]`. The next key smaller\r\n // than that, `predecessor(predecessor(key))`, is\r\n //\r\n // `key[0:key.length - 2] + (key[key.length - 1] - 1) + \\\r\n // { MAX_PUSH_CHAR repeated MAX_KEY_LEN - (key.length - 1) times }\r\n //\r\n // analogous to increment/decrement for base-10 integers.\r\n //\r\n // This works because lexigographic comparison works character-by-character,\r\n // using length as a tie-breaker if one key is a prefix of the other.\r\n if (next[next.length - 1] === MIN_PUSH_CHAR) {\r\n if (next.length === 1) {\r\n // See https://firebase.google.com/docs/database/web/lists-of-data#orderbykey\r\n return '' + INTEGER_32_MAX;\r\n }\r\n delete next[next.length - 1];\r\n return next.join('');\r\n }\r\n // Replace the last character with it's immediate predecessor, and\r\n // fill the suffix of the key with MAX_PUSH_CHAR. This is the\r\n // lexicographically largest possible key smaller than `key`.\r\n next[next.length - 1] = PUSH_CHARS.charAt(PUSH_CHARS.indexOf(next[next.length - 1]) - 1);\r\n return next.join('') + MAX_PUSH_CHAR.repeat(MAX_KEY_LEN - next.length);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction changeValue(snapshotNode) {\r\n return { type: \"value\" /* VALUE */, snapshotNode: snapshotNode };\r\n}\r\nfunction changeChildAdded(childName, snapshotNode) {\r\n return { type: \"child_added\" /* CHILD_ADDED */, snapshotNode: snapshotNode, childName: childName };\r\n}\r\nfunction changeChildRemoved(childName, snapshotNode) {\r\n return { type: \"child_removed\" /* CHILD_REMOVED */, snapshotNode: snapshotNode, childName: childName };\r\n}\r\nfunction changeChildChanged(childName, snapshotNode, oldSnap) {\r\n return {\r\n type: \"child_changed\" /* CHILD_CHANGED */,\r\n snapshotNode: snapshotNode,\r\n childName: childName,\r\n oldSnap: oldSnap\r\n };\r\n}\r\nfunction changeChildMoved(childName, snapshotNode) {\r\n return { type: \"child_moved\" /* CHILD_MOVED */, snapshotNode: snapshotNode, childName: childName };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Doesn't really filter nodes but applies an index to the node and keeps track of any changes\r\n */\r\nvar IndexedFilter = /** @class */ (function () {\r\n function IndexedFilter(index_) {\r\n this.index_ = index_;\r\n }\r\n IndexedFilter.prototype.updateChild = function (snap, key, newChild, affectedPath, source, optChangeAccumulator) {\r\n assert(snap.isIndexed(this.index_), 'A node must be indexed if only a child is updated');\r\n var oldChild = snap.getImmediateChild(key);\r\n // Check if anything actually changed.\r\n if (oldChild.getChild(affectedPath).equals(newChild.getChild(affectedPath))) {\r\n // There's an edge case where a child can enter or leave the view because affectedPath was set to null.\r\n // In this case, affectedPath will appear null in both the old and new snapshots. So we need\r\n // to avoid treating these cases as \"nothing changed.\"\r\n if (oldChild.isEmpty() === newChild.isEmpty()) {\r\n // Nothing changed.\r\n // This assert should be valid, but it's expensive (can dominate perf testing) so don't actually do it.\r\n //assert(oldChild.equals(newChild), 'Old and new snapshots should be equal.');\r\n return snap;\r\n }\r\n }\r\n if (optChangeAccumulator != null) {\r\n if (newChild.isEmpty()) {\r\n if (snap.hasChild(key)) {\r\n optChangeAccumulator.trackChildChange(changeChildRemoved(key, oldChild));\r\n }\r\n else {\r\n assert(snap.isLeafNode(), 'A child remove without an old child only makes sense on a leaf node');\r\n }\r\n }\r\n else if (oldChild.isEmpty()) {\r\n optChangeAccumulator.trackChildChange(changeChildAdded(key, newChild));\r\n }\r\n else {\r\n optChangeAccumulator.trackChildChange(changeChildChanged(key, newChild, oldChild));\r\n }\r\n }\r\n if (snap.isLeafNode() && newChild.isEmpty()) {\r\n return snap;\r\n }\r\n else {\r\n // Make sure the node is indexed\r\n return snap.updateImmediateChild(key, newChild).withIndex(this.index_);\r\n }\r\n };\r\n IndexedFilter.prototype.updateFullNode = function (oldSnap, newSnap, optChangeAccumulator) {\r\n if (optChangeAccumulator != null) {\r\n if (!oldSnap.isLeafNode()) {\r\n oldSnap.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n if (!newSnap.hasChild(key)) {\r\n optChangeAccumulator.trackChildChange(changeChildRemoved(key, childNode));\r\n }\r\n });\r\n }\r\n if (!newSnap.isLeafNode()) {\r\n newSnap.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n if (oldSnap.hasChild(key)) {\r\n var oldChild = oldSnap.getImmediateChild(key);\r\n if (!oldChild.equals(childNode)) {\r\n optChangeAccumulator.trackChildChange(changeChildChanged(key, childNode, oldChild));\r\n }\r\n }\r\n else {\r\n optChangeAccumulator.trackChildChange(changeChildAdded(key, childNode));\r\n }\r\n });\r\n }\r\n }\r\n return newSnap.withIndex(this.index_);\r\n };\r\n IndexedFilter.prototype.updatePriority = function (oldSnap, newPriority) {\r\n if (oldSnap.isEmpty()) {\r\n return ChildrenNode.EMPTY_NODE;\r\n }\r\n else {\r\n return oldSnap.updatePriority(newPriority);\r\n }\r\n };\r\n IndexedFilter.prototype.filtersNodes = function () {\r\n return false;\r\n };\r\n IndexedFilter.prototype.getIndexedFilter = function () {\r\n return this;\r\n };\r\n IndexedFilter.prototype.getIndex = function () {\r\n return this.index_;\r\n };\r\n return IndexedFilter;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Filters nodes by range and uses an IndexFilter to track any changes after filtering the node\r\n */\r\nvar RangedFilter = /** @class */ (function () {\r\n function RangedFilter(params) {\r\n this.indexedFilter_ = new IndexedFilter(params.getIndex());\r\n this.index_ = params.getIndex();\r\n this.startPost_ = RangedFilter.getStartPost_(params);\r\n this.endPost_ = RangedFilter.getEndPost_(params);\r\n }\r\n RangedFilter.prototype.getStartPost = function () {\r\n return this.startPost_;\r\n };\r\n RangedFilter.prototype.getEndPost = function () {\r\n return this.endPost_;\r\n };\r\n RangedFilter.prototype.matches = function (node) {\r\n return (this.index_.compare(this.getStartPost(), node) <= 0 &&\r\n this.index_.compare(node, this.getEndPost()) <= 0);\r\n };\r\n RangedFilter.prototype.updateChild = function (snap, key, newChild, affectedPath, source, optChangeAccumulator) {\r\n if (!this.matches(new NamedNode(key, newChild))) {\r\n newChild = ChildrenNode.EMPTY_NODE;\r\n }\r\n return this.indexedFilter_.updateChild(snap, key, newChild, affectedPath, source, optChangeAccumulator);\r\n };\r\n RangedFilter.prototype.updateFullNode = function (oldSnap, newSnap, optChangeAccumulator) {\r\n if (newSnap.isLeafNode()) {\r\n // Make sure we have a children node with the correct index, not a leaf node;\r\n newSnap = ChildrenNode.EMPTY_NODE;\r\n }\r\n var filtered = newSnap.withIndex(this.index_);\r\n // Don't support priorities on queries\r\n filtered = filtered.updatePriority(ChildrenNode.EMPTY_NODE);\r\n var self = this;\r\n newSnap.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n if (!self.matches(new NamedNode(key, childNode))) {\r\n filtered = filtered.updateImmediateChild(key, ChildrenNode.EMPTY_NODE);\r\n }\r\n });\r\n return this.indexedFilter_.updateFullNode(oldSnap, filtered, optChangeAccumulator);\r\n };\r\n RangedFilter.prototype.updatePriority = function (oldSnap, newPriority) {\r\n // Don't support priorities on queries\r\n return oldSnap;\r\n };\r\n RangedFilter.prototype.filtersNodes = function () {\r\n return true;\r\n };\r\n RangedFilter.prototype.getIndexedFilter = function () {\r\n return this.indexedFilter_;\r\n };\r\n RangedFilter.prototype.getIndex = function () {\r\n return this.index_;\r\n };\r\n RangedFilter.getStartPost_ = function (params) {\r\n if (params.hasStart()) {\r\n var startName = params.getIndexStartName();\r\n return params.getIndex().makePost(params.getIndexStartValue(), startName);\r\n }\r\n else {\r\n return params.getIndex().minPost();\r\n }\r\n };\r\n RangedFilter.getEndPost_ = function (params) {\r\n if (params.hasEnd()) {\r\n var endName = params.getIndexEndName();\r\n return params.getIndex().makePost(params.getIndexEndValue(), endName);\r\n }\r\n else {\r\n return params.getIndex().maxPost();\r\n }\r\n };\r\n return RangedFilter;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Applies a limit and a range to a node and uses RangedFilter to do the heavy lifting where possible\r\n */\r\nvar LimitedFilter = /** @class */ (function () {\r\n function LimitedFilter(params) {\r\n this.rangedFilter_ = new RangedFilter(params);\r\n this.index_ = params.getIndex();\r\n this.limit_ = params.getLimit();\r\n this.reverse_ = !params.isViewFromLeft();\r\n }\r\n LimitedFilter.prototype.updateChild = function (snap, key, newChild, affectedPath, source, optChangeAccumulator) {\r\n if (!this.rangedFilter_.matches(new NamedNode(key, newChild))) {\r\n newChild = ChildrenNode.EMPTY_NODE;\r\n }\r\n if (snap.getImmediateChild(key).equals(newChild)) {\r\n // No change\r\n return snap;\r\n }\r\n else if (snap.numChildren() < this.limit_) {\r\n return this.rangedFilter_\r\n .getIndexedFilter()\r\n .updateChild(snap, key, newChild, affectedPath, source, optChangeAccumulator);\r\n }\r\n else {\r\n return this.fullLimitUpdateChild_(snap, key, newChild, source, optChangeAccumulator);\r\n }\r\n };\r\n LimitedFilter.prototype.updateFullNode = function (oldSnap, newSnap, optChangeAccumulator) {\r\n var filtered;\r\n if (newSnap.isLeafNode() || newSnap.isEmpty()) {\r\n // Make sure we have a children node with the correct index, not a leaf node;\r\n filtered = ChildrenNode.EMPTY_NODE.withIndex(this.index_);\r\n }\r\n else {\r\n if (this.limit_ * 2 < newSnap.numChildren() &&\r\n newSnap.isIndexed(this.index_)) {\r\n // Easier to build up a snapshot, since what we're given has more than twice the elements we want\r\n filtered = ChildrenNode.EMPTY_NODE.withIndex(this.index_);\r\n // anchor to the startPost, endPost, or last element as appropriate\r\n var iterator = void 0;\r\n if (this.reverse_) {\r\n iterator = newSnap.getReverseIteratorFrom(this.rangedFilter_.getEndPost(), this.index_);\r\n }\r\n else {\r\n iterator = newSnap.getIteratorFrom(this.rangedFilter_.getStartPost(), this.index_);\r\n }\r\n var count = 0;\r\n while (iterator.hasNext() && count < this.limit_) {\r\n var next = iterator.getNext();\r\n var inRange = void 0;\r\n if (this.reverse_) {\r\n inRange =\r\n this.index_.compare(this.rangedFilter_.getStartPost(), next) <= 0;\r\n }\r\n else {\r\n inRange =\r\n this.index_.compare(next, this.rangedFilter_.getEndPost()) <= 0;\r\n }\r\n if (inRange) {\r\n filtered = filtered.updateImmediateChild(next.name, next.node);\r\n count++;\r\n }\r\n else {\r\n // if we have reached the end post, we cannot keep adding elemments\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n // The snap contains less than twice the limit. Faster to delete from the snap than build up a new one\r\n filtered = newSnap.withIndex(this.index_);\r\n // Don't support priorities on queries\r\n filtered = filtered.updatePriority(ChildrenNode.EMPTY_NODE);\r\n var startPost = void 0;\r\n var endPost = void 0;\r\n var cmp = void 0;\r\n var iterator = void 0;\r\n if (this.reverse_) {\r\n iterator = filtered.getReverseIterator(this.index_);\r\n startPost = this.rangedFilter_.getEndPost();\r\n endPost = this.rangedFilter_.getStartPost();\r\n var indexCompare_1 = this.index_.getCompare();\r\n cmp = function (a, b) { return indexCompare_1(b, a); };\r\n }\r\n else {\r\n iterator = filtered.getIterator(this.index_);\r\n startPost = this.rangedFilter_.getStartPost();\r\n endPost = this.rangedFilter_.getEndPost();\r\n cmp = this.index_.getCompare();\r\n }\r\n var count = 0;\r\n var foundStartPost = false;\r\n while (iterator.hasNext()) {\r\n var next = iterator.getNext();\r\n if (!foundStartPost && cmp(startPost, next) <= 0) {\r\n // start adding\r\n foundStartPost = true;\r\n }\r\n var inRange = foundStartPost && count < this.limit_ && cmp(next, endPost) <= 0;\r\n if (inRange) {\r\n count++;\r\n }\r\n else {\r\n filtered = filtered.updateImmediateChild(next.name, ChildrenNode.EMPTY_NODE);\r\n }\r\n }\r\n }\r\n }\r\n return this.rangedFilter_\r\n .getIndexedFilter()\r\n .updateFullNode(oldSnap, filtered, optChangeAccumulator);\r\n };\r\n LimitedFilter.prototype.updatePriority = function (oldSnap, newPriority) {\r\n // Don't support priorities on queries\r\n return oldSnap;\r\n };\r\n LimitedFilter.prototype.filtersNodes = function () {\r\n return true;\r\n };\r\n LimitedFilter.prototype.getIndexedFilter = function () {\r\n return this.rangedFilter_.getIndexedFilter();\r\n };\r\n LimitedFilter.prototype.getIndex = function () {\r\n return this.index_;\r\n };\r\n LimitedFilter.prototype.fullLimitUpdateChild_ = function (snap, childKey, childSnap, source, changeAccumulator) {\r\n // TODO: rename all cache stuff etc to general snap terminology\r\n var cmp;\r\n if (this.reverse_) {\r\n var indexCmp_1 = this.index_.getCompare();\r\n cmp = function (a, b) { return indexCmp_1(b, a); };\r\n }\r\n else {\r\n cmp = this.index_.getCompare();\r\n }\r\n var oldEventCache = snap;\r\n assert(oldEventCache.numChildren() === this.limit_, '');\r\n var newChildNamedNode = new NamedNode(childKey, childSnap);\r\n var windowBoundary = this.reverse_\r\n ? oldEventCache.getFirstChild(this.index_)\r\n : oldEventCache.getLastChild(this.index_);\r\n var inRange = this.rangedFilter_.matches(newChildNamedNode);\r\n if (oldEventCache.hasChild(childKey)) {\r\n var oldChildSnap = oldEventCache.getImmediateChild(childKey);\r\n var nextChild = source.getChildAfterChild(this.index_, windowBoundary, this.reverse_);\r\n while (nextChild != null &&\r\n (nextChild.name === childKey || oldEventCache.hasChild(nextChild.name))) {\r\n // There is a weird edge case where a node is updated as part of a merge in the write tree, but hasn't\r\n // been applied to the limited filter yet. Ignore this next child which will be updated later in\r\n // the limited filter...\r\n nextChild = source.getChildAfterChild(this.index_, nextChild, this.reverse_);\r\n }\r\n var compareNext = nextChild == null ? 1 : cmp(nextChild, newChildNamedNode);\r\n var remainsInWindow = inRange && !childSnap.isEmpty() && compareNext >= 0;\r\n if (remainsInWindow) {\r\n if (changeAccumulator != null) {\r\n changeAccumulator.trackChildChange(changeChildChanged(childKey, childSnap, oldChildSnap));\r\n }\r\n return oldEventCache.updateImmediateChild(childKey, childSnap);\r\n }\r\n else {\r\n if (changeAccumulator != null) {\r\n changeAccumulator.trackChildChange(changeChildRemoved(childKey, oldChildSnap));\r\n }\r\n var newEventCache = oldEventCache.updateImmediateChild(childKey, ChildrenNode.EMPTY_NODE);\r\n var nextChildInRange = nextChild != null && this.rangedFilter_.matches(nextChild);\r\n if (nextChildInRange) {\r\n if (changeAccumulator != null) {\r\n changeAccumulator.trackChildChange(changeChildAdded(nextChild.name, nextChild.node));\r\n }\r\n return newEventCache.updateImmediateChild(nextChild.name, nextChild.node);\r\n }\r\n else {\r\n return newEventCache;\r\n }\r\n }\r\n }\r\n else if (childSnap.isEmpty()) {\r\n // we're deleting a node, but it was not in the window, so ignore it\r\n return snap;\r\n }\r\n else if (inRange) {\r\n if (cmp(windowBoundary, newChildNamedNode) >= 0) {\r\n if (changeAccumulator != null) {\r\n changeAccumulator.trackChildChange(changeChildRemoved(windowBoundary.name, windowBoundary.node));\r\n changeAccumulator.trackChildChange(changeChildAdded(childKey, childSnap));\r\n }\r\n return oldEventCache\r\n .updateImmediateChild(childKey, childSnap)\r\n .updateImmediateChild(windowBoundary.name, ChildrenNode.EMPTY_NODE);\r\n }\r\n else {\r\n return snap;\r\n }\r\n }\r\n else {\r\n return snap;\r\n }\r\n };\r\n return LimitedFilter;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This class is an immutable-from-the-public-api struct containing a set of query parameters defining a\r\n * range to be returned for a particular location. It is assumed that validation of parameters is done at the\r\n * user-facing API level, so it is not done here.\r\n */\r\nvar QueryParams = /** @class */ (function () {\r\n function QueryParams() {\r\n this.limitSet_ = false;\r\n this.startSet_ = false;\r\n this.startNameSet_ = false;\r\n this.startAfterSet_ = false;\r\n this.endSet_ = false;\r\n this.endNameSet_ = false;\r\n this.endBeforeSet_ = false;\r\n this.limit_ = 0;\r\n this.viewFrom_ = '';\r\n this.indexStartValue_ = null;\r\n this.indexStartName_ = '';\r\n this.indexEndValue_ = null;\r\n this.indexEndName_ = '';\r\n this.index_ = PRIORITY_INDEX;\r\n }\r\n QueryParams.prototype.hasStart = function () {\r\n return this.startSet_;\r\n };\r\n QueryParams.prototype.hasStartAfter = function () {\r\n return this.startAfterSet_;\r\n };\r\n QueryParams.prototype.hasEndBefore = function () {\r\n return this.endBeforeSet_;\r\n };\r\n /**\r\n * @returns True if it would return from left.\r\n */\r\n QueryParams.prototype.isViewFromLeft = function () {\r\n if (this.viewFrom_ === '') {\r\n // limit(), rather than limitToFirst or limitToLast was called.\r\n // This means that only one of startSet_ and endSet_ is true. Use them\r\n // to calculate which side of the view to anchor to. If neither is set,\r\n // anchor to the end.\r\n return this.startSet_;\r\n }\r\n else {\r\n return this.viewFrom_ === \"l\" /* VIEW_FROM_LEFT */;\r\n }\r\n };\r\n /**\r\n * Only valid to call if hasStart() returns true\r\n */\r\n QueryParams.prototype.getIndexStartValue = function () {\r\n assert(this.startSet_, 'Only valid if start has been set');\r\n return this.indexStartValue_;\r\n };\r\n /**\r\n * Only valid to call if hasStart() returns true.\r\n * Returns the starting key name for the range defined by these query parameters\r\n */\r\n QueryParams.prototype.getIndexStartName = function () {\r\n assert(this.startSet_, 'Only valid if start has been set');\r\n if (this.startNameSet_) {\r\n return this.indexStartName_;\r\n }\r\n else {\r\n return MIN_NAME;\r\n }\r\n };\r\n QueryParams.prototype.hasEnd = function () {\r\n return this.endSet_;\r\n };\r\n /**\r\n * Only valid to call if hasEnd() returns true.\r\n */\r\n QueryParams.prototype.getIndexEndValue = function () {\r\n assert(this.endSet_, 'Only valid if end has been set');\r\n return this.indexEndValue_;\r\n };\r\n /**\r\n * Only valid to call if hasEnd() returns true.\r\n * Returns the end key name for the range defined by these query parameters\r\n */\r\n QueryParams.prototype.getIndexEndName = function () {\r\n assert(this.endSet_, 'Only valid if end has been set');\r\n if (this.endNameSet_) {\r\n return this.indexEndName_;\r\n }\r\n else {\r\n return MAX_NAME;\r\n }\r\n };\r\n QueryParams.prototype.hasLimit = function () {\r\n return this.limitSet_;\r\n };\r\n /**\r\n * @returns True if a limit has been set and it has been explicitly anchored\r\n */\r\n QueryParams.prototype.hasAnchoredLimit = function () {\r\n return this.limitSet_ && this.viewFrom_ !== '';\r\n };\r\n /**\r\n * Only valid to call if hasLimit() returns true\r\n */\r\n QueryParams.prototype.getLimit = function () {\r\n assert(this.limitSet_, 'Only valid if limit has been set');\r\n return this.limit_;\r\n };\r\n QueryParams.prototype.getIndex = function () {\r\n return this.index_;\r\n };\r\n QueryParams.prototype.loadsAllData = function () {\r\n return !(this.startSet_ || this.endSet_ || this.limitSet_);\r\n };\r\n QueryParams.prototype.isDefault = function () {\r\n return this.loadsAllData() && this.index_ === PRIORITY_INDEX;\r\n };\r\n QueryParams.prototype.copy = function () {\r\n var copy = new QueryParams();\r\n copy.limitSet_ = this.limitSet_;\r\n copy.limit_ = this.limit_;\r\n copy.startSet_ = this.startSet_;\r\n copy.indexStartValue_ = this.indexStartValue_;\r\n copy.startNameSet_ = this.startNameSet_;\r\n copy.indexStartName_ = this.indexStartName_;\r\n copy.endSet_ = this.endSet_;\r\n copy.indexEndValue_ = this.indexEndValue_;\r\n copy.endNameSet_ = this.endNameSet_;\r\n copy.indexEndName_ = this.indexEndName_;\r\n copy.index_ = this.index_;\r\n copy.viewFrom_ = this.viewFrom_;\r\n return copy;\r\n };\r\n return QueryParams;\r\n}());\r\nfunction queryParamsGetNodeFilter(queryParams) {\r\n if (queryParams.loadsAllData()) {\r\n return new IndexedFilter(queryParams.getIndex());\r\n }\r\n else if (queryParams.hasLimit()) {\r\n return new LimitedFilter(queryParams);\r\n }\r\n else {\r\n return new RangedFilter(queryParams);\r\n }\r\n}\r\nfunction queryParamsLimitToFirst(queryParams, newLimit) {\r\n var newParams = queryParams.copy();\r\n newParams.limitSet_ = true;\r\n newParams.limit_ = newLimit;\r\n newParams.viewFrom_ = \"l\" /* VIEW_FROM_LEFT */;\r\n return newParams;\r\n}\r\nfunction queryParamsLimitToLast(queryParams, newLimit) {\r\n var newParams = queryParams.copy();\r\n newParams.limitSet_ = true;\r\n newParams.limit_ = newLimit;\r\n newParams.viewFrom_ = \"r\" /* VIEW_FROM_RIGHT */;\r\n return newParams;\r\n}\r\nfunction queryParamsStartAt(queryParams, indexValue, key) {\r\n var newParams = queryParams.copy();\r\n newParams.startSet_ = true;\r\n if (indexValue === undefined) {\r\n indexValue = null;\r\n }\r\n newParams.indexStartValue_ = indexValue;\r\n if (key != null) {\r\n newParams.startNameSet_ = true;\r\n newParams.indexStartName_ = key;\r\n }\r\n else {\r\n newParams.startNameSet_ = false;\r\n newParams.indexStartName_ = '';\r\n }\r\n return newParams;\r\n}\r\nfunction queryParamsStartAfter(queryParams, indexValue, key) {\r\n var params;\r\n if (queryParams.index_ === KEY_INDEX) {\r\n if (typeof indexValue === 'string') {\r\n indexValue = successor(indexValue);\r\n }\r\n params = queryParamsStartAt(queryParams, indexValue, key);\r\n }\r\n else {\r\n var childKey = void 0;\r\n if (key == null) {\r\n childKey = MAX_NAME;\r\n }\r\n else {\r\n childKey = successor(key);\r\n }\r\n params = queryParamsStartAt(queryParams, indexValue, childKey);\r\n }\r\n params.startAfterSet_ = true;\r\n return params;\r\n}\r\nfunction queryParamsEndAt(queryParams, indexValue, key) {\r\n var newParams = queryParams.copy();\r\n newParams.endSet_ = true;\r\n if (indexValue === undefined) {\r\n indexValue = null;\r\n }\r\n newParams.indexEndValue_ = indexValue;\r\n if (key !== undefined) {\r\n newParams.endNameSet_ = true;\r\n newParams.indexEndName_ = key;\r\n }\r\n else {\r\n newParams.endNameSet_ = false;\r\n newParams.indexEndName_ = '';\r\n }\r\n return newParams;\r\n}\r\nfunction queryParamsEndBefore(queryParams, indexValue, key) {\r\n var childKey;\r\n var params;\r\n if (queryParams.index_ === KEY_INDEX) {\r\n if (typeof indexValue === 'string') {\r\n indexValue = predecessor(indexValue);\r\n }\r\n params = queryParamsEndAt(queryParams, indexValue, key);\r\n }\r\n else {\r\n if (key == null) {\r\n childKey = MIN_NAME;\r\n }\r\n else {\r\n childKey = predecessor(key);\r\n }\r\n params = queryParamsEndAt(queryParams, indexValue, childKey);\r\n }\r\n params.endBeforeSet_ = true;\r\n return params;\r\n}\r\nfunction queryParamsOrderBy(queryParams, index) {\r\n var newParams = queryParams.copy();\r\n newParams.index_ = index;\r\n return newParams;\r\n}\r\n/**\r\n * Returns a set of REST query string parameters representing this query.\r\n *\r\n * @returns query string parameters\r\n */\r\nfunction queryParamsToRestQueryStringParameters(queryParams) {\r\n var qs = {};\r\n if (queryParams.isDefault()) {\r\n return qs;\r\n }\r\n var orderBy;\r\n if (queryParams.index_ === PRIORITY_INDEX) {\r\n orderBy = \"$priority\" /* PRIORITY_INDEX */;\r\n }\r\n else if (queryParams.index_ === VALUE_INDEX) {\r\n orderBy = \"$value\" /* VALUE_INDEX */;\r\n }\r\n else if (queryParams.index_ === KEY_INDEX) {\r\n orderBy = \"$key\" /* KEY_INDEX */;\r\n }\r\n else {\r\n assert(queryParams.index_ instanceof PathIndex, 'Unrecognized index type!');\r\n orderBy = queryParams.index_.toString();\r\n }\r\n qs[\"orderBy\" /* ORDER_BY */] = stringify(orderBy);\r\n if (queryParams.startSet_) {\r\n qs[\"startAt\" /* START_AT */] = stringify(queryParams.indexStartValue_);\r\n if (queryParams.startNameSet_) {\r\n qs[\"startAt\" /* START_AT */] +=\r\n ',' + stringify(queryParams.indexStartName_);\r\n }\r\n }\r\n if (queryParams.endSet_) {\r\n qs[\"endAt\" /* END_AT */] = stringify(queryParams.indexEndValue_);\r\n if (queryParams.endNameSet_) {\r\n qs[\"endAt\" /* END_AT */] +=\r\n ',' + stringify(queryParams.indexEndName_);\r\n }\r\n }\r\n if (queryParams.limitSet_) {\r\n if (queryParams.isViewFromLeft()) {\r\n qs[\"limitToFirst\" /* LIMIT_TO_FIRST */] = queryParams.limit_;\r\n }\r\n else {\r\n qs[\"limitToLast\" /* LIMIT_TO_LAST */] = queryParams.limit_;\r\n }\r\n }\r\n return qs;\r\n}\r\nfunction queryParamsGetQueryObject(queryParams) {\r\n var obj = {};\r\n if (queryParams.startSet_) {\r\n obj[\"sp\" /* INDEX_START_VALUE */] =\r\n queryParams.indexStartValue_;\r\n if (queryParams.startNameSet_) {\r\n obj[\"sn\" /* INDEX_START_NAME */] =\r\n queryParams.indexStartName_;\r\n }\r\n }\r\n if (queryParams.endSet_) {\r\n obj[\"ep\" /* INDEX_END_VALUE */] = queryParams.indexEndValue_;\r\n if (queryParams.endNameSet_) {\r\n obj[\"en\" /* INDEX_END_NAME */] = queryParams.indexEndName_;\r\n }\r\n }\r\n if (queryParams.limitSet_) {\r\n obj[\"l\" /* LIMIT */] = queryParams.limit_;\r\n var viewFrom = queryParams.viewFrom_;\r\n if (viewFrom === '') {\r\n if (queryParams.isViewFromLeft()) {\r\n viewFrom = \"l\" /* VIEW_FROM_LEFT */;\r\n }\r\n else {\r\n viewFrom = \"r\" /* VIEW_FROM_RIGHT */;\r\n }\r\n }\r\n obj[\"vf\" /* VIEW_FROM */] = viewFrom;\r\n }\r\n // For now, priority index is the default, so we only specify if it's some other index\r\n if (queryParams.index_ !== PRIORITY_INDEX) {\r\n obj[\"i\" /* INDEX */] = queryParams.index_.toString();\r\n }\r\n return obj;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An implementation of ServerActions that communicates with the server via REST requests.\r\n * This is mostly useful for compatibility with crawlers, where we don't want to spin up a full\r\n * persistent connection (using WebSockets or long-polling)\r\n */\r\nvar ReadonlyRestClient = /** @class */ (function (_super) {\r\n __extends(ReadonlyRestClient, _super);\r\n /**\r\n * @param repoInfo_ - Data about the namespace we are connecting to\r\n * @param onDataUpdate_ - A callback for new data from the server\r\n */\r\n function ReadonlyRestClient(repoInfo_, onDataUpdate_, authTokenProvider_, appCheckTokenProvider_) {\r\n var _this = _super.call(this) || this;\r\n _this.repoInfo_ = repoInfo_;\r\n _this.onDataUpdate_ = onDataUpdate_;\r\n _this.authTokenProvider_ = authTokenProvider_;\r\n _this.appCheckTokenProvider_ = appCheckTokenProvider_;\r\n /** @private {function(...[*])} */\r\n _this.log_ = logWrapper('p:rest:');\r\n /**\r\n * We don't actually need to track listens, except to prevent us calling an onComplete for a listen\r\n * that's been removed. :-/\r\n */\r\n _this.listens_ = {};\r\n return _this;\r\n }\r\n ReadonlyRestClient.prototype.reportStats = function (stats) {\r\n throw new Error('Method not implemented.');\r\n };\r\n ReadonlyRestClient.getListenId_ = function (query, tag) {\r\n if (tag !== undefined) {\r\n return 'tag$' + tag;\r\n }\r\n else {\r\n assert(query._queryParams.isDefault(), \"should have a tag if it's not a default query.\");\r\n return query._path.toString();\r\n }\r\n };\r\n /** @inheritDoc */\r\n ReadonlyRestClient.prototype.listen = function (query, currentHashFn, tag, onComplete) {\r\n var _this = this;\r\n var pathString = query._path.toString();\r\n this.log_('Listen called for ' + pathString + ' ' + query._queryIdentifier);\r\n // Mark this listener so we can tell if it's removed.\r\n var listenId = ReadonlyRestClient.getListenId_(query, tag);\r\n var thisListen = {};\r\n this.listens_[listenId] = thisListen;\r\n var queryStringParameters = queryParamsToRestQueryStringParameters(query._queryParams);\r\n this.restRequest_(pathString + '.json', queryStringParameters, function (error, result) {\r\n var data = result;\r\n if (error === 404) {\r\n data = null;\r\n error = null;\r\n }\r\n if (error === null) {\r\n _this.onDataUpdate_(pathString, data, /*isMerge=*/ false, tag);\r\n }\r\n if (safeGet(_this.listens_, listenId) === thisListen) {\r\n var status_1;\r\n if (!error) {\r\n status_1 = 'ok';\r\n }\r\n else if (error === 401) {\r\n status_1 = 'permission_denied';\r\n }\r\n else {\r\n status_1 = 'rest_error:' + error;\r\n }\r\n onComplete(status_1, null);\r\n }\r\n });\r\n };\r\n /** @inheritDoc */\r\n ReadonlyRestClient.prototype.unlisten = function (query, tag) {\r\n var listenId = ReadonlyRestClient.getListenId_(query, tag);\r\n delete this.listens_[listenId];\r\n };\r\n ReadonlyRestClient.prototype.get = function (query) {\r\n var _this = this;\r\n var queryStringParameters = queryParamsToRestQueryStringParameters(query._queryParams);\r\n var pathString = query._path.toString();\r\n var deferred = new Deferred();\r\n this.restRequest_(pathString + '.json', queryStringParameters, function (error, result) {\r\n var data = result;\r\n if (error === 404) {\r\n data = null;\r\n error = null;\r\n }\r\n if (error === null) {\r\n _this.onDataUpdate_(pathString, data, \r\n /*isMerge=*/ false, \r\n /*tag=*/ null);\r\n deferred.resolve(data);\r\n }\r\n else {\r\n deferred.reject(new Error(data));\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n /** @inheritDoc */\r\n ReadonlyRestClient.prototype.refreshAuthToken = function (token) {\r\n // no-op since we just always call getToken.\r\n };\r\n /**\r\n * Performs a REST request to the given path, with the provided query string parameters,\r\n * and any auth credentials we have.\r\n */\r\n ReadonlyRestClient.prototype.restRequest_ = function (pathString, queryStringParameters, callback) {\r\n var _this = this;\r\n if (queryStringParameters === void 0) { queryStringParameters = {}; }\r\n queryStringParameters['format'] = 'export';\r\n return Promise.all([\r\n this.authTokenProvider_.getToken(/*forceRefresh=*/ false),\r\n this.appCheckTokenProvider_.getToken(/*forceRefresh=*/ false)\r\n ]).then(function (_a) {\r\n var _b = __read(_a, 2), authToken = _b[0], appCheckToken = _b[1];\r\n if (authToken && authToken.accessToken) {\r\n queryStringParameters['auth'] = authToken.accessToken;\r\n }\r\n if (appCheckToken && appCheckToken.token) {\r\n queryStringParameters['ac'] = appCheckToken.token;\r\n }\r\n var url = (_this.repoInfo_.secure ? 'https://' : 'http://') +\r\n _this.repoInfo_.host +\r\n pathString +\r\n '?' +\r\n 'ns=' +\r\n _this.repoInfo_.namespace +\r\n querystring(queryStringParameters);\r\n _this.log_('Sending REST request for ' + url);\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (callback && xhr.readyState === 4) {\r\n _this.log_('REST Response for ' + url + ' received. status:', xhr.status, 'response:', xhr.responseText);\r\n var res = null;\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n try {\r\n res = jsonEval(xhr.responseText);\r\n }\r\n catch (e) {\r\n warn('Failed to parse JSON response for ' +\r\n url +\r\n ': ' +\r\n xhr.responseText);\r\n }\r\n callback(null, res);\r\n }\r\n else {\r\n // 401 and 404 are expected.\r\n if (xhr.status !== 401 && xhr.status !== 404) {\r\n warn('Got unsuccessful REST response for ' +\r\n url +\r\n ' Status: ' +\r\n xhr.status);\r\n }\r\n callback(xhr.status);\r\n }\r\n callback = null;\r\n }\r\n };\r\n xhr.open('GET', url, /*asynchronous=*/ true);\r\n xhr.send();\r\n });\r\n };\r\n return ReadonlyRestClient;\r\n}(ServerActions));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Mutable object which basically just stores a reference to the \"latest\" immutable snapshot.\r\n */\r\nvar SnapshotHolder = /** @class */ (function () {\r\n function SnapshotHolder() {\r\n this.rootNode_ = ChildrenNode.EMPTY_NODE;\r\n }\r\n SnapshotHolder.prototype.getNode = function (path) {\r\n return this.rootNode_.getChild(path);\r\n };\r\n SnapshotHolder.prototype.updateSnapshot = function (path, newSnapshotNode) {\r\n this.rootNode_ = this.rootNode_.updateChild(path, newSnapshotNode);\r\n };\r\n return SnapshotHolder;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction newSparseSnapshotTree() {\r\n return {\r\n value: null,\r\n children: new Map()\r\n };\r\n}\r\n/**\r\n * Stores the given node at the specified path. If there is already a node\r\n * at a shallower path, it merges the new data into that snapshot node.\r\n *\r\n * @param path - Path to look up snapshot for.\r\n * @param data - The new data, or null.\r\n */\r\nfunction sparseSnapshotTreeRemember(sparseSnapshotTree, path, data) {\r\n if (pathIsEmpty(path)) {\r\n sparseSnapshotTree.value = data;\r\n sparseSnapshotTree.children.clear();\r\n }\r\n else if (sparseSnapshotTree.value !== null) {\r\n sparseSnapshotTree.value = sparseSnapshotTree.value.updateChild(path, data);\r\n }\r\n else {\r\n var childKey = pathGetFront(path);\r\n if (!sparseSnapshotTree.children.has(childKey)) {\r\n sparseSnapshotTree.children.set(childKey, newSparseSnapshotTree());\r\n }\r\n var child = sparseSnapshotTree.children.get(childKey);\r\n path = pathPopFront(path);\r\n sparseSnapshotTreeRemember(child, path, data);\r\n }\r\n}\r\n/**\r\n * Purge the data at path from the cache.\r\n *\r\n * @param path - Path to look up snapshot for.\r\n * @returns True if this node should now be removed.\r\n */\r\nfunction sparseSnapshotTreeForget(sparseSnapshotTree, path) {\r\n if (pathIsEmpty(path)) {\r\n sparseSnapshotTree.value = null;\r\n sparseSnapshotTree.children.clear();\r\n return true;\r\n }\r\n else {\r\n if (sparseSnapshotTree.value !== null) {\r\n if (sparseSnapshotTree.value.isLeafNode()) {\r\n // We're trying to forget a node that doesn't exist\r\n return false;\r\n }\r\n else {\r\n var value = sparseSnapshotTree.value;\r\n sparseSnapshotTree.value = null;\r\n value.forEachChild(PRIORITY_INDEX, function (key, tree) {\r\n sparseSnapshotTreeRemember(sparseSnapshotTree, new Path(key), tree);\r\n });\r\n return sparseSnapshotTreeForget(sparseSnapshotTree, path);\r\n }\r\n }\r\n else if (sparseSnapshotTree.children.size > 0) {\r\n var childKey = pathGetFront(path);\r\n path = pathPopFront(path);\r\n if (sparseSnapshotTree.children.has(childKey)) {\r\n var safeToRemove = sparseSnapshotTreeForget(sparseSnapshotTree.children.get(childKey), path);\r\n if (safeToRemove) {\r\n sparseSnapshotTree.children.delete(childKey);\r\n }\r\n }\r\n return sparseSnapshotTree.children.size === 0;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n}\r\n/**\r\n * Recursively iterates through all of the stored tree and calls the\r\n * callback on each one.\r\n *\r\n * @param prefixPath - Path to look up node for.\r\n * @param func - The function to invoke for each tree.\r\n */\r\nfunction sparseSnapshotTreeForEachTree(sparseSnapshotTree, prefixPath, func) {\r\n if (sparseSnapshotTree.value !== null) {\r\n func(prefixPath, sparseSnapshotTree.value);\r\n }\r\n else {\r\n sparseSnapshotTreeForEachChild(sparseSnapshotTree, function (key, tree) {\r\n var path = new Path(prefixPath.toString() + '/' + key);\r\n sparseSnapshotTreeForEachTree(tree, path, func);\r\n });\r\n }\r\n}\r\n/**\r\n * Iterates through each immediate child and triggers the callback.\r\n * Only seems to be used in tests.\r\n *\r\n * @param func - The function to invoke for each child.\r\n */\r\nfunction sparseSnapshotTreeForEachChild(sparseSnapshotTree, func) {\r\n sparseSnapshotTree.children.forEach(function (tree, key) {\r\n func(key, tree);\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns the delta from the previous call to get stats.\r\n *\r\n * @param collection_ - The collection to \"listen\" to.\r\n */\r\nvar StatsListener = /** @class */ (function () {\r\n function StatsListener(collection_) {\r\n this.collection_ = collection_;\r\n this.last_ = null;\r\n }\r\n StatsListener.prototype.get = function () {\r\n var newStats = this.collection_.get();\r\n var delta = __assign({}, newStats);\r\n if (this.last_) {\r\n each(this.last_, function (stat, value) {\r\n delta[stat] = delta[stat] - value;\r\n });\r\n }\r\n this.last_ = newStats;\r\n return delta;\r\n };\r\n return StatsListener;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Assuming some apps may have a short amount of time on page, and a bulk of firebase operations probably\r\n// happen on page load, we try to report our first set of stats pretty quickly, but we wait at least 10\r\n// seconds to try to ensure the Firebase connection is established / settled.\r\nvar FIRST_STATS_MIN_TIME = 10 * 1000;\r\nvar FIRST_STATS_MAX_TIME = 30 * 1000;\r\n// We'll continue to report stats on average every 5 minutes.\r\nvar REPORT_STATS_INTERVAL = 5 * 60 * 1000;\r\nvar StatsReporter = /** @class */ (function () {\r\n function StatsReporter(collection, server_) {\r\n this.server_ = server_;\r\n this.statsToReport_ = {};\r\n this.statsListener_ = new StatsListener(collection);\r\n var timeout = FIRST_STATS_MIN_TIME +\r\n (FIRST_STATS_MAX_TIME - FIRST_STATS_MIN_TIME) * Math.random();\r\n setTimeoutNonBlocking(this.reportStats_.bind(this), Math.floor(timeout));\r\n }\r\n StatsReporter.prototype.reportStats_ = function () {\r\n var _this = this;\r\n var stats = this.statsListener_.get();\r\n var reportedStats = {};\r\n var haveStatsToReport = false;\r\n each(stats, function (stat, value) {\r\n if (value > 0 && contains(_this.statsToReport_, stat)) {\r\n reportedStats[stat] = value;\r\n haveStatsToReport = true;\r\n }\r\n });\r\n if (haveStatsToReport) {\r\n this.server_.reportStats(reportedStats);\r\n }\r\n // queue our next run.\r\n setTimeoutNonBlocking(this.reportStats_.bind(this), Math.floor(Math.random() * 2 * REPORT_STATS_INTERVAL));\r\n };\r\n return StatsReporter;\r\n}());\r\nfunction statsReporterIncludeStat(reporter, stat) {\r\n reporter.statsToReport_[stat] = true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n *\r\n * @enum\r\n */\r\nvar OperationType;\r\n(function (OperationType) {\r\n OperationType[OperationType[\"OVERWRITE\"] = 0] = \"OVERWRITE\";\r\n OperationType[OperationType[\"MERGE\"] = 1] = \"MERGE\";\r\n OperationType[OperationType[\"ACK_USER_WRITE\"] = 2] = \"ACK_USER_WRITE\";\r\n OperationType[OperationType[\"LISTEN_COMPLETE\"] = 3] = \"LISTEN_COMPLETE\";\r\n})(OperationType || (OperationType = {}));\r\nfunction newOperationSourceUser() {\r\n return {\r\n fromUser: true,\r\n fromServer: false,\r\n queryId: null,\r\n tagged: false\r\n };\r\n}\r\nfunction newOperationSourceServer() {\r\n return {\r\n fromUser: false,\r\n fromServer: true,\r\n queryId: null,\r\n tagged: false\r\n };\r\n}\r\nfunction newOperationSourceServerTaggedQuery(queryId) {\r\n return {\r\n fromUser: false,\r\n fromServer: true,\r\n queryId: queryId,\r\n tagged: true\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar AckUserWrite = /** @class */ (function () {\r\n /**\r\n * @param affectedTree - A tree containing true for each affected path. Affected paths can't overlap.\r\n */\r\n function AckUserWrite(\r\n /** @inheritDoc */ path, \r\n /** @inheritDoc */ affectedTree, \r\n /** @inheritDoc */ revert) {\r\n this.path = path;\r\n this.affectedTree = affectedTree;\r\n this.revert = revert;\r\n /** @inheritDoc */\r\n this.type = OperationType.ACK_USER_WRITE;\r\n /** @inheritDoc */\r\n this.source = newOperationSourceUser();\r\n }\r\n AckUserWrite.prototype.operationForChild = function (childName) {\r\n if (!pathIsEmpty(this.path)) {\r\n assert(pathGetFront(this.path) === childName, 'operationForChild called for unrelated child.');\r\n return new AckUserWrite(pathPopFront(this.path), this.affectedTree, this.revert);\r\n }\r\n else if (this.affectedTree.value != null) {\r\n assert(this.affectedTree.children.isEmpty(), 'affectedTree should not have overlapping affected paths.');\r\n // All child locations are affected as well; just return same operation.\r\n return this;\r\n }\r\n else {\r\n var childTree = this.affectedTree.subtree(new Path(childName));\r\n return new AckUserWrite(newEmptyPath(), childTree, this.revert);\r\n }\r\n };\r\n return AckUserWrite;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ListenComplete = /** @class */ (function () {\r\n function ListenComplete(source, path) {\r\n this.source = source;\r\n this.path = path;\r\n /** @inheritDoc */\r\n this.type = OperationType.LISTEN_COMPLETE;\r\n }\r\n ListenComplete.prototype.operationForChild = function (childName) {\r\n if (pathIsEmpty(this.path)) {\r\n return new ListenComplete(this.source, newEmptyPath());\r\n }\r\n else {\r\n return new ListenComplete(this.source, pathPopFront(this.path));\r\n }\r\n };\r\n return ListenComplete;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Overwrite = /** @class */ (function () {\r\n function Overwrite(source, path, snap) {\r\n this.source = source;\r\n this.path = path;\r\n this.snap = snap;\r\n /** @inheritDoc */\r\n this.type = OperationType.OVERWRITE;\r\n }\r\n Overwrite.prototype.operationForChild = function (childName) {\r\n if (pathIsEmpty(this.path)) {\r\n return new Overwrite(this.source, newEmptyPath(), this.snap.getImmediateChild(childName));\r\n }\r\n else {\r\n return new Overwrite(this.source, pathPopFront(this.path), this.snap);\r\n }\r\n };\r\n return Overwrite;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Merge = /** @class */ (function () {\r\n function Merge(\r\n /** @inheritDoc */ source, \r\n /** @inheritDoc */ path, \r\n /** @inheritDoc */ children) {\r\n this.source = source;\r\n this.path = path;\r\n this.children = children;\r\n /** @inheritDoc */\r\n this.type = OperationType.MERGE;\r\n }\r\n Merge.prototype.operationForChild = function (childName) {\r\n if (pathIsEmpty(this.path)) {\r\n var childTree = this.children.subtree(new Path(childName));\r\n if (childTree.isEmpty()) {\r\n // This child is unaffected\r\n return null;\r\n }\r\n else if (childTree.value) {\r\n // We have a snapshot for the child in question. This becomes an overwrite of the child.\r\n return new Overwrite(this.source, newEmptyPath(), childTree.value);\r\n }\r\n else {\r\n // This is a merge at a deeper level\r\n return new Merge(this.source, newEmptyPath(), childTree);\r\n }\r\n }\r\n else {\r\n assert(pathGetFront(this.path) === childName, \"Can't get a merge for a child not on the path of the operation\");\r\n return new Merge(this.source, pathPopFront(this.path), this.children);\r\n }\r\n };\r\n Merge.prototype.toString = function () {\r\n return ('Operation(' +\r\n this.path +\r\n ': ' +\r\n this.source.toString() +\r\n ' merge: ' +\r\n this.children.toString() +\r\n ')');\r\n };\r\n return Merge;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A cache node only stores complete children. Additionally it holds a flag whether the node can be considered fully\r\n * initialized in the sense that we know at one point in time this represented a valid state of the world, e.g.\r\n * initialized with data from the server, or a complete overwrite by the client. The filtered flag also tracks\r\n * whether a node potentially had children removed due to a filter.\r\n */\r\nvar CacheNode = /** @class */ (function () {\r\n function CacheNode(node_, fullyInitialized_, filtered_) {\r\n this.node_ = node_;\r\n this.fullyInitialized_ = fullyInitialized_;\r\n this.filtered_ = filtered_;\r\n }\r\n /**\r\n * Returns whether this node was fully initialized with either server data or a complete overwrite by the client\r\n */\r\n CacheNode.prototype.isFullyInitialized = function () {\r\n return this.fullyInitialized_;\r\n };\r\n /**\r\n * Returns whether this node is potentially missing children due to a filter applied to the node\r\n */\r\n CacheNode.prototype.isFiltered = function () {\r\n return this.filtered_;\r\n };\r\n CacheNode.prototype.isCompleteForPath = function (path) {\r\n if (pathIsEmpty(path)) {\r\n return this.isFullyInitialized() && !this.filtered_;\r\n }\r\n var childKey = pathGetFront(path);\r\n return this.isCompleteForChild(childKey);\r\n };\r\n CacheNode.prototype.isCompleteForChild = function (key) {\r\n return ((this.isFullyInitialized() && !this.filtered_) || this.node_.hasChild(key));\r\n };\r\n CacheNode.prototype.getNode = function () {\r\n return this.node_;\r\n };\r\n return CacheNode;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An EventGenerator is used to convert \"raw\" changes (Change) as computed by the\r\n * CacheDiffer into actual events (Event) that can be raised. See generateEventsForChanges()\r\n * for details.\r\n *\r\n */\r\nvar EventGenerator = /** @class */ (function () {\r\n function EventGenerator(query_) {\r\n this.query_ = query_;\r\n this.index_ = this.query_._queryParams.getIndex();\r\n }\r\n return EventGenerator;\r\n}());\r\n/**\r\n * Given a set of raw changes (no moved events and prevName not specified yet), and a set of\r\n * EventRegistrations that should be notified of these changes, generate the actual events to be raised.\r\n *\r\n * Notes:\r\n * - child_moved events will be synthesized at this time for any child_changed events that affect\r\n * our index.\r\n * - prevName will be calculated based on the index ordering.\r\n */\r\nfunction eventGeneratorGenerateEventsForChanges(eventGenerator, changes, eventCache, eventRegistrations) {\r\n var events = [];\r\n var moves = [];\r\n changes.forEach(function (change) {\r\n if (change.type === \"child_changed\" /* CHILD_CHANGED */ &&\r\n eventGenerator.index_.indexedValueChanged(change.oldSnap, change.snapshotNode)) {\r\n moves.push(changeChildMoved(change.childName, change.snapshotNode));\r\n }\r\n });\r\n eventGeneratorGenerateEventsForType(eventGenerator, events, \"child_removed\" /* CHILD_REMOVED */, changes, eventRegistrations, eventCache);\r\n eventGeneratorGenerateEventsForType(eventGenerator, events, \"child_added\" /* CHILD_ADDED */, changes, eventRegistrations, eventCache);\r\n eventGeneratorGenerateEventsForType(eventGenerator, events, \"child_moved\" /* CHILD_MOVED */, moves, eventRegistrations, eventCache);\r\n eventGeneratorGenerateEventsForType(eventGenerator, events, \"child_changed\" /* CHILD_CHANGED */, changes, eventRegistrations, eventCache);\r\n eventGeneratorGenerateEventsForType(eventGenerator, events, \"value\" /* VALUE */, changes, eventRegistrations, eventCache);\r\n return events;\r\n}\r\n/**\r\n * Given changes of a single change type, generate the corresponding events.\r\n */\r\nfunction eventGeneratorGenerateEventsForType(eventGenerator, events, eventType, changes, registrations, eventCache) {\r\n var filteredChanges = changes.filter(function (change) { return change.type === eventType; });\r\n filteredChanges.sort(function (a, b) {\r\n return eventGeneratorCompareChanges(eventGenerator, a, b);\r\n });\r\n filteredChanges.forEach(function (change) {\r\n var materializedChange = eventGeneratorMaterializeSingleChange(eventGenerator, change, eventCache);\r\n registrations.forEach(function (registration) {\r\n if (registration.respondsTo(change.type)) {\r\n events.push(registration.createEvent(materializedChange, eventGenerator.query_));\r\n }\r\n });\r\n });\r\n}\r\nfunction eventGeneratorMaterializeSingleChange(eventGenerator, change, eventCache) {\r\n if (change.type === 'value' || change.type === 'child_removed') {\r\n return change;\r\n }\r\n else {\r\n change.prevName = eventCache.getPredecessorChildName(change.childName, change.snapshotNode, eventGenerator.index_);\r\n return change;\r\n }\r\n}\r\nfunction eventGeneratorCompareChanges(eventGenerator, a, b) {\r\n if (a.childName == null || b.childName == null) {\r\n throw assertionError('Should only compare child_ events.');\r\n }\r\n var aWrapped = new NamedNode(a.childName, a.snapshotNode);\r\n var bWrapped = new NamedNode(b.childName, b.snapshotNode);\r\n return eventGenerator.index_.compare(aWrapped, bWrapped);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction newViewCache(eventCache, serverCache) {\r\n return { eventCache: eventCache, serverCache: serverCache };\r\n}\r\nfunction viewCacheUpdateEventSnap(viewCache, eventSnap, complete, filtered) {\r\n return newViewCache(new CacheNode(eventSnap, complete, filtered), viewCache.serverCache);\r\n}\r\nfunction viewCacheUpdateServerSnap(viewCache, serverSnap, complete, filtered) {\r\n return newViewCache(viewCache.eventCache, new CacheNode(serverSnap, complete, filtered));\r\n}\r\nfunction viewCacheGetCompleteEventSnap(viewCache) {\r\n return viewCache.eventCache.isFullyInitialized()\r\n ? viewCache.eventCache.getNode()\r\n : null;\r\n}\r\nfunction viewCacheGetCompleteServerSnap(viewCache) {\r\n return viewCache.serverCache.isFullyInitialized()\r\n ? viewCache.serverCache.getNode()\r\n : null;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar emptyChildrenSingleton;\r\n/**\r\n * Singleton empty children collection.\r\n *\r\n */\r\nvar EmptyChildren = function () {\r\n if (!emptyChildrenSingleton) {\r\n emptyChildrenSingleton = new SortedMap(stringCompare);\r\n }\r\n return emptyChildrenSingleton;\r\n};\r\n/**\r\n * A tree with immutable elements.\r\n */\r\nvar ImmutableTree = /** @class */ (function () {\r\n function ImmutableTree(value, children) {\r\n if (children === void 0) { children = EmptyChildren(); }\r\n this.value = value;\r\n this.children = children;\r\n }\r\n ImmutableTree.fromObject = function (obj) {\r\n var tree = new ImmutableTree(null);\r\n each(obj, function (childPath, childSnap) {\r\n tree = tree.set(new Path(childPath), childSnap);\r\n });\r\n return tree;\r\n };\r\n /**\r\n * True if the value is empty and there are no children\r\n */\r\n ImmutableTree.prototype.isEmpty = function () {\r\n return this.value === null && this.children.isEmpty();\r\n };\r\n /**\r\n * Given a path and predicate, return the first node and the path to that node\r\n * where the predicate returns true.\r\n *\r\n * TODO Do a perf test -- If we're creating a bunch of `{path: value:}`\r\n * objects on the way back out, it may be better to pass down a pathSoFar obj.\r\n *\r\n * @param relativePath - The remainder of the path\r\n * @param predicate - The predicate to satisfy to return a node\r\n */\r\n ImmutableTree.prototype.findRootMostMatchingPathAndValue = function (relativePath, predicate) {\r\n if (this.value != null && predicate(this.value)) {\r\n return { path: newEmptyPath(), value: this.value };\r\n }\r\n else {\r\n if (pathIsEmpty(relativePath)) {\r\n return null;\r\n }\r\n else {\r\n var front = pathGetFront(relativePath);\r\n var child = this.children.get(front);\r\n if (child !== null) {\r\n var childExistingPathAndValue = child.findRootMostMatchingPathAndValue(pathPopFront(relativePath), predicate);\r\n if (childExistingPathAndValue != null) {\r\n var fullPath = pathChild(new Path(front), childExistingPathAndValue.path);\r\n return { path: fullPath, value: childExistingPathAndValue.value };\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Find, if it exists, the shortest subpath of the given path that points a defined\r\n * value in the tree\r\n */\r\n ImmutableTree.prototype.findRootMostValueAndPath = function (relativePath) {\r\n return this.findRootMostMatchingPathAndValue(relativePath, function () { return true; });\r\n };\r\n /**\r\n * @returns The subtree at the given path\r\n */\r\n ImmutableTree.prototype.subtree = function (relativePath) {\r\n if (pathIsEmpty(relativePath)) {\r\n return this;\r\n }\r\n else {\r\n var front = pathGetFront(relativePath);\r\n var childTree = this.children.get(front);\r\n if (childTree !== null) {\r\n return childTree.subtree(pathPopFront(relativePath));\r\n }\r\n else {\r\n return new ImmutableTree(null);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets a value at the specified path.\r\n *\r\n * @param relativePath - Path to set value at.\r\n * @param toSet - Value to set.\r\n * @returns Resulting tree.\r\n */\r\n ImmutableTree.prototype.set = function (relativePath, toSet) {\r\n if (pathIsEmpty(relativePath)) {\r\n return new ImmutableTree(toSet, this.children);\r\n }\r\n else {\r\n var front = pathGetFront(relativePath);\r\n var child = this.children.get(front) || new ImmutableTree(null);\r\n var newChild = child.set(pathPopFront(relativePath), toSet);\r\n var newChildren = this.children.insert(front, newChild);\r\n return new ImmutableTree(this.value, newChildren);\r\n }\r\n };\r\n /**\r\n * Removes the value at the specified path.\r\n *\r\n * @param relativePath - Path to value to remove.\r\n * @returns Resulting tree.\r\n */\r\n ImmutableTree.prototype.remove = function (relativePath) {\r\n if (pathIsEmpty(relativePath)) {\r\n if (this.children.isEmpty()) {\r\n return new ImmutableTree(null);\r\n }\r\n else {\r\n return new ImmutableTree(null, this.children);\r\n }\r\n }\r\n else {\r\n var front = pathGetFront(relativePath);\r\n var child = this.children.get(front);\r\n if (child) {\r\n var newChild = child.remove(pathPopFront(relativePath));\r\n var newChildren = void 0;\r\n if (newChild.isEmpty()) {\r\n newChildren = this.children.remove(front);\r\n }\r\n else {\r\n newChildren = this.children.insert(front, newChild);\r\n }\r\n if (this.value === null && newChildren.isEmpty()) {\r\n return new ImmutableTree(null);\r\n }\r\n else {\r\n return new ImmutableTree(this.value, newChildren);\r\n }\r\n }\r\n else {\r\n return this;\r\n }\r\n }\r\n };\r\n /**\r\n * Gets a value from the tree.\r\n *\r\n * @param relativePath - Path to get value for.\r\n * @returns Value at path, or null.\r\n */\r\n ImmutableTree.prototype.get = function (relativePath) {\r\n if (pathIsEmpty(relativePath)) {\r\n return this.value;\r\n }\r\n else {\r\n var front = pathGetFront(relativePath);\r\n var child = this.children.get(front);\r\n if (child) {\r\n return child.get(pathPopFront(relativePath));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n };\r\n /**\r\n * Replace the subtree at the specified path with the given new tree.\r\n *\r\n * @param relativePath - Path to replace subtree for.\r\n * @param newTree - New tree.\r\n * @returns Resulting tree.\r\n */\r\n ImmutableTree.prototype.setTree = function (relativePath, newTree) {\r\n if (pathIsEmpty(relativePath)) {\r\n return newTree;\r\n }\r\n else {\r\n var front = pathGetFront(relativePath);\r\n var child = this.children.get(front) || new ImmutableTree(null);\r\n var newChild = child.setTree(pathPopFront(relativePath), newTree);\r\n var newChildren = void 0;\r\n if (newChild.isEmpty()) {\r\n newChildren = this.children.remove(front);\r\n }\r\n else {\r\n newChildren = this.children.insert(front, newChild);\r\n }\r\n return new ImmutableTree(this.value, newChildren);\r\n }\r\n };\r\n /**\r\n * Performs a depth first fold on this tree. Transforms a tree into a single\r\n * value, given a function that operates on the path to a node, an optional\r\n * current value, and a map of child names to folded subtrees\r\n */\r\n ImmutableTree.prototype.fold = function (fn) {\r\n return this.fold_(newEmptyPath(), fn);\r\n };\r\n /**\r\n * Recursive helper for public-facing fold() method\r\n */\r\n ImmutableTree.prototype.fold_ = function (pathSoFar, fn) {\r\n var accum = {};\r\n this.children.inorderTraversal(function (childKey, childTree) {\r\n accum[childKey] = childTree.fold_(pathChild(pathSoFar, childKey), fn);\r\n });\r\n return fn(pathSoFar, this.value, accum);\r\n };\r\n /**\r\n * Find the first matching value on the given path. Return the result of applying f to it.\r\n */\r\n ImmutableTree.prototype.findOnPath = function (path, f) {\r\n return this.findOnPath_(path, newEmptyPath(), f);\r\n };\r\n ImmutableTree.prototype.findOnPath_ = function (pathToFollow, pathSoFar, f) {\r\n var result = this.value ? f(pathSoFar, this.value) : false;\r\n if (result) {\r\n return result;\r\n }\r\n else {\r\n if (pathIsEmpty(pathToFollow)) {\r\n return null;\r\n }\r\n else {\r\n var front = pathGetFront(pathToFollow);\r\n var nextChild = this.children.get(front);\r\n if (nextChild) {\r\n return nextChild.findOnPath_(pathPopFront(pathToFollow), pathChild(pathSoFar, front), f);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n }\r\n };\r\n ImmutableTree.prototype.foreachOnPath = function (path, f) {\r\n return this.foreachOnPath_(path, newEmptyPath(), f);\r\n };\r\n ImmutableTree.prototype.foreachOnPath_ = function (pathToFollow, currentRelativePath, f) {\r\n if (pathIsEmpty(pathToFollow)) {\r\n return this;\r\n }\r\n else {\r\n if (this.value) {\r\n f(currentRelativePath, this.value);\r\n }\r\n var front = pathGetFront(pathToFollow);\r\n var nextChild = this.children.get(front);\r\n if (nextChild) {\r\n return nextChild.foreachOnPath_(pathPopFront(pathToFollow), pathChild(currentRelativePath, front), f);\r\n }\r\n else {\r\n return new ImmutableTree(null);\r\n }\r\n }\r\n };\r\n /**\r\n * Calls the given function for each node in the tree that has a value.\r\n *\r\n * @param f - A function to be called with the path from the root of the tree to\r\n * a node, and the value at that node. Called in depth-first order.\r\n */\r\n ImmutableTree.prototype.foreach = function (f) {\r\n this.foreach_(newEmptyPath(), f);\r\n };\r\n ImmutableTree.prototype.foreach_ = function (currentRelativePath, f) {\r\n this.children.inorderTraversal(function (childName, childTree) {\r\n childTree.foreach_(pathChild(currentRelativePath, childName), f);\r\n });\r\n if (this.value) {\r\n f(currentRelativePath, this.value);\r\n }\r\n };\r\n ImmutableTree.prototype.foreachChild = function (f) {\r\n this.children.inorderTraversal(function (childName, childTree) {\r\n if (childTree.value) {\r\n f(childName, childTree.value);\r\n }\r\n });\r\n };\r\n return ImmutableTree;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This class holds a collection of writes that can be applied to nodes in unison. It abstracts away the logic with\r\n * dealing with priority writes and multiple nested writes. At any given path there is only allowed to be one write\r\n * modifying that path. Any write to an existing path or shadowing an existing path will modify that existing write\r\n * to reflect the write added.\r\n */\r\nvar CompoundWrite = /** @class */ (function () {\r\n function CompoundWrite(writeTree_) {\r\n this.writeTree_ = writeTree_;\r\n }\r\n CompoundWrite.empty = function () {\r\n return new CompoundWrite(new ImmutableTree(null));\r\n };\r\n return CompoundWrite;\r\n}());\r\nfunction compoundWriteAddWrite(compoundWrite, path, node) {\r\n if (pathIsEmpty(path)) {\r\n return new CompoundWrite(new ImmutableTree(node));\r\n }\r\n else {\r\n var rootmost = compoundWrite.writeTree_.findRootMostValueAndPath(path);\r\n if (rootmost != null) {\r\n var rootMostPath = rootmost.path;\r\n var value = rootmost.value;\r\n var relativePath = newRelativePath(rootMostPath, path);\r\n value = value.updateChild(relativePath, node);\r\n return new CompoundWrite(compoundWrite.writeTree_.set(rootMostPath, value));\r\n }\r\n else {\r\n var subtree = new ImmutableTree(node);\r\n var newWriteTree = compoundWrite.writeTree_.setTree(path, subtree);\r\n return new CompoundWrite(newWriteTree);\r\n }\r\n }\r\n}\r\nfunction compoundWriteAddWrites(compoundWrite, path, updates) {\r\n var newWrite = compoundWrite;\r\n each(updates, function (childKey, node) {\r\n newWrite = compoundWriteAddWrite(newWrite, pathChild(path, childKey), node);\r\n });\r\n return newWrite;\r\n}\r\n/**\r\n * Will remove a write at the given path and deeper paths. This will not modify a write at a higher\r\n * location, which must be removed by calling this method with that path.\r\n *\r\n * @param compoundWrite - The CompoundWrite to remove.\r\n * @param path - The path at which a write and all deeper writes should be removed\r\n * @returns The new CompoundWrite with the removed path\r\n */\r\nfunction compoundWriteRemoveWrite(compoundWrite, path) {\r\n if (pathIsEmpty(path)) {\r\n return CompoundWrite.empty();\r\n }\r\n else {\r\n var newWriteTree = compoundWrite.writeTree_.setTree(path, new ImmutableTree(null));\r\n return new CompoundWrite(newWriteTree);\r\n }\r\n}\r\n/**\r\n * Returns whether this CompoundWrite will fully overwrite a node at a given location and can therefore be\r\n * considered \"complete\".\r\n *\r\n * @param compoundWrite - The CompoundWrite to check.\r\n * @param path - The path to check for\r\n * @returns Whether there is a complete write at that path\r\n */\r\nfunction compoundWriteHasCompleteWrite(compoundWrite, path) {\r\n return compoundWriteGetCompleteNode(compoundWrite, path) != null;\r\n}\r\n/**\r\n * Returns a node for a path if and only if the node is a \"complete\" overwrite at that path. This will not aggregate\r\n * writes from deeper paths, but will return child nodes from a more shallow path.\r\n *\r\n * @param compoundWrite - The CompoundWrite to get the node from.\r\n * @param path - The path to get a complete write\r\n * @returns The node if complete at that path, or null otherwise.\r\n */\r\nfunction compoundWriteGetCompleteNode(compoundWrite, path) {\r\n var rootmost = compoundWrite.writeTree_.findRootMostValueAndPath(path);\r\n if (rootmost != null) {\r\n return compoundWrite.writeTree_\r\n .get(rootmost.path)\r\n .getChild(newRelativePath(rootmost.path, path));\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n/**\r\n * Returns all children that are guaranteed to be a complete overwrite.\r\n *\r\n * @param compoundWrite - The CompoundWrite to get children from.\r\n * @returns A list of all complete children.\r\n */\r\nfunction compoundWriteGetCompleteChildren(compoundWrite) {\r\n var children = [];\r\n var node = compoundWrite.writeTree_.value;\r\n if (node != null) {\r\n // If it's a leaf node, it has no children; so nothing to do.\r\n if (!node.isLeafNode()) {\r\n node.forEachChild(PRIORITY_INDEX, function (childName, childNode) {\r\n children.push(new NamedNode(childName, childNode));\r\n });\r\n }\r\n }\r\n else {\r\n compoundWrite.writeTree_.children.inorderTraversal(function (childName, childTree) {\r\n if (childTree.value != null) {\r\n children.push(new NamedNode(childName, childTree.value));\r\n }\r\n });\r\n }\r\n return children;\r\n}\r\nfunction compoundWriteChildCompoundWrite(compoundWrite, path) {\r\n if (pathIsEmpty(path)) {\r\n return compoundWrite;\r\n }\r\n else {\r\n var shadowingNode = compoundWriteGetCompleteNode(compoundWrite, path);\r\n if (shadowingNode != null) {\r\n return new CompoundWrite(new ImmutableTree(shadowingNode));\r\n }\r\n else {\r\n return new CompoundWrite(compoundWrite.writeTree_.subtree(path));\r\n }\r\n }\r\n}\r\n/**\r\n * Returns true if this CompoundWrite is empty and therefore does not modify any nodes.\r\n * @returns Whether this CompoundWrite is empty\r\n */\r\nfunction compoundWriteIsEmpty(compoundWrite) {\r\n return compoundWrite.writeTree_.isEmpty();\r\n}\r\n/**\r\n * Applies this CompoundWrite to a node. The node is returned with all writes from this CompoundWrite applied to the\r\n * node\r\n * @param node - The node to apply this CompoundWrite to\r\n * @returns The node with all writes applied\r\n */\r\nfunction compoundWriteApply(compoundWrite, node) {\r\n return applySubtreeWrite(newEmptyPath(), compoundWrite.writeTree_, node);\r\n}\r\nfunction applySubtreeWrite(relativePath, writeTree, node) {\r\n if (writeTree.value != null) {\r\n // Since there a write is always a leaf, we're done here\r\n return node.updateChild(relativePath, writeTree.value);\r\n }\r\n else {\r\n var priorityWrite_1 = null;\r\n writeTree.children.inorderTraversal(function (childKey, childTree) {\r\n if (childKey === '.priority') {\r\n // Apply priorities at the end so we don't update priorities for either empty nodes or forget\r\n // to apply priorities to empty nodes that are later filled\r\n assert(childTree.value !== null, 'Priority writes must always be leaf nodes');\r\n priorityWrite_1 = childTree.value;\r\n }\r\n else {\r\n node = applySubtreeWrite(pathChild(relativePath, childKey), childTree, node);\r\n }\r\n });\r\n // If there was a priority write, we only apply it if the node is not empty\r\n if (!node.getChild(relativePath).isEmpty() && priorityWrite_1 !== null) {\r\n node = node.updateChild(pathChild(relativePath, '.priority'), priorityWrite_1);\r\n }\r\n return node;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Create a new WriteTreeRef for the given path. For use with a new sync point at the given path.\r\n *\r\n */\r\nfunction writeTreeChildWrites(writeTree, path) {\r\n return newWriteTreeRef(path, writeTree);\r\n}\r\n/**\r\n * Record a new overwrite from user code.\r\n *\r\n * @param visible - This is set to false by some transactions. It should be excluded from event caches\r\n */\r\nfunction writeTreeAddOverwrite(writeTree, path, snap, writeId, visible) {\r\n assert(writeId > writeTree.lastWriteId, 'Stacking an older write on top of newer ones');\r\n if (visible === undefined) {\r\n visible = true;\r\n }\r\n writeTree.allWrites.push({\r\n path: path,\r\n snap: snap,\r\n writeId: writeId,\r\n visible: visible\r\n });\r\n if (visible) {\r\n writeTree.visibleWrites = compoundWriteAddWrite(writeTree.visibleWrites, path, snap);\r\n }\r\n writeTree.lastWriteId = writeId;\r\n}\r\n/**\r\n * Record a new merge from user code.\r\n */\r\nfunction writeTreeAddMerge(writeTree, path, changedChildren, writeId) {\r\n assert(writeId > writeTree.lastWriteId, 'Stacking an older merge on top of newer ones');\r\n writeTree.allWrites.push({\r\n path: path,\r\n children: changedChildren,\r\n writeId: writeId,\r\n visible: true\r\n });\r\n writeTree.visibleWrites = compoundWriteAddWrites(writeTree.visibleWrites, path, changedChildren);\r\n writeTree.lastWriteId = writeId;\r\n}\r\nfunction writeTreeGetWrite(writeTree, writeId) {\r\n for (var i = 0; i < writeTree.allWrites.length; i++) {\r\n var record = writeTree.allWrites[i];\r\n if (record.writeId === writeId) {\r\n return record;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Remove a write (either an overwrite or merge) that has been successfully acknowledge by the server. Recalculates\r\n * the tree if necessary. We return true if it may have been visible, meaning views need to reevaluate.\r\n *\r\n * @returns true if the write may have been visible (meaning we'll need to reevaluate / raise\r\n * events as a result).\r\n */\r\nfunction writeTreeRemoveWrite(writeTree, writeId) {\r\n // Note: disabling this check. It could be a transaction that preempted another transaction, and thus was applied\r\n // out of order.\r\n //const validClear = revert || this.allWrites_.length === 0 || writeId <= this.allWrites_[0].writeId;\r\n //assert(validClear, \"Either we don't have this write, or it's the first one in the queue\");\r\n var idx = writeTree.allWrites.findIndex(function (s) {\r\n return s.writeId === writeId;\r\n });\r\n assert(idx >= 0, 'removeWrite called with nonexistent writeId.');\r\n var writeToRemove = writeTree.allWrites[idx];\r\n writeTree.allWrites.splice(idx, 1);\r\n var removedWriteWasVisible = writeToRemove.visible;\r\n var removedWriteOverlapsWithOtherWrites = false;\r\n var i = writeTree.allWrites.length - 1;\r\n while (removedWriteWasVisible && i >= 0) {\r\n var currentWrite = writeTree.allWrites[i];\r\n if (currentWrite.visible) {\r\n if (i >= idx &&\r\n writeTreeRecordContainsPath_(currentWrite, writeToRemove.path)) {\r\n // The removed write was completely shadowed by a subsequent write.\r\n removedWriteWasVisible = false;\r\n }\r\n else if (pathContains(writeToRemove.path, currentWrite.path)) {\r\n // Either we're covering some writes or they're covering part of us (depending on which came first).\r\n removedWriteOverlapsWithOtherWrites = true;\r\n }\r\n }\r\n i--;\r\n }\r\n if (!removedWriteWasVisible) {\r\n return false;\r\n }\r\n else if (removedWriteOverlapsWithOtherWrites) {\r\n // There's some shadowing going on. Just rebuild the visible writes from scratch.\r\n writeTreeResetTree_(writeTree);\r\n return true;\r\n }\r\n else {\r\n // There's no shadowing. We can safely just remove the write(s) from visibleWrites.\r\n if (writeToRemove.snap) {\r\n writeTree.visibleWrites = compoundWriteRemoveWrite(writeTree.visibleWrites, writeToRemove.path);\r\n }\r\n else {\r\n var children = writeToRemove.children;\r\n each(children, function (childName) {\r\n writeTree.visibleWrites = compoundWriteRemoveWrite(writeTree.visibleWrites, pathChild(writeToRemove.path, childName));\r\n });\r\n }\r\n return true;\r\n }\r\n}\r\nfunction writeTreeRecordContainsPath_(writeRecord, path) {\r\n if (writeRecord.snap) {\r\n return pathContains(writeRecord.path, path);\r\n }\r\n else {\r\n for (var childName in writeRecord.children) {\r\n if (writeRecord.children.hasOwnProperty(childName) &&\r\n pathContains(pathChild(writeRecord.path, childName), path)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n/**\r\n * Re-layer the writes and merges into a tree so we can efficiently calculate event snapshots\r\n */\r\nfunction writeTreeResetTree_(writeTree) {\r\n writeTree.visibleWrites = writeTreeLayerTree_(writeTree.allWrites, writeTreeDefaultFilter_, newEmptyPath());\r\n if (writeTree.allWrites.length > 0) {\r\n writeTree.lastWriteId =\r\n writeTree.allWrites[writeTree.allWrites.length - 1].writeId;\r\n }\r\n else {\r\n writeTree.lastWriteId = -1;\r\n }\r\n}\r\n/**\r\n * The default filter used when constructing the tree. Keep everything that's visible.\r\n */\r\nfunction writeTreeDefaultFilter_(write) {\r\n return write.visible;\r\n}\r\n/**\r\n * Static method. Given an array of WriteRecords, a filter for which ones to include, and a path, construct the tree of\r\n * event data at that path.\r\n */\r\nfunction writeTreeLayerTree_(writes, filter, treeRoot) {\r\n var compoundWrite = CompoundWrite.empty();\r\n for (var i = 0; i < writes.length; ++i) {\r\n var write = writes[i];\r\n // Theory, a later set will either:\r\n // a) abort a relevant transaction, so no need to worry about excluding it from calculating that transaction\r\n // b) not be relevant to a transaction (separate branch), so again will not affect the data for that transaction\r\n if (filter(write)) {\r\n var writePath = write.path;\r\n var relativePath = void 0;\r\n if (write.snap) {\r\n if (pathContains(treeRoot, writePath)) {\r\n relativePath = newRelativePath(treeRoot, writePath);\r\n compoundWrite = compoundWriteAddWrite(compoundWrite, relativePath, write.snap);\r\n }\r\n else if (pathContains(writePath, treeRoot)) {\r\n relativePath = newRelativePath(writePath, treeRoot);\r\n compoundWrite = compoundWriteAddWrite(compoundWrite, newEmptyPath(), write.snap.getChild(relativePath));\r\n }\r\n else ;\r\n }\r\n else if (write.children) {\r\n if (pathContains(treeRoot, writePath)) {\r\n relativePath = newRelativePath(treeRoot, writePath);\r\n compoundWrite = compoundWriteAddWrites(compoundWrite, relativePath, write.children);\r\n }\r\n else if (pathContains(writePath, treeRoot)) {\r\n relativePath = newRelativePath(writePath, treeRoot);\r\n if (pathIsEmpty(relativePath)) {\r\n compoundWrite = compoundWriteAddWrites(compoundWrite, newEmptyPath(), write.children);\r\n }\r\n else {\r\n var child = safeGet(write.children, pathGetFront(relativePath));\r\n if (child) {\r\n // There exists a child in this node that matches the root path\r\n var deepNode = child.getChild(pathPopFront(relativePath));\r\n compoundWrite = compoundWriteAddWrite(compoundWrite, newEmptyPath(), deepNode);\r\n }\r\n }\r\n }\r\n else ;\r\n }\r\n else {\r\n throw assertionError('WriteRecord should have .snap or .children');\r\n }\r\n }\r\n }\r\n return compoundWrite;\r\n}\r\n/**\r\n * Given optional, underlying server data, and an optional set of constraints (exclude some sets, include hidden\r\n * writes), attempt to calculate a complete snapshot for the given path\r\n *\r\n * @param writeIdsToExclude - An optional set to be excluded\r\n * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false\r\n */\r\nfunction writeTreeCalcCompleteEventCache(writeTree, treePath, completeServerCache, writeIdsToExclude, includeHiddenWrites) {\r\n if (!writeIdsToExclude && !includeHiddenWrites) {\r\n var shadowingNode = compoundWriteGetCompleteNode(writeTree.visibleWrites, treePath);\r\n if (shadowingNode != null) {\r\n return shadowingNode;\r\n }\r\n else {\r\n var subMerge = compoundWriteChildCompoundWrite(writeTree.visibleWrites, treePath);\r\n if (compoundWriteIsEmpty(subMerge)) {\r\n return completeServerCache;\r\n }\r\n else if (completeServerCache == null &&\r\n !compoundWriteHasCompleteWrite(subMerge, newEmptyPath())) {\r\n // We wouldn't have a complete snapshot, since there's no underlying data and no complete shadow\r\n return null;\r\n }\r\n else {\r\n var layeredCache = completeServerCache || ChildrenNode.EMPTY_NODE;\r\n return compoundWriteApply(subMerge, layeredCache);\r\n }\r\n }\r\n }\r\n else {\r\n var merge = compoundWriteChildCompoundWrite(writeTree.visibleWrites, treePath);\r\n if (!includeHiddenWrites && compoundWriteIsEmpty(merge)) {\r\n return completeServerCache;\r\n }\r\n else {\r\n // If the server cache is null, and we don't have a complete cache, we need to return null\r\n if (!includeHiddenWrites &&\r\n completeServerCache == null &&\r\n !compoundWriteHasCompleteWrite(merge, newEmptyPath())) {\r\n return null;\r\n }\r\n else {\r\n var filter = function (write) {\r\n return ((write.visible || includeHiddenWrites) &&\r\n (!writeIdsToExclude ||\r\n !~writeIdsToExclude.indexOf(write.writeId)) &&\r\n (pathContains(write.path, treePath) ||\r\n pathContains(treePath, write.path)));\r\n };\r\n var mergeAtPath = writeTreeLayerTree_(writeTree.allWrites, filter, treePath);\r\n var layeredCache = completeServerCache || ChildrenNode.EMPTY_NODE;\r\n return compoundWriteApply(mergeAtPath, layeredCache);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * With optional, underlying server data, attempt to return a children node of children that we have complete data for.\r\n * Used when creating new views, to pre-fill their complete event children snapshot.\r\n */\r\nfunction writeTreeCalcCompleteEventChildren(writeTree, treePath, completeServerChildren) {\r\n var completeChildren = ChildrenNode.EMPTY_NODE;\r\n var topLevelSet = compoundWriteGetCompleteNode(writeTree.visibleWrites, treePath);\r\n if (topLevelSet) {\r\n if (!topLevelSet.isLeafNode()) {\r\n // we're shadowing everything. Return the children.\r\n topLevelSet.forEachChild(PRIORITY_INDEX, function (childName, childSnap) {\r\n completeChildren = completeChildren.updateImmediateChild(childName, childSnap);\r\n });\r\n }\r\n return completeChildren;\r\n }\r\n else if (completeServerChildren) {\r\n // Layer any children we have on top of this\r\n // We know we don't have a top-level set, so just enumerate existing children\r\n var merge_1 = compoundWriteChildCompoundWrite(writeTree.visibleWrites, treePath);\r\n completeServerChildren.forEachChild(PRIORITY_INDEX, function (childName, childNode) {\r\n var node = compoundWriteApply(compoundWriteChildCompoundWrite(merge_1, new Path(childName)), childNode);\r\n completeChildren = completeChildren.updateImmediateChild(childName, node);\r\n });\r\n // Add any complete children we have from the set\r\n compoundWriteGetCompleteChildren(merge_1).forEach(function (namedNode) {\r\n completeChildren = completeChildren.updateImmediateChild(namedNode.name, namedNode.node);\r\n });\r\n return completeChildren;\r\n }\r\n else {\r\n // We don't have anything to layer on top of. Layer on any children we have\r\n // Note that we can return an empty snap if we have a defined delete\r\n var merge = compoundWriteChildCompoundWrite(writeTree.visibleWrites, treePath);\r\n compoundWriteGetCompleteChildren(merge).forEach(function (namedNode) {\r\n completeChildren = completeChildren.updateImmediateChild(namedNode.name, namedNode.node);\r\n });\r\n return completeChildren;\r\n }\r\n}\r\n/**\r\n * Given that the underlying server data has updated, determine what, if anything, needs to be\r\n * applied to the event cache.\r\n *\r\n * Possibilities:\r\n *\r\n * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data\r\n *\r\n * 2. Some write is completely shadowing. No events to be raised\r\n *\r\n * 3. Is partially shadowed. Events\r\n *\r\n * Either existingEventSnap or existingServerSnap must exist\r\n */\r\nfunction writeTreeCalcEventCacheAfterServerOverwrite(writeTree, treePath, childPath, existingEventSnap, existingServerSnap) {\r\n assert(existingEventSnap || existingServerSnap, 'Either existingEventSnap or existingServerSnap must exist');\r\n var path = pathChild(treePath, childPath);\r\n if (compoundWriteHasCompleteWrite(writeTree.visibleWrites, path)) {\r\n // At this point we can probably guarantee that we're in case 2, meaning no events\r\n // May need to check visibility while doing the findRootMostValueAndPath call\r\n return null;\r\n }\r\n else {\r\n // No complete shadowing. We're either partially shadowing or not shadowing at all.\r\n var childMerge = compoundWriteChildCompoundWrite(writeTree.visibleWrites, path);\r\n if (compoundWriteIsEmpty(childMerge)) {\r\n // We're not shadowing at all. Case 1\r\n return existingServerSnap.getChild(childPath);\r\n }\r\n else {\r\n // This could be more efficient if the serverNode + updates doesn't change the eventSnap\r\n // However this is tricky to find out, since user updates don't necessary change the server\r\n // snap, e.g. priority updates on empty nodes, or deep deletes. Another special case is if the server\r\n // adds nodes, but doesn't change any existing writes. It is therefore not enough to\r\n // only check if the updates change the serverNode.\r\n // Maybe check if the merge tree contains these special cases and only do a full overwrite in that case?\r\n return compoundWriteApply(childMerge, existingServerSnap.getChild(childPath));\r\n }\r\n }\r\n}\r\n/**\r\n * Returns a complete child for a given server snap after applying all user writes or null if there is no\r\n * complete child for this ChildKey.\r\n */\r\nfunction writeTreeCalcCompleteChild(writeTree, treePath, childKey, existingServerSnap) {\r\n var path = pathChild(treePath, childKey);\r\n var shadowingNode = compoundWriteGetCompleteNode(writeTree.visibleWrites, path);\r\n if (shadowingNode != null) {\r\n return shadowingNode;\r\n }\r\n else {\r\n if (existingServerSnap.isCompleteForChild(childKey)) {\r\n var childMerge = compoundWriteChildCompoundWrite(writeTree.visibleWrites, path);\r\n return compoundWriteApply(childMerge, existingServerSnap.getNode().getImmediateChild(childKey));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\n/**\r\n * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at\r\n * a higher path, this will return the child of that write relative to the write and this path.\r\n * Returns null if there is no write at this path.\r\n */\r\nfunction writeTreeShadowingWrite(writeTree, path) {\r\n return compoundWriteGetCompleteNode(writeTree.visibleWrites, path);\r\n}\r\n/**\r\n * This method is used when processing child remove events on a query. If we can, we pull in children that were outside\r\n * the window, but may now be in the window.\r\n */\r\nfunction writeTreeCalcIndexedSlice(writeTree, treePath, completeServerData, startPost, count, reverse, index) {\r\n var toIterate;\r\n var merge = compoundWriteChildCompoundWrite(writeTree.visibleWrites, treePath);\r\n var shadowingNode = compoundWriteGetCompleteNode(merge, newEmptyPath());\r\n if (shadowingNode != null) {\r\n toIterate = shadowingNode;\r\n }\r\n else if (completeServerData != null) {\r\n toIterate = compoundWriteApply(merge, completeServerData);\r\n }\r\n else {\r\n // no children to iterate on\r\n return [];\r\n }\r\n toIterate = toIterate.withIndex(index);\r\n if (!toIterate.isEmpty() && !toIterate.isLeafNode()) {\r\n var nodes = [];\r\n var cmp = index.getCompare();\r\n var iter = reverse\r\n ? toIterate.getReverseIteratorFrom(startPost, index)\r\n : toIterate.getIteratorFrom(startPost, index);\r\n var next = iter.getNext();\r\n while (next && nodes.length < count) {\r\n if (cmp(next, startPost) !== 0) {\r\n nodes.push(next);\r\n }\r\n next = iter.getNext();\r\n }\r\n return nodes;\r\n }\r\n else {\r\n return [];\r\n }\r\n}\r\nfunction newWriteTree() {\r\n return {\r\n visibleWrites: CompoundWrite.empty(),\r\n allWrites: [],\r\n lastWriteId: -1\r\n };\r\n}\r\n/**\r\n * If possible, returns a complete event cache, using the underlying server data if possible. In addition, can be used\r\n * to get a cache that includes hidden writes, and excludes arbitrary writes. Note that customizing the returned node\r\n * can lead to a more expensive calculation.\r\n *\r\n * @param writeIdsToExclude - Optional writes to exclude.\r\n * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false\r\n */\r\nfunction writeTreeRefCalcCompleteEventCache(writeTreeRef, completeServerCache, writeIdsToExclude, includeHiddenWrites) {\r\n return writeTreeCalcCompleteEventCache(writeTreeRef.writeTree, writeTreeRef.treePath, completeServerCache, writeIdsToExclude, includeHiddenWrites);\r\n}\r\n/**\r\n * If possible, returns a children node containing all of the complete children we have data for. The returned data is a\r\n * mix of the given server data and write data.\r\n *\r\n */\r\nfunction writeTreeRefCalcCompleteEventChildren(writeTreeRef, completeServerChildren) {\r\n return writeTreeCalcCompleteEventChildren(writeTreeRef.writeTree, writeTreeRef.treePath, completeServerChildren);\r\n}\r\n/**\r\n * Given that either the underlying server data has updated or the outstanding writes have updated, determine what,\r\n * if anything, needs to be applied to the event cache.\r\n *\r\n * Possibilities:\r\n *\r\n * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data\r\n *\r\n * 2. Some write is completely shadowing. No events to be raised\r\n *\r\n * 3. Is partially shadowed. Events should be raised\r\n *\r\n * Either existingEventSnap or existingServerSnap must exist, this is validated via an assert\r\n *\r\n *\r\n */\r\nfunction writeTreeRefCalcEventCacheAfterServerOverwrite(writeTreeRef, path, existingEventSnap, existingServerSnap) {\r\n return writeTreeCalcEventCacheAfterServerOverwrite(writeTreeRef.writeTree, writeTreeRef.treePath, path, existingEventSnap, existingServerSnap);\r\n}\r\n/**\r\n * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at\r\n * a higher path, this will return the child of that write relative to the write and this path.\r\n * Returns null if there is no write at this path.\r\n *\r\n */\r\nfunction writeTreeRefShadowingWrite(writeTreeRef, path) {\r\n return writeTreeShadowingWrite(writeTreeRef.writeTree, pathChild(writeTreeRef.treePath, path));\r\n}\r\n/**\r\n * This method is used when processing child remove events on a query. If we can, we pull in children that were outside\r\n * the window, but may now be in the window\r\n */\r\nfunction writeTreeRefCalcIndexedSlice(writeTreeRef, completeServerData, startPost, count, reverse, index) {\r\n return writeTreeCalcIndexedSlice(writeTreeRef.writeTree, writeTreeRef.treePath, completeServerData, startPost, count, reverse, index);\r\n}\r\n/**\r\n * Returns a complete child for a given server snap after applying all user writes or null if there is no\r\n * complete child for this ChildKey.\r\n */\r\nfunction writeTreeRefCalcCompleteChild(writeTreeRef, childKey, existingServerCache) {\r\n return writeTreeCalcCompleteChild(writeTreeRef.writeTree, writeTreeRef.treePath, childKey, existingServerCache);\r\n}\r\n/**\r\n * Return a WriteTreeRef for a child.\r\n */\r\nfunction writeTreeRefChild(writeTreeRef, childName) {\r\n return newWriteTreeRef(pathChild(writeTreeRef.treePath, childName), writeTreeRef.writeTree);\r\n}\r\nfunction newWriteTreeRef(path, writeTree) {\r\n return {\r\n treePath: path,\r\n writeTree: writeTree\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ChildChangeAccumulator = /** @class */ (function () {\r\n function ChildChangeAccumulator() {\r\n this.changeMap = new Map();\r\n }\r\n ChildChangeAccumulator.prototype.trackChildChange = function (change) {\r\n var type = change.type;\r\n var childKey = change.childName;\r\n assert(type === \"child_added\" /* CHILD_ADDED */ ||\r\n type === \"child_changed\" /* CHILD_CHANGED */ ||\r\n type === \"child_removed\" /* CHILD_REMOVED */, 'Only child changes supported for tracking');\r\n assert(childKey !== '.priority', 'Only non-priority child changes can be tracked.');\r\n var oldChange = this.changeMap.get(childKey);\r\n if (oldChange) {\r\n var oldType = oldChange.type;\r\n if (type === \"child_added\" /* CHILD_ADDED */ &&\r\n oldType === \"child_removed\" /* CHILD_REMOVED */) {\r\n this.changeMap.set(childKey, changeChildChanged(childKey, change.snapshotNode, oldChange.snapshotNode));\r\n }\r\n else if (type === \"child_removed\" /* CHILD_REMOVED */ &&\r\n oldType === \"child_added\" /* CHILD_ADDED */) {\r\n this.changeMap.delete(childKey);\r\n }\r\n else if (type === \"child_removed\" /* CHILD_REMOVED */ &&\r\n oldType === \"child_changed\" /* CHILD_CHANGED */) {\r\n this.changeMap.set(childKey, changeChildRemoved(childKey, oldChange.oldSnap));\r\n }\r\n else if (type === \"child_changed\" /* CHILD_CHANGED */ &&\r\n oldType === \"child_added\" /* CHILD_ADDED */) {\r\n this.changeMap.set(childKey, changeChildAdded(childKey, change.snapshotNode));\r\n }\r\n else if (type === \"child_changed\" /* CHILD_CHANGED */ &&\r\n oldType === \"child_changed\" /* CHILD_CHANGED */) {\r\n this.changeMap.set(childKey, changeChildChanged(childKey, change.snapshotNode, oldChange.oldSnap));\r\n }\r\n else {\r\n throw assertionError('Illegal combination of changes: ' +\r\n change +\r\n ' occurred after ' +\r\n oldChange);\r\n }\r\n }\r\n else {\r\n this.changeMap.set(childKey, change);\r\n }\r\n };\r\n ChildChangeAccumulator.prototype.getChanges = function () {\r\n return Array.from(this.changeMap.values());\r\n };\r\n return ChildChangeAccumulator;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An implementation of CompleteChildSource that never returns any additional children\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nvar NoCompleteChildSource_ = /** @class */ (function () {\r\n function NoCompleteChildSource_() {\r\n }\r\n NoCompleteChildSource_.prototype.getCompleteChild = function (childKey) {\r\n return null;\r\n };\r\n NoCompleteChildSource_.prototype.getChildAfterChild = function (index, child, reverse) {\r\n return null;\r\n };\r\n return NoCompleteChildSource_;\r\n}());\r\n/**\r\n * Singleton instance.\r\n */\r\nvar NO_COMPLETE_CHILD_SOURCE = new NoCompleteChildSource_();\r\n/**\r\n * An implementation of CompleteChildSource that uses a WriteTree in addition to any other server data or\r\n * old event caches available to calculate complete children.\r\n */\r\nvar WriteTreeCompleteChildSource = /** @class */ (function () {\r\n function WriteTreeCompleteChildSource(writes_, viewCache_, optCompleteServerCache_) {\r\n if (optCompleteServerCache_ === void 0) { optCompleteServerCache_ = null; }\r\n this.writes_ = writes_;\r\n this.viewCache_ = viewCache_;\r\n this.optCompleteServerCache_ = optCompleteServerCache_;\r\n }\r\n WriteTreeCompleteChildSource.prototype.getCompleteChild = function (childKey) {\r\n var node = this.viewCache_.eventCache;\r\n if (node.isCompleteForChild(childKey)) {\r\n return node.getNode().getImmediateChild(childKey);\r\n }\r\n else {\r\n var serverNode = this.optCompleteServerCache_ != null\r\n ? new CacheNode(this.optCompleteServerCache_, true, false)\r\n : this.viewCache_.serverCache;\r\n return writeTreeRefCalcCompleteChild(this.writes_, childKey, serverNode);\r\n }\r\n };\r\n WriteTreeCompleteChildSource.prototype.getChildAfterChild = function (index, child, reverse) {\r\n var completeServerData = this.optCompleteServerCache_ != null\r\n ? this.optCompleteServerCache_\r\n : viewCacheGetCompleteServerSnap(this.viewCache_);\r\n var nodes = writeTreeRefCalcIndexedSlice(this.writes_, completeServerData, child, 1, reverse, index);\r\n if (nodes.length === 0) {\r\n return null;\r\n }\r\n else {\r\n return nodes[0];\r\n }\r\n };\r\n return WriteTreeCompleteChildSource;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction newViewProcessor(filter) {\r\n return { filter: filter };\r\n}\r\nfunction viewProcessorAssertIndexed(viewProcessor, viewCache) {\r\n assert(viewCache.eventCache.getNode().isIndexed(viewProcessor.filter.getIndex()), 'Event snap not indexed');\r\n assert(viewCache.serverCache.getNode().isIndexed(viewProcessor.filter.getIndex()), 'Server snap not indexed');\r\n}\r\nfunction viewProcessorApplyOperation(viewProcessor, oldViewCache, operation, writesCache, completeCache) {\r\n var accumulator = new ChildChangeAccumulator();\r\n var newViewCache, filterServerNode;\r\n if (operation.type === OperationType.OVERWRITE) {\r\n var overwrite = operation;\r\n if (overwrite.source.fromUser) {\r\n newViewCache = viewProcessorApplyUserOverwrite(viewProcessor, oldViewCache, overwrite.path, overwrite.snap, writesCache, completeCache, accumulator);\r\n }\r\n else {\r\n assert(overwrite.source.fromServer, 'Unknown source.');\r\n // We filter the node if it's a tagged update or the node has been previously filtered and the\r\n // update is not at the root in which case it is ok (and necessary) to mark the node unfiltered\r\n // again\r\n filterServerNode =\r\n overwrite.source.tagged ||\r\n (oldViewCache.serverCache.isFiltered() && !pathIsEmpty(overwrite.path));\r\n newViewCache = viewProcessorApplyServerOverwrite(viewProcessor, oldViewCache, overwrite.path, overwrite.snap, writesCache, completeCache, filterServerNode, accumulator);\r\n }\r\n }\r\n else if (operation.type === OperationType.MERGE) {\r\n var merge = operation;\r\n if (merge.source.fromUser) {\r\n newViewCache = viewProcessorApplyUserMerge(viewProcessor, oldViewCache, merge.path, merge.children, writesCache, completeCache, accumulator);\r\n }\r\n else {\r\n assert(merge.source.fromServer, 'Unknown source.');\r\n // We filter the node if it's a tagged update or the node has been previously filtered\r\n filterServerNode =\r\n merge.source.tagged || oldViewCache.serverCache.isFiltered();\r\n newViewCache = viewProcessorApplyServerMerge(viewProcessor, oldViewCache, merge.path, merge.children, writesCache, completeCache, filterServerNode, accumulator);\r\n }\r\n }\r\n else if (operation.type === OperationType.ACK_USER_WRITE) {\r\n var ackUserWrite = operation;\r\n if (!ackUserWrite.revert) {\r\n newViewCache = viewProcessorAckUserWrite(viewProcessor, oldViewCache, ackUserWrite.path, ackUserWrite.affectedTree, writesCache, completeCache, accumulator);\r\n }\r\n else {\r\n newViewCache = viewProcessorRevertUserWrite(viewProcessor, oldViewCache, ackUserWrite.path, writesCache, completeCache, accumulator);\r\n }\r\n }\r\n else if (operation.type === OperationType.LISTEN_COMPLETE) {\r\n newViewCache = viewProcessorListenComplete(viewProcessor, oldViewCache, operation.path, writesCache, accumulator);\r\n }\r\n else {\r\n throw assertionError('Unknown operation type: ' + operation.type);\r\n }\r\n var changes = accumulator.getChanges();\r\n viewProcessorMaybeAddValueEvent(oldViewCache, newViewCache, changes);\r\n return { viewCache: newViewCache, changes: changes };\r\n}\r\nfunction viewProcessorMaybeAddValueEvent(oldViewCache, newViewCache, accumulator) {\r\n var eventSnap = newViewCache.eventCache;\r\n if (eventSnap.isFullyInitialized()) {\r\n var isLeafOrEmpty = eventSnap.getNode().isLeafNode() || eventSnap.getNode().isEmpty();\r\n var oldCompleteSnap = viewCacheGetCompleteEventSnap(oldViewCache);\r\n if (accumulator.length > 0 ||\r\n !oldViewCache.eventCache.isFullyInitialized() ||\r\n (isLeafOrEmpty && !eventSnap.getNode().equals(oldCompleteSnap)) ||\r\n !eventSnap.getNode().getPriority().equals(oldCompleteSnap.getPriority())) {\r\n accumulator.push(changeValue(viewCacheGetCompleteEventSnap(newViewCache)));\r\n }\r\n }\r\n}\r\nfunction viewProcessorGenerateEventCacheAfterServerEvent(viewProcessor, viewCache, changePath, writesCache, source, accumulator) {\r\n var oldEventSnap = viewCache.eventCache;\r\n if (writeTreeRefShadowingWrite(writesCache, changePath) != null) {\r\n // we have a shadowing write, ignore changes\r\n return viewCache;\r\n }\r\n else {\r\n var newEventCache = void 0, serverNode = void 0;\r\n if (pathIsEmpty(changePath)) {\r\n // TODO: figure out how this plays with \"sliding ack windows\"\r\n assert(viewCache.serverCache.isFullyInitialized(), 'If change path is empty, we must have complete server data');\r\n if (viewCache.serverCache.isFiltered()) {\r\n // We need to special case this, because we need to only apply writes to complete children, or\r\n // we might end up raising events for incomplete children. If the server data is filtered deep\r\n // writes cannot be guaranteed to be complete\r\n var serverCache = viewCacheGetCompleteServerSnap(viewCache);\r\n var completeChildren = serverCache instanceof ChildrenNode\r\n ? serverCache\r\n : ChildrenNode.EMPTY_NODE;\r\n var completeEventChildren = writeTreeRefCalcCompleteEventChildren(writesCache, completeChildren);\r\n newEventCache = viewProcessor.filter.updateFullNode(viewCache.eventCache.getNode(), completeEventChildren, accumulator);\r\n }\r\n else {\r\n var completeNode = writeTreeRefCalcCompleteEventCache(writesCache, viewCacheGetCompleteServerSnap(viewCache));\r\n newEventCache = viewProcessor.filter.updateFullNode(viewCache.eventCache.getNode(), completeNode, accumulator);\r\n }\r\n }\r\n else {\r\n var childKey = pathGetFront(changePath);\r\n if (childKey === '.priority') {\r\n assert(pathGetLength(changePath) === 1, \"Can't have a priority with additional path components\");\r\n var oldEventNode = oldEventSnap.getNode();\r\n serverNode = viewCache.serverCache.getNode();\r\n // we might have overwrites for this priority\r\n var updatedPriority = writeTreeRefCalcEventCacheAfterServerOverwrite(writesCache, changePath, oldEventNode, serverNode);\r\n if (updatedPriority != null) {\r\n newEventCache = viewProcessor.filter.updatePriority(oldEventNode, updatedPriority);\r\n }\r\n else {\r\n // priority didn't change, keep old node\r\n newEventCache = oldEventSnap.getNode();\r\n }\r\n }\r\n else {\r\n var childChangePath = pathPopFront(changePath);\r\n // update child\r\n var newEventChild = void 0;\r\n if (oldEventSnap.isCompleteForChild(childKey)) {\r\n serverNode = viewCache.serverCache.getNode();\r\n var eventChildUpdate = writeTreeRefCalcEventCacheAfterServerOverwrite(writesCache, changePath, oldEventSnap.getNode(), serverNode);\r\n if (eventChildUpdate != null) {\r\n newEventChild = oldEventSnap\r\n .getNode()\r\n .getImmediateChild(childKey)\r\n .updateChild(childChangePath, eventChildUpdate);\r\n }\r\n else {\r\n // Nothing changed, just keep the old child\r\n newEventChild = oldEventSnap.getNode().getImmediateChild(childKey);\r\n }\r\n }\r\n else {\r\n newEventChild = writeTreeRefCalcCompleteChild(writesCache, childKey, viewCache.serverCache);\r\n }\r\n if (newEventChild != null) {\r\n newEventCache = viewProcessor.filter.updateChild(oldEventSnap.getNode(), childKey, newEventChild, childChangePath, source, accumulator);\r\n }\r\n else {\r\n // no complete child available or no change\r\n newEventCache = oldEventSnap.getNode();\r\n }\r\n }\r\n }\r\n return viewCacheUpdateEventSnap(viewCache, newEventCache, oldEventSnap.isFullyInitialized() || pathIsEmpty(changePath), viewProcessor.filter.filtersNodes());\r\n }\r\n}\r\nfunction viewProcessorApplyServerOverwrite(viewProcessor, oldViewCache, changePath, changedSnap, writesCache, completeCache, filterServerNode, accumulator) {\r\n var oldServerSnap = oldViewCache.serverCache;\r\n var newServerCache;\r\n var serverFilter = filterServerNode\r\n ? viewProcessor.filter\r\n : viewProcessor.filter.getIndexedFilter();\r\n if (pathIsEmpty(changePath)) {\r\n newServerCache = serverFilter.updateFullNode(oldServerSnap.getNode(), changedSnap, null);\r\n }\r\n else if (serverFilter.filtersNodes() && !oldServerSnap.isFiltered()) {\r\n // we want to filter the server node, but we didn't filter the server node yet, so simulate a full update\r\n var newServerNode = oldServerSnap\r\n .getNode()\r\n .updateChild(changePath, changedSnap);\r\n newServerCache = serverFilter.updateFullNode(oldServerSnap.getNode(), newServerNode, null);\r\n }\r\n else {\r\n var childKey = pathGetFront(changePath);\r\n if (!oldServerSnap.isCompleteForPath(changePath) &&\r\n pathGetLength(changePath) > 1) {\r\n // We don't update incomplete nodes with updates intended for other listeners\r\n return oldViewCache;\r\n }\r\n var childChangePath = pathPopFront(changePath);\r\n var childNode = oldServerSnap.getNode().getImmediateChild(childKey);\r\n var newChildNode = childNode.updateChild(childChangePath, changedSnap);\r\n if (childKey === '.priority') {\r\n newServerCache = serverFilter.updatePriority(oldServerSnap.getNode(), newChildNode);\r\n }\r\n else {\r\n newServerCache = serverFilter.updateChild(oldServerSnap.getNode(), childKey, newChildNode, childChangePath, NO_COMPLETE_CHILD_SOURCE, null);\r\n }\r\n }\r\n var newViewCache = viewCacheUpdateServerSnap(oldViewCache, newServerCache, oldServerSnap.isFullyInitialized() || pathIsEmpty(changePath), serverFilter.filtersNodes());\r\n var source = new WriteTreeCompleteChildSource(writesCache, newViewCache, completeCache);\r\n return viewProcessorGenerateEventCacheAfterServerEvent(viewProcessor, newViewCache, changePath, writesCache, source, accumulator);\r\n}\r\nfunction viewProcessorApplyUserOverwrite(viewProcessor, oldViewCache, changePath, changedSnap, writesCache, completeCache, accumulator) {\r\n var oldEventSnap = oldViewCache.eventCache;\r\n var newViewCache, newEventCache;\r\n var source = new WriteTreeCompleteChildSource(writesCache, oldViewCache, completeCache);\r\n if (pathIsEmpty(changePath)) {\r\n newEventCache = viewProcessor.filter.updateFullNode(oldViewCache.eventCache.getNode(), changedSnap, accumulator);\r\n newViewCache = viewCacheUpdateEventSnap(oldViewCache, newEventCache, true, viewProcessor.filter.filtersNodes());\r\n }\r\n else {\r\n var childKey = pathGetFront(changePath);\r\n if (childKey === '.priority') {\r\n newEventCache = viewProcessor.filter.updatePriority(oldViewCache.eventCache.getNode(), changedSnap);\r\n newViewCache = viewCacheUpdateEventSnap(oldViewCache, newEventCache, oldEventSnap.isFullyInitialized(), oldEventSnap.isFiltered());\r\n }\r\n else {\r\n var childChangePath = pathPopFront(changePath);\r\n var oldChild = oldEventSnap.getNode().getImmediateChild(childKey);\r\n var newChild = void 0;\r\n if (pathIsEmpty(childChangePath)) {\r\n // Child overwrite, we can replace the child\r\n newChild = changedSnap;\r\n }\r\n else {\r\n var childNode = source.getCompleteChild(childKey);\r\n if (childNode != null) {\r\n if (pathGetBack(childChangePath) === '.priority' &&\r\n childNode.getChild(pathParent(childChangePath)).isEmpty()) {\r\n // This is a priority update on an empty node. If this node exists on the server, the\r\n // server will send down the priority in the update, so ignore for now\r\n newChild = childNode;\r\n }\r\n else {\r\n newChild = childNode.updateChild(childChangePath, changedSnap);\r\n }\r\n }\r\n else {\r\n // There is no complete child node available\r\n newChild = ChildrenNode.EMPTY_NODE;\r\n }\r\n }\r\n if (!oldChild.equals(newChild)) {\r\n var newEventSnap = viewProcessor.filter.updateChild(oldEventSnap.getNode(), childKey, newChild, childChangePath, source, accumulator);\r\n newViewCache = viewCacheUpdateEventSnap(oldViewCache, newEventSnap, oldEventSnap.isFullyInitialized(), viewProcessor.filter.filtersNodes());\r\n }\r\n else {\r\n newViewCache = oldViewCache;\r\n }\r\n }\r\n }\r\n return newViewCache;\r\n}\r\nfunction viewProcessorCacheHasChild(viewCache, childKey) {\r\n return viewCache.eventCache.isCompleteForChild(childKey);\r\n}\r\nfunction viewProcessorApplyUserMerge(viewProcessor, viewCache, path, changedChildren, writesCache, serverCache, accumulator) {\r\n // HACK: In the case of a limit query, there may be some changes that bump things out of the\r\n // window leaving room for new items. It's important we process these changes first, so we\r\n // iterate the changes twice, first processing any that affect items currently in view.\r\n // TODO: I consider an item \"in view\" if cacheHasChild is true, which checks both the server\r\n // and event snap. I'm not sure if this will result in edge cases when a child is in one but\r\n // not the other.\r\n var curViewCache = viewCache;\r\n changedChildren.foreach(function (relativePath, childNode) {\r\n var writePath = pathChild(path, relativePath);\r\n if (viewProcessorCacheHasChild(viewCache, pathGetFront(writePath))) {\r\n curViewCache = viewProcessorApplyUserOverwrite(viewProcessor, curViewCache, writePath, childNode, writesCache, serverCache, accumulator);\r\n }\r\n });\r\n changedChildren.foreach(function (relativePath, childNode) {\r\n var writePath = pathChild(path, relativePath);\r\n if (!viewProcessorCacheHasChild(viewCache, pathGetFront(writePath))) {\r\n curViewCache = viewProcessorApplyUserOverwrite(viewProcessor, curViewCache, writePath, childNode, writesCache, serverCache, accumulator);\r\n }\r\n });\r\n return curViewCache;\r\n}\r\nfunction viewProcessorApplyMerge(viewProcessor, node, merge) {\r\n merge.foreach(function (relativePath, childNode) {\r\n node = node.updateChild(relativePath, childNode);\r\n });\r\n return node;\r\n}\r\nfunction viewProcessorApplyServerMerge(viewProcessor, viewCache, path, changedChildren, writesCache, serverCache, filterServerNode, accumulator) {\r\n // If we don't have a cache yet, this merge was intended for a previously listen in the same location. Ignore it and\r\n // wait for the complete data update coming soon.\r\n if (viewCache.serverCache.getNode().isEmpty() &&\r\n !viewCache.serverCache.isFullyInitialized()) {\r\n return viewCache;\r\n }\r\n // HACK: In the case of a limit query, there may be some changes that bump things out of the\r\n // window leaving room for new items. It's important we process these changes first, so we\r\n // iterate the changes twice, first processing any that affect items currently in view.\r\n // TODO: I consider an item \"in view\" if cacheHasChild is true, which checks both the server\r\n // and event snap. I'm not sure if this will result in edge cases when a child is in one but\r\n // not the other.\r\n var curViewCache = viewCache;\r\n var viewMergeTree;\r\n if (pathIsEmpty(path)) {\r\n viewMergeTree = changedChildren;\r\n }\r\n else {\r\n viewMergeTree = new ImmutableTree(null).setTree(path, changedChildren);\r\n }\r\n var serverNode = viewCache.serverCache.getNode();\r\n viewMergeTree.children.inorderTraversal(function (childKey, childTree) {\r\n if (serverNode.hasChild(childKey)) {\r\n var serverChild = viewCache.serverCache\r\n .getNode()\r\n .getImmediateChild(childKey);\r\n var newChild = viewProcessorApplyMerge(viewProcessor, serverChild, childTree);\r\n curViewCache = viewProcessorApplyServerOverwrite(viewProcessor, curViewCache, new Path(childKey), newChild, writesCache, serverCache, filterServerNode, accumulator);\r\n }\r\n });\r\n viewMergeTree.children.inorderTraversal(function (childKey, childMergeTree) {\r\n var isUnknownDeepMerge = !viewCache.serverCache.isCompleteForChild(childKey) &&\r\n childMergeTree.value === undefined;\r\n if (!serverNode.hasChild(childKey) && !isUnknownDeepMerge) {\r\n var serverChild = viewCache.serverCache\r\n .getNode()\r\n .getImmediateChild(childKey);\r\n var newChild = viewProcessorApplyMerge(viewProcessor, serverChild, childMergeTree);\r\n curViewCache = viewProcessorApplyServerOverwrite(viewProcessor, curViewCache, new Path(childKey), newChild, writesCache, serverCache, filterServerNode, accumulator);\r\n }\r\n });\r\n return curViewCache;\r\n}\r\nfunction viewProcessorAckUserWrite(viewProcessor, viewCache, ackPath, affectedTree, writesCache, completeCache, accumulator) {\r\n if (writeTreeRefShadowingWrite(writesCache, ackPath) != null) {\r\n return viewCache;\r\n }\r\n // Only filter server node if it is currently filtered\r\n var filterServerNode = viewCache.serverCache.isFiltered();\r\n // Essentially we'll just get our existing server cache for the affected paths and re-apply it as a server update\r\n // now that it won't be shadowed.\r\n var serverCache = viewCache.serverCache;\r\n if (affectedTree.value != null) {\r\n // This is an overwrite.\r\n if ((pathIsEmpty(ackPath) && serverCache.isFullyInitialized()) ||\r\n serverCache.isCompleteForPath(ackPath)) {\r\n return viewProcessorApplyServerOverwrite(viewProcessor, viewCache, ackPath, serverCache.getNode().getChild(ackPath), writesCache, completeCache, filterServerNode, accumulator);\r\n }\r\n else if (pathIsEmpty(ackPath)) {\r\n // This is a goofy edge case where we are acking data at this location but don't have full data. We\r\n // should just re-apply whatever we have in our cache as a merge.\r\n var changedChildren_1 = new ImmutableTree(null);\r\n serverCache.getNode().forEachChild(KEY_INDEX, function (name, node) {\r\n changedChildren_1 = changedChildren_1.set(new Path(name), node);\r\n });\r\n return viewProcessorApplyServerMerge(viewProcessor, viewCache, ackPath, changedChildren_1, writesCache, completeCache, filterServerNode, accumulator);\r\n }\r\n else {\r\n return viewCache;\r\n }\r\n }\r\n else {\r\n // This is a merge.\r\n var changedChildren_2 = new ImmutableTree(null);\r\n affectedTree.foreach(function (mergePath, value) {\r\n var serverCachePath = pathChild(ackPath, mergePath);\r\n if (serverCache.isCompleteForPath(serverCachePath)) {\r\n changedChildren_2 = changedChildren_2.set(mergePath, serverCache.getNode().getChild(serverCachePath));\r\n }\r\n });\r\n return viewProcessorApplyServerMerge(viewProcessor, viewCache, ackPath, changedChildren_2, writesCache, completeCache, filterServerNode, accumulator);\r\n }\r\n}\r\nfunction viewProcessorListenComplete(viewProcessor, viewCache, path, writesCache, accumulator) {\r\n var oldServerNode = viewCache.serverCache;\r\n var newViewCache = viewCacheUpdateServerSnap(viewCache, oldServerNode.getNode(), oldServerNode.isFullyInitialized() || pathIsEmpty(path), oldServerNode.isFiltered());\r\n return viewProcessorGenerateEventCacheAfterServerEvent(viewProcessor, newViewCache, path, writesCache, NO_COMPLETE_CHILD_SOURCE, accumulator);\r\n}\r\nfunction viewProcessorRevertUserWrite(viewProcessor, viewCache, path, writesCache, completeServerCache, accumulator) {\r\n var complete;\r\n if (writeTreeRefShadowingWrite(writesCache, path) != null) {\r\n return viewCache;\r\n }\r\n else {\r\n var source = new WriteTreeCompleteChildSource(writesCache, viewCache, completeServerCache);\r\n var oldEventCache = viewCache.eventCache.getNode();\r\n var newEventCache = void 0;\r\n if (pathIsEmpty(path) || pathGetFront(path) === '.priority') {\r\n var newNode = void 0;\r\n if (viewCache.serverCache.isFullyInitialized()) {\r\n newNode = writeTreeRefCalcCompleteEventCache(writesCache, viewCacheGetCompleteServerSnap(viewCache));\r\n }\r\n else {\r\n var serverChildren = viewCache.serverCache.getNode();\r\n assert(serverChildren instanceof ChildrenNode, 'serverChildren would be complete if leaf node');\r\n newNode = writeTreeRefCalcCompleteEventChildren(writesCache, serverChildren);\r\n }\r\n newNode = newNode;\r\n newEventCache = viewProcessor.filter.updateFullNode(oldEventCache, newNode, accumulator);\r\n }\r\n else {\r\n var childKey = pathGetFront(path);\r\n var newChild = writeTreeRefCalcCompleteChild(writesCache, childKey, viewCache.serverCache);\r\n if (newChild == null &&\r\n viewCache.serverCache.isCompleteForChild(childKey)) {\r\n newChild = oldEventCache.getImmediateChild(childKey);\r\n }\r\n if (newChild != null) {\r\n newEventCache = viewProcessor.filter.updateChild(oldEventCache, childKey, newChild, pathPopFront(path), source, accumulator);\r\n }\r\n else if (viewCache.eventCache.getNode().hasChild(childKey)) {\r\n // No complete child available, delete the existing one, if any\r\n newEventCache = viewProcessor.filter.updateChild(oldEventCache, childKey, ChildrenNode.EMPTY_NODE, pathPopFront(path), source, accumulator);\r\n }\r\n else {\r\n newEventCache = oldEventCache;\r\n }\r\n if (newEventCache.isEmpty() &&\r\n viewCache.serverCache.isFullyInitialized()) {\r\n // We might have reverted all child writes. Maybe the old event was a leaf node\r\n complete = writeTreeRefCalcCompleteEventCache(writesCache, viewCacheGetCompleteServerSnap(viewCache));\r\n if (complete.isLeafNode()) {\r\n newEventCache = viewProcessor.filter.updateFullNode(newEventCache, complete, accumulator);\r\n }\r\n }\r\n }\r\n complete =\r\n viewCache.serverCache.isFullyInitialized() ||\r\n writeTreeRefShadowingWrite(writesCache, newEmptyPath()) != null;\r\n return viewCacheUpdateEventSnap(viewCache, newEventCache, complete, viewProcessor.filter.filtersNodes());\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A view represents a specific location and query that has 1 or more event registrations.\r\n *\r\n * It does several things:\r\n * - Maintains the list of event registrations for this location/query.\r\n * - Maintains a cache of the data visible for this location/query.\r\n * - Applies new operations (via applyOperation), updates the cache, and based on the event\r\n * registrations returns the set of events to be raised.\r\n */\r\nvar View = /** @class */ (function () {\r\n function View(query_, initialViewCache) {\r\n this.query_ = query_;\r\n this.eventRegistrations_ = [];\r\n var params = this.query_._queryParams;\r\n var indexFilter = new IndexedFilter(params.getIndex());\r\n var filter = queryParamsGetNodeFilter(params);\r\n this.processor_ = newViewProcessor(filter);\r\n var initialServerCache = initialViewCache.serverCache;\r\n var initialEventCache = initialViewCache.eventCache;\r\n // Don't filter server node with other filter than index, wait for tagged listen\r\n var serverSnap = indexFilter.updateFullNode(ChildrenNode.EMPTY_NODE, initialServerCache.getNode(), null);\r\n var eventSnap = filter.updateFullNode(ChildrenNode.EMPTY_NODE, initialEventCache.getNode(), null);\r\n var newServerCache = new CacheNode(serverSnap, initialServerCache.isFullyInitialized(), indexFilter.filtersNodes());\r\n var newEventCache = new CacheNode(eventSnap, initialEventCache.isFullyInitialized(), filter.filtersNodes());\r\n this.viewCache_ = newViewCache(newEventCache, newServerCache);\r\n this.eventGenerator_ = new EventGenerator(this.query_);\r\n }\r\n Object.defineProperty(View.prototype, \"query\", {\r\n get: function () {\r\n return this.query_;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return View;\r\n}());\r\nfunction viewGetServerCache(view) {\r\n return view.viewCache_.serverCache.getNode();\r\n}\r\nfunction viewGetCompleteNode(view) {\r\n return viewCacheGetCompleteEventSnap(view.viewCache_);\r\n}\r\nfunction viewGetCompleteServerCache(view, path) {\r\n var cache = viewCacheGetCompleteServerSnap(view.viewCache_);\r\n if (cache) {\r\n // If this isn't a \"loadsAllData\" view, then cache isn't actually a complete cache and\r\n // we need to see if it contains the child we're interested in.\r\n if (view.query._queryParams.loadsAllData() ||\r\n (!pathIsEmpty(path) &&\r\n !cache.getImmediateChild(pathGetFront(path)).isEmpty())) {\r\n return cache.getChild(path);\r\n }\r\n }\r\n return null;\r\n}\r\nfunction viewIsEmpty(view) {\r\n return view.eventRegistrations_.length === 0;\r\n}\r\nfunction viewAddEventRegistration(view, eventRegistration) {\r\n view.eventRegistrations_.push(eventRegistration);\r\n}\r\n/**\r\n * @param eventRegistration - If null, remove all callbacks.\r\n * @param cancelError - If a cancelError is provided, appropriate cancel events will be returned.\r\n * @returns Cancel events, if cancelError was provided.\r\n */\r\nfunction viewRemoveEventRegistration(view, eventRegistration, cancelError) {\r\n var cancelEvents = [];\r\n if (cancelError) {\r\n assert(eventRegistration == null, 'A cancel should cancel all event registrations.');\r\n var path_1 = view.query._path;\r\n view.eventRegistrations_.forEach(function (registration) {\r\n var maybeEvent = registration.createCancelEvent(cancelError, path_1);\r\n if (maybeEvent) {\r\n cancelEvents.push(maybeEvent);\r\n }\r\n });\r\n }\r\n if (eventRegistration) {\r\n var remaining = [];\r\n for (var i = 0; i < view.eventRegistrations_.length; ++i) {\r\n var existing = view.eventRegistrations_[i];\r\n if (!existing.matches(eventRegistration)) {\r\n remaining.push(existing);\r\n }\r\n else if (eventRegistration.hasAnyCallback()) {\r\n // We're removing just this one\r\n remaining = remaining.concat(view.eventRegistrations_.slice(i + 1));\r\n break;\r\n }\r\n }\r\n view.eventRegistrations_ = remaining;\r\n }\r\n else {\r\n view.eventRegistrations_ = [];\r\n }\r\n return cancelEvents;\r\n}\r\n/**\r\n * Applies the given Operation, updates our cache, and returns the appropriate events.\r\n */\r\nfunction viewApplyOperation(view, operation, writesCache, completeServerCache) {\r\n if (operation.type === OperationType.MERGE &&\r\n operation.source.queryId !== null) {\r\n assert(viewCacheGetCompleteServerSnap(view.viewCache_), 'We should always have a full cache before handling merges');\r\n assert(viewCacheGetCompleteEventSnap(view.viewCache_), 'Missing event cache, even though we have a server cache');\r\n }\r\n var oldViewCache = view.viewCache_;\r\n var result = viewProcessorApplyOperation(view.processor_, oldViewCache, operation, writesCache, completeServerCache);\r\n viewProcessorAssertIndexed(view.processor_, result.viewCache);\r\n assert(result.viewCache.serverCache.isFullyInitialized() ||\r\n !oldViewCache.serverCache.isFullyInitialized(), 'Once a server snap is complete, it should never go back');\r\n view.viewCache_ = result.viewCache;\r\n return viewGenerateEventsForChanges_(view, result.changes, result.viewCache.eventCache.getNode(), null);\r\n}\r\nfunction viewGetInitialEvents(view, registration) {\r\n var eventSnap = view.viewCache_.eventCache;\r\n var initialChanges = [];\r\n if (!eventSnap.getNode().isLeafNode()) {\r\n var eventNode = eventSnap.getNode();\r\n eventNode.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n initialChanges.push(changeChildAdded(key, childNode));\r\n });\r\n }\r\n if (eventSnap.isFullyInitialized()) {\r\n initialChanges.push(changeValue(eventSnap.getNode()));\r\n }\r\n return viewGenerateEventsForChanges_(view, initialChanges, eventSnap.getNode(), registration);\r\n}\r\nfunction viewGenerateEventsForChanges_(view, changes, eventCache, eventRegistration) {\r\n var registrations = eventRegistration\r\n ? [eventRegistration]\r\n : view.eventRegistrations_;\r\n return eventGeneratorGenerateEventsForChanges(view.eventGenerator_, changes, eventCache, registrations);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar referenceConstructor$1;\r\n/**\r\n * SyncPoint represents a single location in a SyncTree with 1 or more event registrations, meaning we need to\r\n * maintain 1 or more Views at this location to cache server data and raise appropriate events for server changes\r\n * and user writes (set, transaction, update).\r\n *\r\n * It's responsible for:\r\n * - Maintaining the set of 1 or more views necessary at this location (a SyncPoint with 0 views should be removed).\r\n * - Proxying user / server operations to the views as appropriate (i.e. applyServerOverwrite,\r\n * applyUserOverwrite, etc.)\r\n */\r\nvar SyncPoint = /** @class */ (function () {\r\n function SyncPoint() {\r\n /**\r\n * The Views being tracked at this location in the tree, stored as a map where the key is a\r\n * queryId and the value is the View for that query.\r\n *\r\n * NOTE: This list will be quite small (usually 1, but perhaps 2 or 3; any more is an odd use case).\r\n */\r\n this.views = new Map();\r\n }\r\n return SyncPoint;\r\n}());\r\nfunction syncPointSetReferenceConstructor(val) {\r\n assert(!referenceConstructor$1, '__referenceConstructor has already been defined');\r\n referenceConstructor$1 = val;\r\n}\r\nfunction syncPointGetReferenceConstructor() {\r\n assert(referenceConstructor$1, 'Reference.ts has not been loaded');\r\n return referenceConstructor$1;\r\n}\r\nfunction syncPointIsEmpty(syncPoint) {\r\n return syncPoint.views.size === 0;\r\n}\r\nfunction syncPointApplyOperation(syncPoint, operation, writesCache, optCompleteServerCache) {\r\n var e_1, _a;\r\n var queryId = operation.source.queryId;\r\n if (queryId !== null) {\r\n var view = syncPoint.views.get(queryId);\r\n assert(view != null, 'SyncTree gave us an op for an invalid query.');\r\n return viewApplyOperation(view, operation, writesCache, optCompleteServerCache);\r\n }\r\n else {\r\n var events = [];\r\n try {\r\n for (var _b = __values(syncPoint.views.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var view = _c.value;\r\n events = events.concat(viewApplyOperation(view, operation, writesCache, optCompleteServerCache));\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return events;\r\n }\r\n}\r\n/**\r\n * Get a view for the specified query.\r\n *\r\n * @param query - The query to return a view for\r\n * @param writesCache\r\n * @param serverCache\r\n * @param serverCacheComplete\r\n * @returns Events to raise.\r\n */\r\nfunction syncPointGetView(syncPoint, query, writesCache, serverCache, serverCacheComplete) {\r\n var queryId = query._queryIdentifier;\r\n var view = syncPoint.views.get(queryId);\r\n if (!view) {\r\n // TODO: make writesCache take flag for complete server node\r\n var eventCache = writeTreeRefCalcCompleteEventCache(writesCache, serverCacheComplete ? serverCache : null);\r\n var eventCacheComplete = false;\r\n if (eventCache) {\r\n eventCacheComplete = true;\r\n }\r\n else if (serverCache instanceof ChildrenNode) {\r\n eventCache = writeTreeRefCalcCompleteEventChildren(writesCache, serverCache);\r\n eventCacheComplete = false;\r\n }\r\n else {\r\n eventCache = ChildrenNode.EMPTY_NODE;\r\n eventCacheComplete = false;\r\n }\r\n var viewCache = newViewCache(new CacheNode(eventCache, eventCacheComplete, false), new CacheNode(serverCache, serverCacheComplete, false));\r\n return new View(query, viewCache);\r\n }\r\n return view;\r\n}\r\n/**\r\n * Add an event callback for the specified query.\r\n *\r\n * @param query\r\n * @param eventRegistration\r\n * @param writesCache\r\n * @param serverCache - Complete server cache, if we have it.\r\n * @param serverCacheComplete\r\n * @returns Events to raise.\r\n */\r\nfunction syncPointAddEventRegistration(syncPoint, query, eventRegistration, writesCache, serverCache, serverCacheComplete) {\r\n var view = syncPointGetView(syncPoint, query, writesCache, serverCache, serverCacheComplete);\r\n if (!syncPoint.views.has(query._queryIdentifier)) {\r\n syncPoint.views.set(query._queryIdentifier, view);\r\n }\r\n // This is guaranteed to exist now, we just created anything that was missing\r\n viewAddEventRegistration(view, eventRegistration);\r\n return viewGetInitialEvents(view, eventRegistration);\r\n}\r\n/**\r\n * Remove event callback(s). Return cancelEvents if a cancelError is specified.\r\n *\r\n * If query is the default query, we'll check all views for the specified eventRegistration.\r\n * If eventRegistration is null, we'll remove all callbacks for the specified view(s).\r\n *\r\n * @param eventRegistration - If null, remove all callbacks.\r\n * @param cancelError - If a cancelError is provided, appropriate cancel events will be returned.\r\n * @returns removed queries and any cancel events\r\n */\r\nfunction syncPointRemoveEventRegistration(syncPoint, query, eventRegistration, cancelError) {\r\n var e_2, _a;\r\n var queryId = query._queryIdentifier;\r\n var removed = [];\r\n var cancelEvents = [];\r\n var hadCompleteView = syncPointHasCompleteView(syncPoint);\r\n if (queryId === 'default') {\r\n try {\r\n // When you do ref.off(...), we search all views for the registration to remove.\r\n for (var _b = __values(syncPoint.views.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var _d = __read(_c.value, 2), viewQueryId = _d[0], view = _d[1];\r\n cancelEvents = cancelEvents.concat(viewRemoveEventRegistration(view, eventRegistration, cancelError));\r\n if (viewIsEmpty(view)) {\r\n syncPoint.views.delete(viewQueryId);\r\n // We'll deal with complete views later.\r\n if (!view.query._queryParams.loadsAllData()) {\r\n removed.push(view.query);\r\n }\r\n }\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n }\r\n else {\r\n // remove the callback from the specific view.\r\n var view = syncPoint.views.get(queryId);\r\n if (view) {\r\n cancelEvents = cancelEvents.concat(viewRemoveEventRegistration(view, eventRegistration, cancelError));\r\n if (viewIsEmpty(view)) {\r\n syncPoint.views.delete(queryId);\r\n // We'll deal with complete views later.\r\n if (!view.query._queryParams.loadsAllData()) {\r\n removed.push(view.query);\r\n }\r\n }\r\n }\r\n }\r\n if (hadCompleteView && !syncPointHasCompleteView(syncPoint)) {\r\n // We removed our last complete view.\r\n removed.push(new (syncPointGetReferenceConstructor())(query._repo, query._path));\r\n }\r\n return { removed: removed, events: cancelEvents };\r\n}\r\nfunction syncPointGetQueryViews(syncPoint) {\r\n var e_3, _a;\r\n var result = [];\r\n try {\r\n for (var _b = __values(syncPoint.views.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var view = _c.value;\r\n if (!view.query._queryParams.loadsAllData()) {\r\n result.push(view);\r\n }\r\n }\r\n }\r\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_3) throw e_3.error; }\r\n }\r\n return result;\r\n}\r\n/**\r\n * @param path - The path to the desired complete snapshot\r\n * @returns A complete cache, if it exists\r\n */\r\nfunction syncPointGetCompleteServerCache(syncPoint, path) {\r\n var e_4, _a;\r\n var serverCache = null;\r\n try {\r\n for (var _b = __values(syncPoint.views.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var view = _c.value;\r\n serverCache = serverCache || viewGetCompleteServerCache(view, path);\r\n }\r\n }\r\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_4) throw e_4.error; }\r\n }\r\n return serverCache;\r\n}\r\nfunction syncPointViewForQuery(syncPoint, query) {\r\n var params = query._queryParams;\r\n if (params.loadsAllData()) {\r\n return syncPointGetCompleteView(syncPoint);\r\n }\r\n else {\r\n var queryId = query._queryIdentifier;\r\n return syncPoint.views.get(queryId);\r\n }\r\n}\r\nfunction syncPointViewExistsForQuery(syncPoint, query) {\r\n return syncPointViewForQuery(syncPoint, query) != null;\r\n}\r\nfunction syncPointHasCompleteView(syncPoint) {\r\n return syncPointGetCompleteView(syncPoint) != null;\r\n}\r\nfunction syncPointGetCompleteView(syncPoint) {\r\n var e_5, _a;\r\n try {\r\n for (var _b = __values(syncPoint.views.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var view = _c.value;\r\n if (view.query._queryParams.loadsAllData()) {\r\n return view;\r\n }\r\n }\r\n }\r\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_5) throw e_5.error; }\r\n }\r\n return null;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar referenceConstructor;\r\nfunction syncTreeSetReferenceConstructor(val) {\r\n assert(!referenceConstructor, '__referenceConstructor has already been defined');\r\n referenceConstructor = val;\r\n}\r\nfunction syncTreeGetReferenceConstructor() {\r\n assert(referenceConstructor, 'Reference.ts has not been loaded');\r\n return referenceConstructor;\r\n}\r\n/**\r\n * Static tracker for next query tag.\r\n */\r\nvar syncTreeNextQueryTag_ = 1;\r\n/**\r\n * SyncTree is the central class for managing event callback registration, data caching, views\r\n * (query processing), and event generation. There are typically two SyncTree instances for\r\n * each Repo, one for the normal Firebase data, and one for the .info data.\r\n *\r\n * It has a number of responsibilities, including:\r\n * - Tracking all user event callbacks (registered via addEventRegistration() and removeEventRegistration()).\r\n * - Applying and caching data changes for user set(), transaction(), and update() calls\r\n * (applyUserOverwrite(), applyUserMerge()).\r\n * - Applying and caching data changes for server data changes (applyServerOverwrite(),\r\n * applyServerMerge()).\r\n * - Generating user-facing events for server and user changes (all of the apply* methods\r\n * return the set of events that need to be raised as a result).\r\n * - Maintaining the appropriate set of server listens to ensure we are always subscribed\r\n * to the correct set of paths and queries to satisfy the current set of user event\r\n * callbacks (listens are started/stopped using the provided listenProvider).\r\n *\r\n * NOTE: Although SyncTree tracks event callbacks and calculates events to raise, the actual\r\n * events are returned to the caller rather than raised synchronously.\r\n *\r\n */\r\nvar SyncTree = /** @class */ (function () {\r\n /**\r\n * @param listenProvider_ - Used by SyncTree to start / stop listening\r\n * to server data.\r\n */\r\n function SyncTree(listenProvider_) {\r\n this.listenProvider_ = listenProvider_;\r\n /**\r\n * Tree of SyncPoints. There's a SyncPoint at any location that has 1 or more views.\r\n */\r\n this.syncPointTree_ = new ImmutableTree(null);\r\n /**\r\n * A tree of all pending user writes (user-initiated set()'s, transaction()'s, update()'s, etc.).\r\n */\r\n this.pendingWriteTree_ = newWriteTree();\r\n this.tagToQueryMap = new Map();\r\n this.queryToTagMap = new Map();\r\n }\r\n return SyncTree;\r\n}());\r\n/**\r\n * Apply the data changes for a user-generated set() or transaction() call.\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyUserOverwrite(syncTree, path, newData, writeId, visible) {\r\n // Record pending write.\r\n writeTreeAddOverwrite(syncTree.pendingWriteTree_, path, newData, writeId, visible);\r\n if (!visible) {\r\n return [];\r\n }\r\n else {\r\n return syncTreeApplyOperationToSyncPoints_(syncTree, new Overwrite(newOperationSourceUser(), path, newData));\r\n }\r\n}\r\n/**\r\n * Apply the data from a user-generated update() call\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyUserMerge(syncTree, path, changedChildren, writeId) {\r\n // Record pending merge.\r\n writeTreeAddMerge(syncTree.pendingWriteTree_, path, changedChildren, writeId);\r\n var changeTree = ImmutableTree.fromObject(changedChildren);\r\n return syncTreeApplyOperationToSyncPoints_(syncTree, new Merge(newOperationSourceUser(), path, changeTree));\r\n}\r\n/**\r\n * Acknowledge a pending user write that was previously registered with applyUserOverwrite() or applyUserMerge().\r\n *\r\n * @param revert - True if the given write failed and needs to be reverted\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeAckUserWrite(syncTree, writeId, revert) {\r\n if (revert === void 0) { revert = false; }\r\n var write = writeTreeGetWrite(syncTree.pendingWriteTree_, writeId);\r\n var needToReevaluate = writeTreeRemoveWrite(syncTree.pendingWriteTree_, writeId);\r\n if (!needToReevaluate) {\r\n return [];\r\n }\r\n else {\r\n var affectedTree_1 = new ImmutableTree(null);\r\n if (write.snap != null) {\r\n // overwrite\r\n affectedTree_1 = affectedTree_1.set(newEmptyPath(), true);\r\n }\r\n else {\r\n each(write.children, function (pathString) {\r\n affectedTree_1 = affectedTree_1.set(new Path(pathString), true);\r\n });\r\n }\r\n return syncTreeApplyOperationToSyncPoints_(syncTree, new AckUserWrite(write.path, affectedTree_1, revert));\r\n }\r\n}\r\n/**\r\n * Apply new server data for the specified path..\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyServerOverwrite(syncTree, path, newData) {\r\n return syncTreeApplyOperationToSyncPoints_(syncTree, new Overwrite(newOperationSourceServer(), path, newData));\r\n}\r\n/**\r\n * Apply new server data to be merged in at the specified path.\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyServerMerge(syncTree, path, changedChildren) {\r\n var changeTree = ImmutableTree.fromObject(changedChildren);\r\n return syncTreeApplyOperationToSyncPoints_(syncTree, new Merge(newOperationSourceServer(), path, changeTree));\r\n}\r\n/**\r\n * Apply a listen complete for a query\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyListenComplete(syncTree, path) {\r\n return syncTreeApplyOperationToSyncPoints_(syncTree, new ListenComplete(newOperationSourceServer(), path));\r\n}\r\n/**\r\n * Apply a listen complete for a tagged query\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyTaggedListenComplete(syncTree, path, tag) {\r\n var queryKey = syncTreeQueryKeyForTag_(syncTree, tag);\r\n if (queryKey) {\r\n var r = syncTreeParseQueryKey_(queryKey);\r\n var queryPath = r.path, queryId = r.queryId;\r\n var relativePath = newRelativePath(queryPath, path);\r\n var op = new ListenComplete(newOperationSourceServerTaggedQuery(queryId), relativePath);\r\n return syncTreeApplyTaggedOperation_(syncTree, queryPath, op);\r\n }\r\n else {\r\n // We've already removed the query. No big deal, ignore the update\r\n return [];\r\n }\r\n}\r\n/**\r\n * Remove event callback(s).\r\n *\r\n * If query is the default query, we'll check all queries for the specified eventRegistration.\r\n * If eventRegistration is null, we'll remove all callbacks for the specified query/queries.\r\n *\r\n * @param eventRegistration - If null, all callbacks are removed.\r\n * @param cancelError - If a cancelError is provided, appropriate cancel events will be returned.\r\n * @returns Cancel events, if cancelError was provided.\r\n */\r\nfunction syncTreeRemoveEventRegistration(syncTree, query, eventRegistration, cancelError) {\r\n // Find the syncPoint first. Then deal with whether or not it has matching listeners\r\n var path = query._path;\r\n var maybeSyncPoint = syncTree.syncPointTree_.get(path);\r\n var cancelEvents = [];\r\n // A removal on a default query affects all queries at that location. A removal on an indexed query, even one without\r\n // other query constraints, does *not* affect all queries at that location. So this check must be for 'default', and\r\n // not loadsAllData().\r\n if (maybeSyncPoint &&\r\n (query._queryIdentifier === 'default' ||\r\n syncPointViewExistsForQuery(maybeSyncPoint, query))) {\r\n var removedAndEvents = syncPointRemoveEventRegistration(maybeSyncPoint, query, eventRegistration, cancelError);\r\n if (syncPointIsEmpty(maybeSyncPoint)) {\r\n syncTree.syncPointTree_ = syncTree.syncPointTree_.remove(path);\r\n }\r\n var removed = removedAndEvents.removed;\r\n cancelEvents = removedAndEvents.events;\r\n // We may have just removed one of many listeners and can short-circuit this whole process\r\n // We may also not have removed a default listener, in which case all of the descendant listeners should already be\r\n // properly set up.\r\n //\r\n // Since indexed queries can shadow if they don't have other query constraints, check for loadsAllData(), instead of\r\n // queryId === 'default'\r\n var removingDefault = -1 !==\r\n removed.findIndex(function (query) {\r\n return query._queryParams.loadsAllData();\r\n });\r\n var covered = syncTree.syncPointTree_.findOnPath(path, function (relativePath, parentSyncPoint) {\r\n return syncPointHasCompleteView(parentSyncPoint);\r\n });\r\n if (removingDefault && !covered) {\r\n var subtree = syncTree.syncPointTree_.subtree(path);\r\n // There are potentially child listeners. Determine what if any listens we need to send before executing the\r\n // removal\r\n if (!subtree.isEmpty()) {\r\n // We need to fold over our subtree and collect the listeners to send\r\n var newViews = syncTreeCollectDistinctViewsForSubTree_(subtree);\r\n // Ok, we've collected all the listens we need. Set them up.\r\n for (var i = 0; i < newViews.length; ++i) {\r\n var view = newViews[i], newQuery = view.query;\r\n var listener = syncTreeCreateListenerForView_(syncTree, view);\r\n syncTree.listenProvider_.startListening(syncTreeQueryForListening_(newQuery), syncTreeTagForQuery_(syncTree, newQuery), listener.hashFn, listener.onComplete);\r\n }\r\n }\r\n }\r\n // If we removed anything and we're not covered by a higher up listen, we need to stop listening on this query\r\n // The above block has us covered in terms of making sure we're set up on listens lower in the tree.\r\n // Also, note that if we have a cancelError, it's already been removed at the provider level.\r\n if (!covered && removed.length > 0 && !cancelError) {\r\n // If we removed a default, then we weren't listening on any of the other queries here. Just cancel the one\r\n // default. Otherwise, we need to iterate through and cancel each individual query\r\n if (removingDefault) {\r\n // We don't tag default listeners\r\n var defaultTag = null;\r\n syncTree.listenProvider_.stopListening(syncTreeQueryForListening_(query), defaultTag);\r\n }\r\n else {\r\n removed.forEach(function (queryToRemove) {\r\n var tagToRemove = syncTree.queryToTagMap.get(syncTreeMakeQueryKey_(queryToRemove));\r\n syncTree.listenProvider_.stopListening(syncTreeQueryForListening_(queryToRemove), tagToRemove);\r\n });\r\n }\r\n }\r\n // Now, clear all of the tags we're tracking for the removed listens\r\n syncTreeRemoveTags_(syncTree, removed);\r\n }\r\n return cancelEvents;\r\n}\r\n/**\r\n * Apply new server data for the specified tagged query.\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyTaggedQueryOverwrite(syncTree, path, snap, tag) {\r\n var queryKey = syncTreeQueryKeyForTag_(syncTree, tag);\r\n if (queryKey != null) {\r\n var r = syncTreeParseQueryKey_(queryKey);\r\n var queryPath = r.path, queryId = r.queryId;\r\n var relativePath = newRelativePath(queryPath, path);\r\n var op = new Overwrite(newOperationSourceServerTaggedQuery(queryId), relativePath, snap);\r\n return syncTreeApplyTaggedOperation_(syncTree, queryPath, op);\r\n }\r\n else {\r\n // Query must have been removed already\r\n return [];\r\n }\r\n}\r\n/**\r\n * Apply server data to be merged in for the specified tagged query.\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeApplyTaggedQueryMerge(syncTree, path, changedChildren, tag) {\r\n var queryKey = syncTreeQueryKeyForTag_(syncTree, tag);\r\n if (queryKey) {\r\n var r = syncTreeParseQueryKey_(queryKey);\r\n var queryPath = r.path, queryId = r.queryId;\r\n var relativePath = newRelativePath(queryPath, path);\r\n var changeTree = ImmutableTree.fromObject(changedChildren);\r\n var op = new Merge(newOperationSourceServerTaggedQuery(queryId), relativePath, changeTree);\r\n return syncTreeApplyTaggedOperation_(syncTree, queryPath, op);\r\n }\r\n else {\r\n // We've already removed the query. No big deal, ignore the update\r\n return [];\r\n }\r\n}\r\n/**\r\n * Add an event callback for the specified query.\r\n *\r\n * @returns Events to raise.\r\n */\r\nfunction syncTreeAddEventRegistration(syncTree, query, eventRegistration) {\r\n var path = query._path;\r\n var serverCache = null;\r\n var foundAncestorDefaultView = false;\r\n // Any covering writes will necessarily be at the root, so really all we need to find is the server cache.\r\n // Consider optimizing this once there's a better understanding of what actual behavior will be.\r\n syncTree.syncPointTree_.foreachOnPath(path, function (pathToSyncPoint, sp) {\r\n var relativePath = newRelativePath(pathToSyncPoint, path);\r\n serverCache =\r\n serverCache || syncPointGetCompleteServerCache(sp, relativePath);\r\n foundAncestorDefaultView =\r\n foundAncestorDefaultView || syncPointHasCompleteView(sp);\r\n });\r\n var syncPoint = syncTree.syncPointTree_.get(path);\r\n if (!syncPoint) {\r\n syncPoint = new SyncPoint();\r\n syncTree.syncPointTree_ = syncTree.syncPointTree_.set(path, syncPoint);\r\n }\r\n else {\r\n foundAncestorDefaultView =\r\n foundAncestorDefaultView || syncPointHasCompleteView(syncPoint);\r\n serverCache =\r\n serverCache || syncPointGetCompleteServerCache(syncPoint, newEmptyPath());\r\n }\r\n var serverCacheComplete;\r\n if (serverCache != null) {\r\n serverCacheComplete = true;\r\n }\r\n else {\r\n serverCacheComplete = false;\r\n serverCache = ChildrenNode.EMPTY_NODE;\r\n var subtree = syncTree.syncPointTree_.subtree(path);\r\n subtree.foreachChild(function (childName, childSyncPoint) {\r\n var completeCache = syncPointGetCompleteServerCache(childSyncPoint, newEmptyPath());\r\n if (completeCache) {\r\n serverCache = serverCache.updateImmediateChild(childName, completeCache);\r\n }\r\n });\r\n }\r\n var viewAlreadyExists = syncPointViewExistsForQuery(syncPoint, query);\r\n if (!viewAlreadyExists && !query._queryParams.loadsAllData()) {\r\n // We need to track a tag for this query\r\n var queryKey = syncTreeMakeQueryKey_(query);\r\n assert(!syncTree.queryToTagMap.has(queryKey), 'View does not exist, but we have a tag');\r\n var tag = syncTreeGetNextQueryTag_();\r\n syncTree.queryToTagMap.set(queryKey, tag);\r\n syncTree.tagToQueryMap.set(tag, queryKey);\r\n }\r\n var writesCache = writeTreeChildWrites(syncTree.pendingWriteTree_, path);\r\n var events = syncPointAddEventRegistration(syncPoint, query, eventRegistration, writesCache, serverCache, serverCacheComplete);\r\n if (!viewAlreadyExists && !foundAncestorDefaultView) {\r\n var view = syncPointViewForQuery(syncPoint, query);\r\n events = events.concat(syncTreeSetupListener_(syncTree, query, view));\r\n }\r\n return events;\r\n}\r\n/**\r\n * Returns a complete cache, if we have one, of the data at a particular path. If the location does not have a\r\n * listener above it, we will get a false \"null\". This shouldn't be a problem because transactions will always\r\n * have a listener above, and atomic operations would correctly show a jitter of ->\r\n * as the write is applied locally and then acknowledged at the server.\r\n *\r\n * Note: this method will *include* hidden writes from transaction with applyLocally set to false.\r\n *\r\n * @param path - The path to the data we want\r\n * @param writeIdsToExclude - A specific set to be excluded\r\n */\r\nfunction syncTreeCalcCompleteEventCache(syncTree, path, writeIdsToExclude) {\r\n var includeHiddenSets = true;\r\n var writeTree = syncTree.pendingWriteTree_;\r\n var serverCache = syncTree.syncPointTree_.findOnPath(path, function (pathSoFar, syncPoint) {\r\n var relativePath = newRelativePath(pathSoFar, path);\r\n var serverCache = syncPointGetCompleteServerCache(syncPoint, relativePath);\r\n if (serverCache) {\r\n return serverCache;\r\n }\r\n });\r\n return writeTreeCalcCompleteEventCache(writeTree, path, serverCache, writeIdsToExclude, includeHiddenSets);\r\n}\r\nfunction syncTreeGetServerValue(syncTree, query) {\r\n var path = query._path;\r\n var serverCache = null;\r\n // Any covering writes will necessarily be at the root, so really all we need to find is the server cache.\r\n // Consider optimizing this once there's a better understanding of what actual behavior will be.\r\n syncTree.syncPointTree_.foreachOnPath(path, function (pathToSyncPoint, sp) {\r\n var relativePath = newRelativePath(pathToSyncPoint, path);\r\n serverCache =\r\n serverCache || syncPointGetCompleteServerCache(sp, relativePath);\r\n });\r\n var syncPoint = syncTree.syncPointTree_.get(path);\r\n if (!syncPoint) {\r\n syncPoint = new SyncPoint();\r\n syncTree.syncPointTree_ = syncTree.syncPointTree_.set(path, syncPoint);\r\n }\r\n else {\r\n serverCache =\r\n serverCache || syncPointGetCompleteServerCache(syncPoint, newEmptyPath());\r\n }\r\n var serverCacheComplete = serverCache != null;\r\n var serverCacheNode = serverCacheComplete\r\n ? new CacheNode(serverCache, true, false)\r\n : null;\r\n var writesCache = writeTreeChildWrites(syncTree.pendingWriteTree_, query._path);\r\n var view = syncPointGetView(syncPoint, query, writesCache, serverCacheComplete ? serverCacheNode.getNode() : ChildrenNode.EMPTY_NODE, serverCacheComplete);\r\n return viewGetCompleteNode(view);\r\n}\r\n/**\r\n * A helper method that visits all descendant and ancestor SyncPoints, applying the operation.\r\n *\r\n * NOTES:\r\n * - Descendant SyncPoints will be visited first (since we raise events depth-first).\r\n *\r\n * - We call applyOperation() on each SyncPoint passing three things:\r\n * 1. A version of the Operation that has been made relative to the SyncPoint location.\r\n * 2. A WriteTreeRef of any writes we have cached at the SyncPoint location.\r\n * 3. A snapshot Node with cached server data, if we have it.\r\n *\r\n * - We concatenate all of the events returned by each SyncPoint and return the result.\r\n */\r\nfunction syncTreeApplyOperationToSyncPoints_(syncTree, operation) {\r\n return syncTreeApplyOperationHelper_(operation, syncTree.syncPointTree_, \r\n /*serverCache=*/ null, writeTreeChildWrites(syncTree.pendingWriteTree_, newEmptyPath()));\r\n}\r\n/**\r\n * Recursive helper for applyOperationToSyncPoints_\r\n */\r\nfunction syncTreeApplyOperationHelper_(operation, syncPointTree, serverCache, writesCache) {\r\n if (pathIsEmpty(operation.path)) {\r\n return syncTreeApplyOperationDescendantsHelper_(operation, syncPointTree, serverCache, writesCache);\r\n }\r\n else {\r\n var syncPoint = syncPointTree.get(newEmptyPath());\r\n // If we don't have cached server data, see if we can get it from this SyncPoint.\r\n if (serverCache == null && syncPoint != null) {\r\n serverCache = syncPointGetCompleteServerCache(syncPoint, newEmptyPath());\r\n }\r\n var events = [];\r\n var childName = pathGetFront(operation.path);\r\n var childOperation = operation.operationForChild(childName);\r\n var childTree = syncPointTree.children.get(childName);\r\n if (childTree && childOperation) {\r\n var childServerCache = serverCache\r\n ? serverCache.getImmediateChild(childName)\r\n : null;\r\n var childWritesCache = writeTreeRefChild(writesCache, childName);\r\n events = events.concat(syncTreeApplyOperationHelper_(childOperation, childTree, childServerCache, childWritesCache));\r\n }\r\n if (syncPoint) {\r\n events = events.concat(syncPointApplyOperation(syncPoint, operation, writesCache, serverCache));\r\n }\r\n return events;\r\n }\r\n}\r\n/**\r\n * Recursive helper for applyOperationToSyncPoints_\r\n */\r\nfunction syncTreeApplyOperationDescendantsHelper_(operation, syncPointTree, serverCache, writesCache) {\r\n var syncPoint = syncPointTree.get(newEmptyPath());\r\n // If we don't have cached server data, see if we can get it from this SyncPoint.\r\n if (serverCache == null && syncPoint != null) {\r\n serverCache = syncPointGetCompleteServerCache(syncPoint, newEmptyPath());\r\n }\r\n var events = [];\r\n syncPointTree.children.inorderTraversal(function (childName, childTree) {\r\n var childServerCache = serverCache\r\n ? serverCache.getImmediateChild(childName)\r\n : null;\r\n var childWritesCache = writeTreeRefChild(writesCache, childName);\r\n var childOperation = operation.operationForChild(childName);\r\n if (childOperation) {\r\n events = events.concat(syncTreeApplyOperationDescendantsHelper_(childOperation, childTree, childServerCache, childWritesCache));\r\n }\r\n });\r\n if (syncPoint) {\r\n events = events.concat(syncPointApplyOperation(syncPoint, operation, writesCache, serverCache));\r\n }\r\n return events;\r\n}\r\nfunction syncTreeCreateListenerForView_(syncTree, view) {\r\n var query = view.query;\r\n var tag = syncTreeTagForQuery_(syncTree, query);\r\n return {\r\n hashFn: function () {\r\n var cache = viewGetServerCache(view) || ChildrenNode.EMPTY_NODE;\r\n return cache.hash();\r\n },\r\n onComplete: function (status) {\r\n if (status === 'ok') {\r\n if (tag) {\r\n return syncTreeApplyTaggedListenComplete(syncTree, query._path, tag);\r\n }\r\n else {\r\n return syncTreeApplyListenComplete(syncTree, query._path);\r\n }\r\n }\r\n else {\r\n // If a listen failed, kill all of the listeners here, not just the one that triggered the error.\r\n // Note that this may need to be scoped to just this listener if we change permissions on filtered children\r\n var error = errorForServerCode(status, query);\r\n return syncTreeRemoveEventRegistration(syncTree, query, \r\n /*eventRegistration*/ null, error);\r\n }\r\n }\r\n };\r\n}\r\n/**\r\n * Return the tag associated with the given query.\r\n */\r\nfunction syncTreeTagForQuery_(syncTree, query) {\r\n var queryKey = syncTreeMakeQueryKey_(query);\r\n return syncTree.queryToTagMap.get(queryKey);\r\n}\r\n/**\r\n * Given a query, computes a \"queryKey\" suitable for use in our queryToTagMap_.\r\n */\r\nfunction syncTreeMakeQueryKey_(query) {\r\n return query._path.toString() + '$' + query._queryIdentifier;\r\n}\r\n/**\r\n * Return the query associated with the given tag, if we have one\r\n */\r\nfunction syncTreeQueryKeyForTag_(syncTree, tag) {\r\n return syncTree.tagToQueryMap.get(tag);\r\n}\r\n/**\r\n * Given a queryKey (created by makeQueryKey), parse it back into a path and queryId.\r\n */\r\nfunction syncTreeParseQueryKey_(queryKey) {\r\n var splitIndex = queryKey.indexOf('$');\r\n assert(splitIndex !== -1 && splitIndex < queryKey.length - 1, 'Bad queryKey.');\r\n return {\r\n queryId: queryKey.substr(splitIndex + 1),\r\n path: new Path(queryKey.substr(0, splitIndex))\r\n };\r\n}\r\n/**\r\n * A helper method to apply tagged operations\r\n */\r\nfunction syncTreeApplyTaggedOperation_(syncTree, queryPath, operation) {\r\n var syncPoint = syncTree.syncPointTree_.get(queryPath);\r\n assert(syncPoint, \"Missing sync point for query tag that we're tracking\");\r\n var writesCache = writeTreeChildWrites(syncTree.pendingWriteTree_, queryPath);\r\n return syncPointApplyOperation(syncPoint, operation, writesCache, null);\r\n}\r\n/**\r\n * This collapses multiple unfiltered views into a single view, since we only need a single\r\n * listener for them.\r\n */\r\nfunction syncTreeCollectDistinctViewsForSubTree_(subtree) {\r\n return subtree.fold(function (relativePath, maybeChildSyncPoint, childMap) {\r\n if (maybeChildSyncPoint && syncPointHasCompleteView(maybeChildSyncPoint)) {\r\n var completeView = syncPointGetCompleteView(maybeChildSyncPoint);\r\n return [completeView];\r\n }\r\n else {\r\n // No complete view here, flatten any deeper listens into an array\r\n var views_1 = [];\r\n if (maybeChildSyncPoint) {\r\n views_1 = syncPointGetQueryViews(maybeChildSyncPoint);\r\n }\r\n each(childMap, function (_key, childViews) {\r\n views_1 = views_1.concat(childViews);\r\n });\r\n return views_1;\r\n }\r\n });\r\n}\r\n/**\r\n * Normalizes a query to a query we send the server for listening\r\n *\r\n * @returns The normalized query\r\n */\r\nfunction syncTreeQueryForListening_(query) {\r\n if (query._queryParams.loadsAllData() && !query._queryParams.isDefault()) {\r\n // We treat queries that load all data as default queries\r\n // Cast is necessary because ref() technically returns Firebase which is actually fb.api.Firebase which inherits\r\n // from Query\r\n return new (syncTreeGetReferenceConstructor())(query._repo, query._path);\r\n }\r\n else {\r\n return query;\r\n }\r\n}\r\nfunction syncTreeRemoveTags_(syncTree, queries) {\r\n for (var j = 0; j < queries.length; ++j) {\r\n var removedQuery = queries[j];\r\n if (!removedQuery._queryParams.loadsAllData()) {\r\n // We should have a tag for this\r\n var removedQueryKey = syncTreeMakeQueryKey_(removedQuery);\r\n var removedQueryTag = syncTree.queryToTagMap.get(removedQueryKey);\r\n syncTree.queryToTagMap.delete(removedQueryKey);\r\n syncTree.tagToQueryMap.delete(removedQueryTag);\r\n }\r\n }\r\n}\r\n/**\r\n * Static accessor for query tags.\r\n */\r\nfunction syncTreeGetNextQueryTag_() {\r\n return syncTreeNextQueryTag_++;\r\n}\r\n/**\r\n * For a given new listen, manage the de-duplication of outstanding subscriptions.\r\n *\r\n * @returns This method can return events to support synchronous data sources\r\n */\r\nfunction syncTreeSetupListener_(syncTree, query, view) {\r\n var path = query._path;\r\n var tag = syncTreeTagForQuery_(syncTree, query);\r\n var listener = syncTreeCreateListenerForView_(syncTree, view);\r\n var events = syncTree.listenProvider_.startListening(syncTreeQueryForListening_(query), tag, listener.hashFn, listener.onComplete);\r\n var subtree = syncTree.syncPointTree_.subtree(path);\r\n // The root of this subtree has our query. We're here because we definitely need to send a listen for that, but we\r\n // may need to shadow other listens as well.\r\n if (tag) {\r\n assert(!syncPointHasCompleteView(subtree.value), \"If we're adding a query, it shouldn't be shadowed\");\r\n }\r\n else {\r\n // Shadow everything at or below this location, this is a default listener.\r\n var queriesToStop = subtree.fold(function (relativePath, maybeChildSyncPoint, childMap) {\r\n if (!pathIsEmpty(relativePath) &&\r\n maybeChildSyncPoint &&\r\n syncPointHasCompleteView(maybeChildSyncPoint)) {\r\n return [syncPointGetCompleteView(maybeChildSyncPoint).query];\r\n }\r\n else {\r\n // No default listener here, flatten any deeper queries into an array\r\n var queries_1 = [];\r\n if (maybeChildSyncPoint) {\r\n queries_1 = queries_1.concat(syncPointGetQueryViews(maybeChildSyncPoint).map(function (view) { return view.query; }));\r\n }\r\n each(childMap, function (_key, childQueries) {\r\n queries_1 = queries_1.concat(childQueries);\r\n });\r\n return queries_1;\r\n }\r\n });\r\n for (var i = 0; i < queriesToStop.length; ++i) {\r\n var queryToStop = queriesToStop[i];\r\n syncTree.listenProvider_.stopListening(syncTreeQueryForListening_(queryToStop), syncTreeTagForQuery_(syncTree, queryToStop));\r\n }\r\n }\r\n return events;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ExistingValueProvider = /** @class */ (function () {\r\n function ExistingValueProvider(node_) {\r\n this.node_ = node_;\r\n }\r\n ExistingValueProvider.prototype.getImmediateChild = function (childName) {\r\n var child = this.node_.getImmediateChild(childName);\r\n return new ExistingValueProvider(child);\r\n };\r\n ExistingValueProvider.prototype.node = function () {\r\n return this.node_;\r\n };\r\n return ExistingValueProvider;\r\n}());\r\nvar DeferredValueProvider = /** @class */ (function () {\r\n function DeferredValueProvider(syncTree, path) {\r\n this.syncTree_ = syncTree;\r\n this.path_ = path;\r\n }\r\n DeferredValueProvider.prototype.getImmediateChild = function (childName) {\r\n var childPath = pathChild(this.path_, childName);\r\n return new DeferredValueProvider(this.syncTree_, childPath);\r\n };\r\n DeferredValueProvider.prototype.node = function () {\r\n return syncTreeCalcCompleteEventCache(this.syncTree_, this.path_);\r\n };\r\n return DeferredValueProvider;\r\n}());\r\n/**\r\n * Generate placeholders for deferred values.\r\n */\r\nvar generateWithValues = function (values) {\r\n values = values || {};\r\n values['timestamp'] = values['timestamp'] || new Date().getTime();\r\n return values;\r\n};\r\n/**\r\n * Value to use when firing local events. When writing server values, fire\r\n * local events with an approximate value, otherwise return value as-is.\r\n */\r\nvar resolveDeferredLeafValue = function (value, existingVal, serverValues) {\r\n if (!value || typeof value !== 'object') {\r\n return value;\r\n }\r\n assert('.sv' in value, 'Unexpected leaf node or priority contents');\r\n if (typeof value['.sv'] === 'string') {\r\n return resolveScalarDeferredValue(value['.sv'], existingVal, serverValues);\r\n }\r\n else if (typeof value['.sv'] === 'object') {\r\n return resolveComplexDeferredValue(value['.sv'], existingVal);\r\n }\r\n else {\r\n assert(false, 'Unexpected server value: ' + JSON.stringify(value, null, 2));\r\n }\r\n};\r\nvar resolveScalarDeferredValue = function (op, existing, serverValues) {\r\n switch (op) {\r\n case 'timestamp':\r\n return serverValues['timestamp'];\r\n default:\r\n assert(false, 'Unexpected server value: ' + op);\r\n }\r\n};\r\nvar resolveComplexDeferredValue = function (op, existing, unused) {\r\n if (!op.hasOwnProperty('increment')) {\r\n assert(false, 'Unexpected server value: ' + JSON.stringify(op, null, 2));\r\n }\r\n var delta = op['increment'];\r\n if (typeof delta !== 'number') {\r\n assert(false, 'Unexpected increment value: ' + delta);\r\n }\r\n var existingNode = existing.node();\r\n assert(existingNode !== null && typeof existingNode !== 'undefined', 'Expected ChildrenNode.EMPTY_NODE for nulls');\r\n // Incrementing a non-number sets the value to the incremented amount\r\n if (!existingNode.isLeafNode()) {\r\n return delta;\r\n }\r\n var leaf = existingNode;\r\n var existingVal = leaf.getValue();\r\n if (typeof existingVal !== 'number') {\r\n return delta;\r\n }\r\n // No need to do over/underflow arithmetic here because JS only handles floats under the covers\r\n return existingVal + delta;\r\n};\r\n/**\r\n * Recursively replace all deferred values and priorities in the tree with the\r\n * specified generated replacement values.\r\n * @param path - path to which write is relative\r\n * @param node - new data written at path\r\n * @param syncTree - current data\r\n */\r\nvar resolveDeferredValueTree = function (path, node, syncTree, serverValues) {\r\n return resolveDeferredValue(node, new DeferredValueProvider(syncTree, path), serverValues);\r\n};\r\n/**\r\n * Recursively replace all deferred values and priorities in the node with the\r\n * specified generated replacement values. If there are no server values in the node,\r\n * it'll be returned as-is.\r\n */\r\nvar resolveDeferredValueSnapshot = function (node, existing, serverValues) {\r\n return resolveDeferredValue(node, new ExistingValueProvider(existing), serverValues);\r\n};\r\nfunction resolveDeferredValue(node, existingVal, serverValues) {\r\n var rawPri = node.getPriority().val();\r\n var priority = resolveDeferredLeafValue(rawPri, existingVal.getImmediateChild('.priority'), serverValues);\r\n var newNode;\r\n if (node.isLeafNode()) {\r\n var leafNode = node;\r\n var value = resolveDeferredLeafValue(leafNode.getValue(), existingVal, serverValues);\r\n if (value !== leafNode.getValue() ||\r\n priority !== leafNode.getPriority().val()) {\r\n return new LeafNode(value, nodeFromJSON(priority));\r\n }\r\n else {\r\n return node;\r\n }\r\n }\r\n else {\r\n var childrenNode = node;\r\n newNode = childrenNode;\r\n if (priority !== childrenNode.getPriority().val()) {\r\n newNode = newNode.updatePriority(new LeafNode(priority));\r\n }\r\n childrenNode.forEachChild(PRIORITY_INDEX, function (childName, childNode) {\r\n var newChildNode = resolveDeferredValue(childNode, existingVal.getImmediateChild(childName), serverValues);\r\n if (newChildNode !== childNode) {\r\n newNode = newNode.updateImmediateChild(childName, newChildNode);\r\n }\r\n });\r\n return newNode;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A light-weight tree, traversable by path. Nodes can have both values and children.\r\n * Nodes are not enumerated (by forEachChild) unless they have a value or non-empty\r\n * children.\r\n */\r\nvar Tree = /** @class */ (function () {\r\n /**\r\n * @param name - Optional name of the node.\r\n * @param parent - Optional parent node.\r\n * @param node - Optional node to wrap.\r\n */\r\n function Tree(name, parent, node) {\r\n if (name === void 0) { name = ''; }\r\n if (parent === void 0) { parent = null; }\r\n if (node === void 0) { node = { children: {}, childCount: 0 }; }\r\n this.name = name;\r\n this.parent = parent;\r\n this.node = node;\r\n }\r\n return Tree;\r\n}());\r\n/**\r\n * Returns a sub-Tree for the given path.\r\n *\r\n * @param pathObj - Path to look up.\r\n * @returns Tree for path.\r\n */\r\nfunction treeSubTree(tree, pathObj) {\r\n // TODO: Require pathObj to be Path?\r\n var path = pathObj instanceof Path ? pathObj : new Path(pathObj);\r\n var child = tree, next = pathGetFront(path);\r\n while (next !== null) {\r\n var childNode = safeGet(child.node.children, next) || {\r\n children: {},\r\n childCount: 0\r\n };\r\n child = new Tree(next, child, childNode);\r\n path = pathPopFront(path);\r\n next = pathGetFront(path);\r\n }\r\n return child;\r\n}\r\n/**\r\n * Returns the data associated with this tree node.\r\n *\r\n * @returns The data or null if no data exists.\r\n */\r\nfunction treeGetValue(tree) {\r\n return tree.node.value;\r\n}\r\n/**\r\n * Sets data to this tree node.\r\n *\r\n * @param value - Value to set.\r\n */\r\nfunction treeSetValue(tree, value) {\r\n tree.node.value = value;\r\n treeUpdateParents(tree);\r\n}\r\n/**\r\n * @returns Whether the tree has any children.\r\n */\r\nfunction treeHasChildren(tree) {\r\n return tree.node.childCount > 0;\r\n}\r\n/**\r\n * @returns Whethe rthe tree is empty (no value or children).\r\n */\r\nfunction treeIsEmpty(tree) {\r\n return treeGetValue(tree) === undefined && !treeHasChildren(tree);\r\n}\r\n/**\r\n * Calls action for each child of this tree node.\r\n *\r\n * @param action - Action to be called for each child.\r\n */\r\nfunction treeForEachChild(tree, action) {\r\n each(tree.node.children, function (child, childTree) {\r\n action(new Tree(child, tree, childTree));\r\n });\r\n}\r\n/**\r\n * Does a depth-first traversal of this node's descendants, calling action for each one.\r\n *\r\n * @param action - Action to be called for each child.\r\n * @param includeSelf - Whether to call action on this node as well. Defaults to\r\n * false.\r\n * @param childrenFirst - Whether to call action on children before calling it on\r\n * parent.\r\n */\r\nfunction treeForEachDescendant(tree, action, includeSelf, childrenFirst) {\r\n if (includeSelf && !childrenFirst) {\r\n action(tree);\r\n }\r\n treeForEachChild(tree, function (child) {\r\n treeForEachDescendant(child, action, true, childrenFirst);\r\n });\r\n if (includeSelf && childrenFirst) {\r\n action(tree);\r\n }\r\n}\r\n/**\r\n * Calls action on each ancestor node.\r\n *\r\n * @param action - Action to be called on each parent; return\r\n * true to abort.\r\n * @param includeSelf - Whether to call action on this node as well.\r\n * @returns true if the action callback returned true.\r\n */\r\nfunction treeForEachAncestor(tree, action, includeSelf) {\r\n var node = includeSelf ? tree : tree.parent;\r\n while (node !== null) {\r\n if (action(node)) {\r\n return true;\r\n }\r\n node = node.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * @returns The path of this tree node, as a Path.\r\n */\r\nfunction treeGetPath(tree) {\r\n return new Path(tree.parent === null\r\n ? tree.name\r\n : treeGetPath(tree.parent) + '/' + tree.name);\r\n}\r\n/**\r\n * Adds or removes this child from its parent based on whether it's empty or not.\r\n */\r\nfunction treeUpdateParents(tree) {\r\n if (tree.parent !== null) {\r\n treeUpdateChild(tree.parent, tree.name, tree);\r\n }\r\n}\r\n/**\r\n * Adds or removes the passed child to this tree node, depending on whether it's empty.\r\n *\r\n * @param childName - The name of the child to update.\r\n * @param child - The child to update.\r\n */\r\nfunction treeUpdateChild(tree, childName, child) {\r\n var childEmpty = treeIsEmpty(child);\r\n var childExists = contains(tree.node.children, childName);\r\n if (childEmpty && childExists) {\r\n delete tree.node.children[childName];\r\n tree.node.childCount--;\r\n treeUpdateParents(tree);\r\n }\r\n else if (!childEmpty && !childExists) {\r\n tree.node.children[childName] = child.node;\r\n tree.node.childCount++;\r\n treeUpdateParents(tree);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * True for invalid Firebase keys\r\n */\r\nvar INVALID_KEY_REGEX_ = /[\\[\\].#$\\/\\u0000-\\u001F\\u007F]/;\r\n/**\r\n * True for invalid Firebase paths.\r\n * Allows '/' in paths.\r\n */\r\nvar INVALID_PATH_REGEX_ = /[\\[\\].#$\\u0000-\\u001F\\u007F]/;\r\n/**\r\n * Maximum number of characters to allow in leaf value\r\n */\r\nvar MAX_LEAF_SIZE_ = 10 * 1024 * 1024;\r\nvar isValidKey = function (key) {\r\n return (typeof key === 'string' && key.length !== 0 && !INVALID_KEY_REGEX_.test(key));\r\n};\r\nvar isValidPathString = function (pathString) {\r\n return (typeof pathString === 'string' &&\r\n pathString.length !== 0 &&\r\n !INVALID_PATH_REGEX_.test(pathString));\r\n};\r\nvar isValidRootPathString = function (pathString) {\r\n if (pathString) {\r\n // Allow '/.info/' at the beginning.\r\n pathString = pathString.replace(/^\\/*\\.info(\\/|$)/, '/');\r\n }\r\n return isValidPathString(pathString);\r\n};\r\nvar isValidPriority = function (priority) {\r\n return (priority === null ||\r\n typeof priority === 'string' ||\r\n (typeof priority === 'number' && !isInvalidJSONNumber(priority)) ||\r\n (priority &&\r\n typeof priority === 'object' &&\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n contains(priority, '.sv')));\r\n};\r\n/**\r\n * Pre-validate a datum passed as an argument to Firebase function.\r\n */\r\nvar validateFirebaseDataArg = function (fnName, value, path, optional) {\r\n if (optional && value === undefined) {\r\n return;\r\n }\r\n validateFirebaseData(errorPrefix(fnName, 'value'), value, path);\r\n};\r\n/**\r\n * Validate a data object client-side before sending to server.\r\n */\r\nvar validateFirebaseData = function (errorPrefix, data, path_) {\r\n var path = path_ instanceof Path ? new ValidationPath(path_, errorPrefix) : path_;\r\n if (data === undefined) {\r\n throw new Error(errorPrefix + 'contains undefined ' + validationPathToErrorString(path));\r\n }\r\n if (typeof data === 'function') {\r\n throw new Error(errorPrefix +\r\n 'contains a function ' +\r\n validationPathToErrorString(path) +\r\n ' with contents = ' +\r\n data.toString());\r\n }\r\n if (isInvalidJSONNumber(data)) {\r\n throw new Error(errorPrefix +\r\n 'contains ' +\r\n data.toString() +\r\n ' ' +\r\n validationPathToErrorString(path));\r\n }\r\n // Check max leaf size, but try to avoid the utf8 conversion if we can.\r\n if (typeof data === 'string' &&\r\n data.length > MAX_LEAF_SIZE_ / 3 &&\r\n stringLength(data) > MAX_LEAF_SIZE_) {\r\n throw new Error(errorPrefix +\r\n 'contains a string greater than ' +\r\n MAX_LEAF_SIZE_ +\r\n ' utf8 bytes ' +\r\n validationPathToErrorString(path) +\r\n \" ('\" +\r\n data.substring(0, 50) +\r\n \"...')\");\r\n }\r\n // TODO = Perf = Consider combining the recursive validation of keys into NodeFromJSON\r\n // to save extra walking of large objects.\r\n if (data && typeof data === 'object') {\r\n var hasDotValue_1 = false;\r\n var hasActualChild_1 = false;\r\n each(data, function (key, value) {\r\n if (key === '.value') {\r\n hasDotValue_1 = true;\r\n }\r\n else if (key !== '.priority' && key !== '.sv') {\r\n hasActualChild_1 = true;\r\n if (!isValidKey(key)) {\r\n throw new Error(errorPrefix +\r\n ' contains an invalid key (' +\r\n key +\r\n ') ' +\r\n validationPathToErrorString(path) +\r\n '. Keys must be non-empty strings ' +\r\n 'and can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\"');\r\n }\r\n }\r\n validationPathPush(path, key);\r\n validateFirebaseData(errorPrefix, value, path);\r\n validationPathPop(path);\r\n });\r\n if (hasDotValue_1 && hasActualChild_1) {\r\n throw new Error(errorPrefix +\r\n ' contains \".value\" child ' +\r\n validationPathToErrorString(path) +\r\n ' in addition to actual children.');\r\n }\r\n }\r\n};\r\n/**\r\n * Pre-validate paths passed in the firebase function.\r\n */\r\nvar validateFirebaseMergePaths = function (errorPrefix, mergePaths) {\r\n var i, curPath;\r\n for (i = 0; i < mergePaths.length; i++) {\r\n curPath = mergePaths[i];\r\n var keys = pathSlice(curPath);\r\n for (var j = 0; j < keys.length; j++) {\r\n if (keys[j] === '.priority' && j === keys.length - 1) ;\r\n else if (!isValidKey(keys[j])) {\r\n throw new Error(errorPrefix +\r\n 'contains an invalid key (' +\r\n keys[j] +\r\n ') in path ' +\r\n curPath.toString() +\r\n '. Keys must be non-empty strings ' +\r\n 'and can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\"');\r\n }\r\n }\r\n }\r\n // Check that update keys are not descendants of each other.\r\n // We rely on the property that sorting guarantees that ancestors come\r\n // right before descendants.\r\n mergePaths.sort(pathCompare);\r\n var prevPath = null;\r\n for (i = 0; i < mergePaths.length; i++) {\r\n curPath = mergePaths[i];\r\n if (prevPath !== null && pathContains(prevPath, curPath)) {\r\n throw new Error(errorPrefix +\r\n 'contains a path ' +\r\n prevPath.toString() +\r\n ' that is ancestor of another path ' +\r\n curPath.toString());\r\n }\r\n prevPath = curPath;\r\n }\r\n};\r\n/**\r\n * pre-validate an object passed as an argument to firebase function (\r\n * must be an object - e.g. for firebase.update()).\r\n */\r\nvar validateFirebaseMergeDataArg = function (fnName, data, path, optional) {\r\n if (optional && data === undefined) {\r\n return;\r\n }\r\n var errorPrefix$1 = errorPrefix(fnName, 'values');\r\n if (!(data && typeof data === 'object') || Array.isArray(data)) {\r\n throw new Error(errorPrefix$1 + ' must be an object containing the children to replace.');\r\n }\r\n var mergePaths = [];\r\n each(data, function (key, value) {\r\n var curPath = new Path(key);\r\n validateFirebaseData(errorPrefix$1, value, pathChild(path, curPath));\r\n if (pathGetBack(curPath) === '.priority') {\r\n if (!isValidPriority(value)) {\r\n throw new Error(errorPrefix$1 +\r\n \"contains an invalid value for '\" +\r\n curPath.toString() +\r\n \"', which must be a valid \" +\r\n 'Firebase priority (a string, finite number, server value, or null).');\r\n }\r\n }\r\n mergePaths.push(curPath);\r\n });\r\n validateFirebaseMergePaths(errorPrefix$1, mergePaths);\r\n};\r\nvar validatePriority = function (fnName, priority, optional) {\r\n if (optional && priority === undefined) {\r\n return;\r\n }\r\n if (isInvalidJSONNumber(priority)) {\r\n throw new Error(errorPrefix(fnName, 'priority') +\r\n 'is ' +\r\n priority.toString() +\r\n ', but must be a valid Firebase priority (a string, finite number, ' +\r\n 'server value, or null).');\r\n }\r\n // Special case to allow importing data with a .sv.\r\n if (!isValidPriority(priority)) {\r\n throw new Error(errorPrefix(fnName, 'priority') +\r\n 'must be a valid Firebase priority ' +\r\n '(a string, finite number, server value, or null).');\r\n }\r\n};\r\nvar validateEventType = function (fnName, eventType, optional) {\r\n if (optional && eventType === undefined) {\r\n return;\r\n }\r\n switch (eventType) {\r\n case 'value':\r\n case 'child_added':\r\n case 'child_removed':\r\n case 'child_changed':\r\n case 'child_moved':\r\n break;\r\n default:\r\n throw new Error(errorPrefix(fnName, 'eventType') +\r\n 'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n '\"child_changed\", or \"child_moved\".');\r\n }\r\n};\r\nvar validateKey = function (fnName, argumentName, key, optional) {\r\n if (optional && key === undefined) {\r\n return;\r\n }\r\n if (!isValidKey(key)) {\r\n throw new Error(errorPrefix(fnName, argumentName) +\r\n 'was an invalid key = \"' +\r\n key +\r\n '\". Firebase keys must be non-empty strings and ' +\r\n 'can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\").');\r\n }\r\n};\r\nvar validatePathString = function (fnName, argumentName, pathString, optional) {\r\n if (optional && pathString === undefined) {\r\n return;\r\n }\r\n if (!isValidPathString(pathString)) {\r\n throw new Error(errorPrefix(fnName, argumentName) +\r\n 'was an invalid path = \"' +\r\n pathString +\r\n '\". Paths must be non-empty strings and ' +\r\n 'can\\'t contain \".\", \"#\", \"$\", \"[\", or \"]\"');\r\n }\r\n};\r\nvar validateRootPathString = function (fnName, argumentName, pathString, optional) {\r\n if (pathString) {\r\n // Allow '/.info/' at the beginning.\r\n pathString = pathString.replace(/^\\/*\\.info(\\/|$)/, '/');\r\n }\r\n validatePathString(fnName, argumentName, pathString, optional);\r\n};\r\nvar validateWritablePath = function (fnName, path) {\r\n if (pathGetFront(path) === '.info') {\r\n throw new Error(fnName + \" failed = Can't modify data under /.info/\");\r\n }\r\n};\r\nvar validateUrl = function (fnName, parsedUrl) {\r\n // TODO = Validate server better.\r\n var pathString = parsedUrl.path.toString();\r\n if (!(typeof parsedUrl.repoInfo.host === 'string') ||\r\n parsedUrl.repoInfo.host.length === 0 ||\r\n (!isValidKey(parsedUrl.repoInfo.namespace) &&\r\n parsedUrl.repoInfo.host.split(':')[0] !== 'localhost') ||\r\n (pathString.length !== 0 && !isValidRootPathString(pathString))) {\r\n throw new Error(errorPrefix(fnName, 'url') +\r\n 'must be a valid firebase URL and ' +\r\n 'the path can\\'t contain \".\", \"#\", \"$\", \"[\", or \"]\".');\r\n }\r\n};\r\nvar validateBoolean = function (fnName, argumentName, bool, optional) {\r\n if (optional && bool === undefined) {\r\n return;\r\n }\r\n if (typeof bool !== 'boolean') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a boolean.');\r\n }\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The event queue serves a few purposes:\r\n * 1. It ensures we maintain event order in the face of event callbacks doing operations that result in more\r\n * events being queued.\r\n * 2. raiseQueuedEvents() handles being called reentrantly nicely. That is, if in the course of raising events,\r\n * raiseQueuedEvents() is called again, the \"inner\" call will pick up raising events where the \"outer\" call\r\n * left off, ensuring that the events are still raised synchronously and in order.\r\n * 3. You can use raiseEventsAtPath and raiseEventsForChangedPath to ensure only relevant previously-queued\r\n * events are raised synchronously.\r\n *\r\n * NOTE: This can all go away if/when we move to async events.\r\n *\r\n */\r\nvar EventQueue = /** @class */ (function () {\r\n function EventQueue() {\r\n this.eventLists_ = [];\r\n /**\r\n * Tracks recursion depth of raiseQueuedEvents_, for debugging purposes.\r\n */\r\n this.recursionDepth_ = 0;\r\n }\r\n return EventQueue;\r\n}());\r\n/**\r\n * @param eventDataList - The new events to queue.\r\n */\r\nfunction eventQueueQueueEvents(eventQueue, eventDataList) {\r\n // We group events by path, storing them in a single EventList, to make it easier to skip over them quickly.\r\n var currList = null;\r\n for (var i = 0; i < eventDataList.length; i++) {\r\n var data = eventDataList[i];\r\n var path = data.getPath();\r\n if (currList !== null && !pathEquals(path, currList.path)) {\r\n eventQueue.eventLists_.push(currList);\r\n currList = null;\r\n }\r\n if (currList === null) {\r\n currList = { events: [], path: path };\r\n }\r\n currList.events.push(data);\r\n }\r\n if (currList) {\r\n eventQueue.eventLists_.push(currList);\r\n }\r\n}\r\n/**\r\n * Queues the specified events and synchronously raises all events (including previously queued ones)\r\n * for the specified path.\r\n *\r\n * It is assumed that the new events are all for the specified path.\r\n *\r\n * @param path - The path to raise events for.\r\n * @param eventDataList - The new events to raise.\r\n */\r\nfunction eventQueueRaiseEventsAtPath(eventQueue, path, eventDataList) {\r\n eventQueueQueueEvents(eventQueue, eventDataList);\r\n eventQueueRaiseQueuedEventsMatchingPredicate(eventQueue, function (eventPath) {\r\n return pathEquals(eventPath, path);\r\n });\r\n}\r\n/**\r\n * Queues the specified events and synchronously raises all events (including previously queued ones) for\r\n * locations related to the specified change path (i.e. all ancestors and descendants).\r\n *\r\n * It is assumed that the new events are all related (ancestor or descendant) to the specified path.\r\n *\r\n * @param changedPath - The path to raise events for.\r\n * @param eventDataList - The events to raise\r\n */\r\nfunction eventQueueRaiseEventsForChangedPath(eventQueue, changedPath, eventDataList) {\r\n eventQueueQueueEvents(eventQueue, eventDataList);\r\n eventQueueRaiseQueuedEventsMatchingPredicate(eventQueue, function (eventPath) {\r\n return pathContains(eventPath, changedPath) ||\r\n pathContains(changedPath, eventPath);\r\n });\r\n}\r\nfunction eventQueueRaiseQueuedEventsMatchingPredicate(eventQueue, predicate) {\r\n eventQueue.recursionDepth_++;\r\n var sentAll = true;\r\n for (var i = 0; i < eventQueue.eventLists_.length; i++) {\r\n var eventList = eventQueue.eventLists_[i];\r\n if (eventList) {\r\n var eventPath = eventList.path;\r\n if (predicate(eventPath)) {\r\n eventListRaise(eventQueue.eventLists_[i]);\r\n eventQueue.eventLists_[i] = null;\r\n }\r\n else {\r\n sentAll = false;\r\n }\r\n }\r\n }\r\n if (sentAll) {\r\n eventQueue.eventLists_ = [];\r\n }\r\n eventQueue.recursionDepth_--;\r\n}\r\n/**\r\n * Iterates through the list and raises each event\r\n */\r\nfunction eventListRaise(eventList) {\r\n for (var i = 0; i < eventList.events.length; i++) {\r\n var eventData = eventList.events[i];\r\n if (eventData !== null) {\r\n eventList.events[i] = null;\r\n var eventFn = eventData.getEventRunner();\r\n if (logger) {\r\n log('event: ' + eventData.toString());\r\n }\r\n exceptionGuard(eventFn);\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar INTERRUPT_REASON = 'repo_interrupt';\r\n/**\r\n * If a transaction does not succeed after 25 retries, we abort it. Among other\r\n * things this ensure that if there's ever a bug causing a mismatch between\r\n * client / server hashes for some data, we won't retry indefinitely.\r\n */\r\nvar MAX_TRANSACTION_RETRIES = 25;\r\n/**\r\n * A connection to a single data repository.\r\n */\r\nvar Repo = /** @class */ (function () {\r\n function Repo(repoInfo_, forceRestClient_, authTokenProvider_, appCheckProvider_) {\r\n this.repoInfo_ = repoInfo_;\r\n this.forceRestClient_ = forceRestClient_;\r\n this.authTokenProvider_ = authTokenProvider_;\r\n this.appCheckProvider_ = appCheckProvider_;\r\n this.dataUpdateCount = 0;\r\n this.statsListener_ = null;\r\n this.eventQueue_ = new EventQueue();\r\n this.nextWriteId_ = 1;\r\n this.interceptServerDataCallback_ = null;\r\n /** A list of data pieces and paths to be set when this client disconnects. */\r\n this.onDisconnect_ = newSparseSnapshotTree();\r\n /** Stores queues of outstanding transactions for Firebase locations. */\r\n this.transactionQueueTree_ = new Tree();\r\n // TODO: This should be @private but it's used by test_access.js and internal.js\r\n this.persistentConnection_ = null;\r\n // This key is intentionally not updated if RepoInfo is later changed or replaced\r\n this.key = this.repoInfo_.toURLString();\r\n }\r\n /**\r\n * @returns The URL corresponding to the root of this Firebase.\r\n */\r\n Repo.prototype.toString = function () {\r\n return ((this.repoInfo_.secure ? 'https://' : 'http://') + this.repoInfo_.host);\r\n };\r\n return Repo;\r\n}());\r\nfunction repoStart(repo, appId, authOverride) {\r\n repo.stats_ = statsManagerGetCollection(repo.repoInfo_);\r\n if (repo.forceRestClient_ || beingCrawled()) {\r\n repo.server_ = new ReadonlyRestClient(repo.repoInfo_, function (pathString, data, isMerge, tag) {\r\n repoOnDataUpdate(repo, pathString, data, isMerge, tag);\r\n }, repo.authTokenProvider_, repo.appCheckProvider_);\r\n // Minor hack: Fire onConnect immediately, since there's no actual connection.\r\n setTimeout(function () { return repoOnConnectStatus(repo, /* connectStatus= */ true); }, 0);\r\n }\r\n else {\r\n // Validate authOverride\r\n if (typeof authOverride !== 'undefined' && authOverride !== null) {\r\n if (typeof authOverride !== 'object') {\r\n throw new Error('Only objects are supported for option databaseAuthVariableOverride');\r\n }\r\n try {\r\n stringify(authOverride);\r\n }\r\n catch (e) {\r\n throw new Error('Invalid authOverride provided: ' + e);\r\n }\r\n }\r\n repo.persistentConnection_ = new PersistentConnection(repo.repoInfo_, appId, function (pathString, data, isMerge, tag) {\r\n repoOnDataUpdate(repo, pathString, data, isMerge, tag);\r\n }, function (connectStatus) {\r\n repoOnConnectStatus(repo, connectStatus);\r\n }, function (updates) {\r\n repoOnServerInfoUpdate(repo, updates);\r\n }, repo.authTokenProvider_, repo.appCheckProvider_, authOverride);\r\n repo.server_ = repo.persistentConnection_;\r\n }\r\n repo.authTokenProvider_.addTokenChangeListener(function (token) {\r\n repo.server_.refreshAuthToken(token);\r\n });\r\n repo.appCheckProvider_.addTokenChangeListener(function (result) {\r\n repo.server_.refreshAppCheckToken(result.token);\r\n });\r\n // In the case of multiple Repos for the same repoInfo (i.e. there are multiple Firebase.Contexts being used),\r\n // we only want to create one StatsReporter. As such, we'll report stats over the first Repo created.\r\n repo.statsReporter_ = statsManagerGetOrCreateReporter(repo.repoInfo_, function () { return new StatsReporter(repo.stats_, repo.server_); });\r\n // Used for .info.\r\n repo.infoData_ = new SnapshotHolder();\r\n repo.infoSyncTree_ = new SyncTree({\r\n startListening: function (query, tag, currentHashFn, onComplete) {\r\n var infoEvents = [];\r\n var node = repo.infoData_.getNode(query._path);\r\n // This is possibly a hack, but we have different semantics for .info endpoints. We don't raise null events\r\n // on initial data...\r\n if (!node.isEmpty()) {\r\n infoEvents = syncTreeApplyServerOverwrite(repo.infoSyncTree_, query._path, node);\r\n setTimeout(function () {\r\n onComplete('ok');\r\n }, 0);\r\n }\r\n return infoEvents;\r\n },\r\n stopListening: function () { }\r\n });\r\n repoUpdateInfo(repo, 'connected', false);\r\n repo.serverSyncTree_ = new SyncTree({\r\n startListening: function (query, tag, currentHashFn, onComplete) {\r\n repo.server_.listen(query, currentHashFn, tag, function (status, data) {\r\n var events = onComplete(status, data);\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, query._path, events);\r\n });\r\n // No synchronous events for network-backed sync trees\r\n return [];\r\n },\r\n stopListening: function (query, tag) {\r\n repo.server_.unlisten(query, tag);\r\n }\r\n });\r\n}\r\n/**\r\n * @returns The time in milliseconds, taking the server offset into account if we have one.\r\n */\r\nfunction repoServerTime(repo) {\r\n var offsetNode = repo.infoData_.getNode(new Path('.info/serverTimeOffset'));\r\n var offset = offsetNode.val() || 0;\r\n return new Date().getTime() + offset;\r\n}\r\n/**\r\n * Generate ServerValues using some variables from the repo object.\r\n */\r\nfunction repoGenerateServerValues(repo) {\r\n return generateWithValues({\r\n timestamp: repoServerTime(repo)\r\n });\r\n}\r\n/**\r\n * Called by realtime when we get new messages from the server.\r\n */\r\nfunction repoOnDataUpdate(repo, pathString, data, isMerge, tag) {\r\n // For testing.\r\n repo.dataUpdateCount++;\r\n var path = new Path(pathString);\r\n data = repo.interceptServerDataCallback_\r\n ? repo.interceptServerDataCallback_(pathString, data)\r\n : data;\r\n var events = [];\r\n if (tag) {\r\n if (isMerge) {\r\n var taggedChildren = map(data, function (raw) { return nodeFromJSON(raw); });\r\n events = syncTreeApplyTaggedQueryMerge(repo.serverSyncTree_, path, taggedChildren, tag);\r\n }\r\n else {\r\n var taggedSnap = nodeFromJSON(data);\r\n events = syncTreeApplyTaggedQueryOverwrite(repo.serverSyncTree_, path, taggedSnap, tag);\r\n }\r\n }\r\n else if (isMerge) {\r\n var changedChildren = map(data, function (raw) { return nodeFromJSON(raw); });\r\n events = syncTreeApplyServerMerge(repo.serverSyncTree_, path, changedChildren);\r\n }\r\n else {\r\n var snap = nodeFromJSON(data);\r\n events = syncTreeApplyServerOverwrite(repo.serverSyncTree_, path, snap);\r\n }\r\n var affectedPath = path;\r\n if (events.length > 0) {\r\n // Since we have a listener outstanding for each transaction, receiving any events\r\n // is a proxy for some change having occurred.\r\n affectedPath = repoRerunTransactions(repo, path);\r\n }\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, affectedPath, events);\r\n}\r\n// TODO: This should be @private but it's used by test_access.js and internal.js\r\nfunction repoInterceptServerData(repo, callback) {\r\n repo.interceptServerDataCallback_ = callback;\r\n}\r\nfunction repoOnConnectStatus(repo, connectStatus) {\r\n repoUpdateInfo(repo, 'connected', connectStatus);\r\n if (connectStatus === false) {\r\n repoRunOnDisconnectEvents(repo);\r\n }\r\n}\r\nfunction repoOnServerInfoUpdate(repo, updates) {\r\n each(updates, function (key, value) {\r\n repoUpdateInfo(repo, key, value);\r\n });\r\n}\r\nfunction repoUpdateInfo(repo, pathString, value) {\r\n var path = new Path('/.info/' + pathString);\r\n var newNode = nodeFromJSON(value);\r\n repo.infoData_.updateSnapshot(path, newNode);\r\n var events = syncTreeApplyServerOverwrite(repo.infoSyncTree_, path, newNode);\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, path, events);\r\n}\r\nfunction repoGetNextWriteId(repo) {\r\n return repo.nextWriteId_++;\r\n}\r\n/**\r\n * The purpose of `getValue` is to return the latest known value\r\n * satisfying `query`.\r\n *\r\n * This method will first check for in-memory cached values\r\n * belonging to active listeners. If they are found, such values\r\n * are considered to be the most up-to-date.\r\n *\r\n * If the client is not connected, this method will try to\r\n * establish a connection and request the value for `query`. If\r\n * the client is not able to retrieve the query result, it reports\r\n * an error.\r\n *\r\n * @param query - The query to surface a value for.\r\n */\r\nfunction repoGetValue(repo, query) {\r\n // Only active queries are cached. There is no persisted cache.\r\n var cached = syncTreeGetServerValue(repo.serverSyncTree_, query);\r\n if (cached != null) {\r\n return Promise.resolve(cached);\r\n }\r\n return repo.server_.get(query).then(function (payload) {\r\n var node = nodeFromJSON(payload).withIndex(query._queryParams.getIndex());\r\n var events = syncTreeApplyServerOverwrite(repo.serverSyncTree_, query._path, node);\r\n eventQueueRaiseEventsAtPath(repo.eventQueue_, query._path, events);\r\n return Promise.resolve(node);\r\n }, function (err) {\r\n repoLog(repo, 'get for query ' + stringify(query) + ' failed: ' + err);\r\n return Promise.reject(new Error(err));\r\n });\r\n}\r\nfunction repoSetWithPriority(repo, path, newVal, newPriority, onComplete) {\r\n repoLog(repo, 'set', {\r\n path: path.toString(),\r\n value: newVal,\r\n priority: newPriority\r\n });\r\n // TODO: Optimize this behavior to either (a) store flag to skip resolving where possible and / or\r\n // (b) store unresolved paths on JSON parse\r\n var serverValues = repoGenerateServerValues(repo);\r\n var newNodeUnresolved = nodeFromJSON(newVal, newPriority);\r\n var existing = syncTreeCalcCompleteEventCache(repo.serverSyncTree_, path);\r\n var newNode = resolveDeferredValueSnapshot(newNodeUnresolved, existing, serverValues);\r\n var writeId = repoGetNextWriteId(repo);\r\n var events = syncTreeApplyUserOverwrite(repo.serverSyncTree_, path, newNode, writeId, true);\r\n eventQueueQueueEvents(repo.eventQueue_, events);\r\n repo.server_.put(path.toString(), newNodeUnresolved.val(/*export=*/ true), function (status, errorReason) {\r\n var success = status === 'ok';\r\n if (!success) {\r\n warn('set at ' + path + ' failed: ' + status);\r\n }\r\n var clearEvents = syncTreeAckUserWrite(repo.serverSyncTree_, writeId, !success);\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, path, clearEvents);\r\n repoCallOnCompleteCallback(repo, onComplete, status, errorReason);\r\n });\r\n var affectedPath = repoAbortTransactions(repo, path);\r\n repoRerunTransactions(repo, affectedPath);\r\n // We queued the events above, so just flush the queue here\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, affectedPath, []);\r\n}\r\nfunction repoUpdate(repo, path, childrenToMerge, onComplete) {\r\n repoLog(repo, 'update', { path: path.toString(), value: childrenToMerge });\r\n // Start with our existing data and merge each child into it.\r\n var empty = true;\r\n var serverValues = repoGenerateServerValues(repo);\r\n var changedChildren = {};\r\n each(childrenToMerge, function (changedKey, changedValue) {\r\n empty = false;\r\n changedChildren[changedKey] = resolveDeferredValueTree(pathChild(path, changedKey), nodeFromJSON(changedValue), repo.serverSyncTree_, serverValues);\r\n });\r\n if (!empty) {\r\n var writeId_1 = repoGetNextWriteId(repo);\r\n var events = syncTreeApplyUserMerge(repo.serverSyncTree_, path, changedChildren, writeId_1);\r\n eventQueueQueueEvents(repo.eventQueue_, events);\r\n repo.server_.merge(path.toString(), childrenToMerge, function (status, errorReason) {\r\n var success = status === 'ok';\r\n if (!success) {\r\n warn('update at ' + path + ' failed: ' + status);\r\n }\r\n var clearEvents = syncTreeAckUserWrite(repo.serverSyncTree_, writeId_1, !success);\r\n var affectedPath = clearEvents.length > 0 ? repoRerunTransactions(repo, path) : path;\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, affectedPath, clearEvents);\r\n repoCallOnCompleteCallback(repo, onComplete, status, errorReason);\r\n });\r\n each(childrenToMerge, function (changedPath) {\r\n var affectedPath = repoAbortTransactions(repo, pathChild(path, changedPath));\r\n repoRerunTransactions(repo, affectedPath);\r\n });\r\n // We queued the events above, so just flush the queue here\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, path, []);\r\n }\r\n else {\r\n log(\"update() called with empty data. Don't do anything.\");\r\n repoCallOnCompleteCallback(repo, onComplete, 'ok', undefined);\r\n }\r\n}\r\n/**\r\n * Applies all of the changes stored up in the onDisconnect_ tree.\r\n */\r\nfunction repoRunOnDisconnectEvents(repo) {\r\n repoLog(repo, 'onDisconnectEvents');\r\n var serverValues = repoGenerateServerValues(repo);\r\n var resolvedOnDisconnectTree = newSparseSnapshotTree();\r\n sparseSnapshotTreeForEachTree(repo.onDisconnect_, newEmptyPath(), function (path, node) {\r\n var resolved = resolveDeferredValueTree(path, node, repo.serverSyncTree_, serverValues);\r\n sparseSnapshotTreeRemember(resolvedOnDisconnectTree, path, resolved);\r\n });\r\n var events = [];\r\n sparseSnapshotTreeForEachTree(resolvedOnDisconnectTree, newEmptyPath(), function (path, snap) {\r\n events = events.concat(syncTreeApplyServerOverwrite(repo.serverSyncTree_, path, snap));\r\n var affectedPath = repoAbortTransactions(repo, path);\r\n repoRerunTransactions(repo, affectedPath);\r\n });\r\n repo.onDisconnect_ = newSparseSnapshotTree();\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, newEmptyPath(), events);\r\n}\r\nfunction repoOnDisconnectCancel(repo, path, onComplete) {\r\n repo.server_.onDisconnectCancel(path.toString(), function (status, errorReason) {\r\n if (status === 'ok') {\r\n sparseSnapshotTreeForget(repo.onDisconnect_, path);\r\n }\r\n repoCallOnCompleteCallback(repo, onComplete, status, errorReason);\r\n });\r\n}\r\nfunction repoOnDisconnectSet(repo, path, value, onComplete) {\r\n var newNode = nodeFromJSON(value);\r\n repo.server_.onDisconnectPut(path.toString(), newNode.val(/*export=*/ true), function (status, errorReason) {\r\n if (status === 'ok') {\r\n sparseSnapshotTreeRemember(repo.onDisconnect_, path, newNode);\r\n }\r\n repoCallOnCompleteCallback(repo, onComplete, status, errorReason);\r\n });\r\n}\r\nfunction repoOnDisconnectSetWithPriority(repo, path, value, priority, onComplete) {\r\n var newNode = nodeFromJSON(value, priority);\r\n repo.server_.onDisconnectPut(path.toString(), newNode.val(/*export=*/ true), function (status, errorReason) {\r\n if (status === 'ok') {\r\n sparseSnapshotTreeRemember(repo.onDisconnect_, path, newNode);\r\n }\r\n repoCallOnCompleteCallback(repo, onComplete, status, errorReason);\r\n });\r\n}\r\nfunction repoOnDisconnectUpdate(repo, path, childrenToMerge, onComplete) {\r\n if (isEmpty(childrenToMerge)) {\r\n log(\"onDisconnect().update() called with empty data. Don't do anything.\");\r\n repoCallOnCompleteCallback(repo, onComplete, 'ok', undefined);\r\n return;\r\n }\r\n repo.server_.onDisconnectMerge(path.toString(), childrenToMerge, function (status, errorReason) {\r\n if (status === 'ok') {\r\n each(childrenToMerge, function (childName, childNode) {\r\n var newChildNode = nodeFromJSON(childNode);\r\n sparseSnapshotTreeRemember(repo.onDisconnect_, pathChild(path, childName), newChildNode);\r\n });\r\n }\r\n repoCallOnCompleteCallback(repo, onComplete, status, errorReason);\r\n });\r\n}\r\nfunction repoAddEventCallbackForQuery(repo, query, eventRegistration) {\r\n var events;\r\n if (pathGetFront(query._path) === '.info') {\r\n events = syncTreeAddEventRegistration(repo.infoSyncTree_, query, eventRegistration);\r\n }\r\n else {\r\n events = syncTreeAddEventRegistration(repo.serverSyncTree_, query, eventRegistration);\r\n }\r\n eventQueueRaiseEventsAtPath(repo.eventQueue_, query._path, events);\r\n}\r\nfunction repoRemoveEventCallbackForQuery(repo, query, eventRegistration) {\r\n // These are guaranteed not to raise events, since we're not passing in a cancelError. However, we can future-proof\r\n // a little bit by handling the return values anyways.\r\n var events;\r\n if (pathGetFront(query._path) === '.info') {\r\n events = syncTreeRemoveEventRegistration(repo.infoSyncTree_, query, eventRegistration);\r\n }\r\n else {\r\n events = syncTreeRemoveEventRegistration(repo.serverSyncTree_, query, eventRegistration);\r\n }\r\n eventQueueRaiseEventsAtPath(repo.eventQueue_, query._path, events);\r\n}\r\nfunction repoInterrupt(repo) {\r\n if (repo.persistentConnection_) {\r\n repo.persistentConnection_.interrupt(INTERRUPT_REASON);\r\n }\r\n}\r\nfunction repoResume(repo) {\r\n if (repo.persistentConnection_) {\r\n repo.persistentConnection_.resume(INTERRUPT_REASON);\r\n }\r\n}\r\nfunction repoStats(repo, showDelta) {\r\n if (showDelta === void 0) { showDelta = false; }\r\n if (typeof console === 'undefined') {\r\n return;\r\n }\r\n var stats;\r\n if (showDelta) {\r\n if (!repo.statsListener_) {\r\n repo.statsListener_ = new StatsListener(repo.stats_);\r\n }\r\n stats = repo.statsListener_.get();\r\n }\r\n else {\r\n stats = repo.stats_.get();\r\n }\r\n var longestName = Object.keys(stats).reduce(function (previousValue, currentValue) {\r\n return Math.max(currentValue.length, previousValue);\r\n }, 0);\r\n each(stats, function (stat, value) {\r\n var paddedStat = stat;\r\n // pad stat names to be the same length (plus 2 extra spaces).\r\n for (var i = stat.length; i < longestName + 2; i++) {\r\n paddedStat += ' ';\r\n }\r\n console.log(paddedStat + value);\r\n });\r\n}\r\nfunction repoStatsIncrementCounter(repo, metric) {\r\n repo.stats_.incrementCounter(metric);\r\n statsReporterIncludeStat(repo.statsReporter_, metric);\r\n}\r\nfunction repoLog(repo) {\r\n var varArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n varArgs[_i - 1] = arguments[_i];\r\n }\r\n var prefix = '';\r\n if (repo.persistentConnection_) {\r\n prefix = repo.persistentConnection_.id + ':';\r\n }\r\n log.apply(void 0, __spreadArray([prefix], __read(varArgs)));\r\n}\r\nfunction repoCallOnCompleteCallback(repo, callback, status, errorReason) {\r\n if (callback) {\r\n exceptionGuard(function () {\r\n if (status === 'ok') {\r\n callback(null);\r\n }\r\n else {\r\n var code = (status || 'error').toUpperCase();\r\n var message = code;\r\n if (errorReason) {\r\n message += ': ' + errorReason;\r\n }\r\n var error = new Error(message);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error.code = code;\r\n callback(error);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Creates a new transaction, adds it to the transactions we're tracking, and\r\n * sends it to the server if possible.\r\n *\r\n * @param path - Path at which to do transaction.\r\n * @param transactionUpdate - Update callback.\r\n * @param onComplete - Completion callback.\r\n * @param unwatcher - Function that will be called when the transaction no longer\r\n * need data updates for `path`.\r\n * @param applyLocally - Whether or not to make intermediate results visible\r\n */\r\nfunction repoStartTransaction(repo, path, transactionUpdate, onComplete, unwatcher, applyLocally) {\r\n repoLog(repo, 'transaction on ' + path);\r\n // Initialize transaction.\r\n var transaction = {\r\n path: path,\r\n update: transactionUpdate,\r\n onComplete: onComplete,\r\n // One of TransactionStatus enums.\r\n status: null,\r\n // Used when combining transactions at different locations to figure out\r\n // which one goes first.\r\n order: LUIDGenerator(),\r\n // Whether to raise local events for this transaction.\r\n applyLocally: applyLocally,\r\n // Count of how many times we've retried the transaction.\r\n retryCount: 0,\r\n // Function to call to clean up our .on() listener.\r\n unwatcher: unwatcher,\r\n // Stores why a transaction was aborted.\r\n abortReason: null,\r\n currentWriteId: null,\r\n currentInputSnapshot: null,\r\n currentOutputSnapshotRaw: null,\r\n currentOutputSnapshotResolved: null\r\n };\r\n // Run transaction initially.\r\n var currentState = repoGetLatestState(repo, path, undefined);\r\n transaction.currentInputSnapshot = currentState;\r\n var newVal = transaction.update(currentState.val());\r\n if (newVal === undefined) {\r\n // Abort transaction.\r\n transaction.unwatcher();\r\n transaction.currentOutputSnapshotRaw = null;\r\n transaction.currentOutputSnapshotResolved = null;\r\n if (transaction.onComplete) {\r\n transaction.onComplete(null, false, transaction.currentInputSnapshot);\r\n }\r\n }\r\n else {\r\n validateFirebaseData('transaction failed: Data returned ', newVal, transaction.path);\r\n // Mark as run and add to our queue.\r\n transaction.status = 0 /* RUN */;\r\n var queueNode = treeSubTree(repo.transactionQueueTree_, path);\r\n var nodeQueue = treeGetValue(queueNode) || [];\r\n nodeQueue.push(transaction);\r\n treeSetValue(queueNode, nodeQueue);\r\n // Update visibleData and raise events\r\n // Note: We intentionally raise events after updating all of our\r\n // transaction state, since the user could start new transactions from the\r\n // event callbacks.\r\n var priorityForNode = void 0;\r\n if (typeof newVal === 'object' &&\r\n newVal !== null &&\r\n contains(newVal, '.priority')) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n priorityForNode = safeGet(newVal, '.priority');\r\n assert(isValidPriority(priorityForNode), 'Invalid priority returned by transaction. ' +\r\n 'Priority must be a valid string, finite number, server value, or null.');\r\n }\r\n else {\r\n var currentNode = syncTreeCalcCompleteEventCache(repo.serverSyncTree_, path) ||\r\n ChildrenNode.EMPTY_NODE;\r\n priorityForNode = currentNode.getPriority().val();\r\n }\r\n var serverValues = repoGenerateServerValues(repo);\r\n var newNodeUnresolved = nodeFromJSON(newVal, priorityForNode);\r\n var newNode = resolveDeferredValueSnapshot(newNodeUnresolved, currentState, serverValues);\r\n transaction.currentOutputSnapshotRaw = newNodeUnresolved;\r\n transaction.currentOutputSnapshotResolved = newNode;\r\n transaction.currentWriteId = repoGetNextWriteId(repo);\r\n var events = syncTreeApplyUserOverwrite(repo.serverSyncTree_, path, newNode, transaction.currentWriteId, transaction.applyLocally);\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, path, events);\r\n repoSendReadyTransactions(repo, repo.transactionQueueTree_);\r\n }\r\n}\r\n/**\r\n * @param excludeSets - A specific set to exclude\r\n */\r\nfunction repoGetLatestState(repo, path, excludeSets) {\r\n return (syncTreeCalcCompleteEventCache(repo.serverSyncTree_, path, excludeSets) ||\r\n ChildrenNode.EMPTY_NODE);\r\n}\r\n/**\r\n * Sends any already-run transactions that aren't waiting for outstanding\r\n * transactions to complete.\r\n *\r\n * Externally it's called with no arguments, but it calls itself recursively\r\n * with a particular transactionQueueTree node to recurse through the tree.\r\n *\r\n * @param node - transactionQueueTree node to start at.\r\n */\r\nfunction repoSendReadyTransactions(repo, node) {\r\n if (node === void 0) { node = repo.transactionQueueTree_; }\r\n // Before recursing, make sure any completed transactions are removed.\r\n if (!node) {\r\n repoPruneCompletedTransactionsBelowNode(repo, node);\r\n }\r\n if (treeGetValue(node)) {\r\n var queue = repoBuildTransactionQueue(repo, node);\r\n assert(queue.length > 0, 'Sending zero length transaction queue');\r\n var allRun = queue.every(function (transaction) { return transaction.status === 0 /* RUN */; });\r\n // If they're all run (and not sent), we can send them. Else, we must wait.\r\n if (allRun) {\r\n repoSendTransactionQueue(repo, treeGetPath(node), queue);\r\n }\r\n }\r\n else if (treeHasChildren(node)) {\r\n treeForEachChild(node, function (childNode) {\r\n repoSendReadyTransactions(repo, childNode);\r\n });\r\n }\r\n}\r\n/**\r\n * Given a list of run transactions, send them to the server and then handle\r\n * the result (success or failure).\r\n *\r\n * @param path - The location of the queue.\r\n * @param queue - Queue of transactions under the specified location.\r\n */\r\nfunction repoSendTransactionQueue(repo, path, queue) {\r\n // Mark transactions as sent and increment retry count!\r\n var setsToIgnore = queue.map(function (txn) {\r\n return txn.currentWriteId;\r\n });\r\n var latestState = repoGetLatestState(repo, path, setsToIgnore);\r\n var snapToSend = latestState;\r\n var latestHash = latestState.hash();\r\n for (var i = 0; i < queue.length; i++) {\r\n var txn = queue[i];\r\n assert(txn.status === 0 /* RUN */, 'tryToSendTransactionQueue_: items in queue should all be run.');\r\n txn.status = 1 /* SENT */;\r\n txn.retryCount++;\r\n var relativePath = newRelativePath(path, txn.path);\r\n // If we've gotten to this point, the output snapshot must be defined.\r\n snapToSend = snapToSend.updateChild(relativePath /** @type {!Node} */, txn.currentOutputSnapshotRaw);\r\n }\r\n var dataToSend = snapToSend.val(true);\r\n var pathToSend = path;\r\n // Send the put.\r\n repo.server_.put(pathToSend.toString(), dataToSend, function (status) {\r\n repoLog(repo, 'transaction put response', {\r\n path: pathToSend.toString(),\r\n status: status\r\n });\r\n var events = [];\r\n if (status === 'ok') {\r\n // Queue up the callbacks and fire them after cleaning up all of our\r\n // transaction state, since the callback could trigger more\r\n // transactions or sets.\r\n var callbacks = [];\r\n var _loop_1 = function (i) {\r\n queue[i].status = 2 /* COMPLETED */;\r\n events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, queue[i].currentWriteId));\r\n if (queue[i].onComplete) {\r\n // We never unset the output snapshot, and given that this\r\n // transaction is complete, it should be set\r\n callbacks.push(function () {\r\n return queue[i].onComplete(null, true, queue[i].currentOutputSnapshotResolved);\r\n });\r\n }\r\n queue[i].unwatcher();\r\n };\r\n for (var i = 0; i < queue.length; i++) {\r\n _loop_1(i);\r\n }\r\n // Now remove the completed transactions.\r\n repoPruneCompletedTransactionsBelowNode(repo, treeSubTree(repo.transactionQueueTree_, path));\r\n // There may be pending transactions that we can now send.\r\n repoSendReadyTransactions(repo, repo.transactionQueueTree_);\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, path, events);\r\n // Finally, trigger onComplete callbacks.\r\n for (var i = 0; i < callbacks.length; i++) {\r\n exceptionGuard(callbacks[i]);\r\n }\r\n }\r\n else {\r\n // transactions are no longer sent. Update their status appropriately.\r\n if (status === 'datastale') {\r\n for (var i = 0; i < queue.length; i++) {\r\n if (queue[i].status === 3 /* SENT_NEEDS_ABORT */) {\r\n queue[i].status = 4 /* NEEDS_ABORT */;\r\n }\r\n else {\r\n queue[i].status = 0 /* RUN */;\r\n }\r\n }\r\n }\r\n else {\r\n warn('transaction at ' + pathToSend.toString() + ' failed: ' + status);\r\n for (var i = 0; i < queue.length; i++) {\r\n queue[i].status = 4 /* NEEDS_ABORT */;\r\n queue[i].abortReason = status;\r\n }\r\n }\r\n repoRerunTransactions(repo, path);\r\n }\r\n }, latestHash);\r\n}\r\n/**\r\n * Finds all transactions dependent on the data at changedPath and reruns them.\r\n *\r\n * Should be called any time cached data changes.\r\n *\r\n * Return the highest path that was affected by rerunning transactions. This\r\n * is the path at which events need to be raised for.\r\n *\r\n * @param changedPath - The path in mergedData that changed.\r\n * @returns The rootmost path that was affected by rerunning transactions.\r\n */\r\nfunction repoRerunTransactions(repo, changedPath) {\r\n var rootMostTransactionNode = repoGetAncestorTransactionNode(repo, changedPath);\r\n var path = treeGetPath(rootMostTransactionNode);\r\n var queue = repoBuildTransactionQueue(repo, rootMostTransactionNode);\r\n repoRerunTransactionQueue(repo, queue, path);\r\n return path;\r\n}\r\n/**\r\n * Does all the work of rerunning transactions (as well as cleans up aborted\r\n * transactions and whatnot).\r\n *\r\n * @param queue - The queue of transactions to run.\r\n * @param path - The path the queue is for.\r\n */\r\nfunction repoRerunTransactionQueue(repo, queue, path) {\r\n if (queue.length === 0) {\r\n return; // Nothing to do!\r\n }\r\n // Queue up the callbacks and fire them after cleaning up all of our\r\n // transaction state, since the callback could trigger more transactions or\r\n // sets.\r\n var callbacks = [];\r\n var events = [];\r\n // Ignore all of the sets we're going to re-run.\r\n var txnsToRerun = queue.filter(function (q) {\r\n return q.status === 0 /* RUN */;\r\n });\r\n var setsToIgnore = txnsToRerun.map(function (q) {\r\n return q.currentWriteId;\r\n });\r\n var _loop_2 = function (i) {\r\n var transaction = queue[i];\r\n var relativePath = newRelativePath(path, transaction.path);\r\n var abortTransaction = false, abortReason;\r\n assert(relativePath !== null, 'rerunTransactionsUnderNode_: relativePath should not be null.');\r\n if (transaction.status === 4 /* NEEDS_ABORT */) {\r\n abortTransaction = true;\r\n abortReason = transaction.abortReason;\r\n events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, transaction.currentWriteId, true));\r\n }\r\n else if (transaction.status === 0 /* RUN */) {\r\n if (transaction.retryCount >= MAX_TRANSACTION_RETRIES) {\r\n abortTransaction = true;\r\n abortReason = 'maxretry';\r\n events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, transaction.currentWriteId, true));\r\n }\r\n else {\r\n // This code reruns a transaction\r\n var currentNode = repoGetLatestState(repo, transaction.path, setsToIgnore);\r\n transaction.currentInputSnapshot = currentNode;\r\n var newData = queue[i].update(currentNode.val());\r\n if (newData !== undefined) {\r\n validateFirebaseData('transaction failed: Data returned ', newData, transaction.path);\r\n var newDataNode = nodeFromJSON(newData);\r\n var hasExplicitPriority = typeof newData === 'object' &&\r\n newData != null &&\r\n contains(newData, '.priority');\r\n if (!hasExplicitPriority) {\r\n // Keep the old priority if there wasn't a priority explicitly specified.\r\n newDataNode = newDataNode.updatePriority(currentNode.getPriority());\r\n }\r\n var oldWriteId = transaction.currentWriteId;\r\n var serverValues = repoGenerateServerValues(repo);\r\n var newNodeResolved = resolveDeferredValueSnapshot(newDataNode, currentNode, serverValues);\r\n transaction.currentOutputSnapshotRaw = newDataNode;\r\n transaction.currentOutputSnapshotResolved = newNodeResolved;\r\n transaction.currentWriteId = repoGetNextWriteId(repo);\r\n // Mutates setsToIgnore in place\r\n setsToIgnore.splice(setsToIgnore.indexOf(oldWriteId), 1);\r\n events = events.concat(syncTreeApplyUserOverwrite(repo.serverSyncTree_, transaction.path, newNodeResolved, transaction.currentWriteId, transaction.applyLocally));\r\n events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, oldWriteId, true));\r\n }\r\n else {\r\n abortTransaction = true;\r\n abortReason = 'nodata';\r\n events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, transaction.currentWriteId, true));\r\n }\r\n }\r\n }\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, path, events);\r\n events = [];\r\n if (abortTransaction) {\r\n // Abort.\r\n queue[i].status = 2 /* COMPLETED */;\r\n // Removing a listener can trigger pruning which can muck with\r\n // mergedData/visibleData (as it prunes data). So defer the unwatcher\r\n // until we're done.\r\n (function (unwatcher) {\r\n setTimeout(unwatcher, Math.floor(0));\r\n })(queue[i].unwatcher);\r\n if (queue[i].onComplete) {\r\n if (abortReason === 'nodata') {\r\n callbacks.push(function () {\r\n return queue[i].onComplete(null, false, queue[i].currentInputSnapshot);\r\n });\r\n }\r\n else {\r\n callbacks.push(function () {\r\n return queue[i].onComplete(new Error(abortReason), false, null);\r\n });\r\n }\r\n }\r\n }\r\n };\r\n for (var i = 0; i < queue.length; i++) {\r\n _loop_2(i);\r\n }\r\n // Clean up completed transactions.\r\n repoPruneCompletedTransactionsBelowNode(repo, repo.transactionQueueTree_);\r\n // Now fire callbacks, now that we're in a good, known state.\r\n for (var i = 0; i < callbacks.length; i++) {\r\n exceptionGuard(callbacks[i]);\r\n }\r\n // Try to send the transaction result to the server.\r\n repoSendReadyTransactions(repo, repo.transactionQueueTree_);\r\n}\r\n/**\r\n * Returns the rootmost ancestor node of the specified path that has a pending\r\n * transaction on it, or just returns the node for the given path if there are\r\n * no pending transactions on any ancestor.\r\n *\r\n * @param path - The location to start at.\r\n * @returns The rootmost node with a transaction.\r\n */\r\nfunction repoGetAncestorTransactionNode(repo, path) {\r\n var front;\r\n // Start at the root and walk deeper into the tree towards path until we\r\n // find a node with pending transactions.\r\n var transactionNode = repo.transactionQueueTree_;\r\n front = pathGetFront(path);\r\n while (front !== null && treeGetValue(transactionNode) === undefined) {\r\n transactionNode = treeSubTree(transactionNode, front);\r\n path = pathPopFront(path);\r\n front = pathGetFront(path);\r\n }\r\n return transactionNode;\r\n}\r\n/**\r\n * Builds the queue of all transactions at or below the specified\r\n * transactionNode.\r\n *\r\n * @param transactionNode\r\n * @returns The generated queue.\r\n */\r\nfunction repoBuildTransactionQueue(repo, transactionNode) {\r\n // Walk any child transaction queues and aggregate them into a single queue.\r\n var transactionQueue = [];\r\n repoAggregateTransactionQueuesForNode(repo, transactionNode, transactionQueue);\r\n // Sort them by the order the transactions were created.\r\n transactionQueue.sort(function (a, b) { return a.order - b.order; });\r\n return transactionQueue;\r\n}\r\nfunction repoAggregateTransactionQueuesForNode(repo, node, queue) {\r\n var nodeQueue = treeGetValue(node);\r\n if (nodeQueue) {\r\n for (var i = 0; i < nodeQueue.length; i++) {\r\n queue.push(nodeQueue[i]);\r\n }\r\n }\r\n treeForEachChild(node, function (child) {\r\n repoAggregateTransactionQueuesForNode(repo, child, queue);\r\n });\r\n}\r\n/**\r\n * Remove COMPLETED transactions at or below this node in the transactionQueueTree_.\r\n */\r\nfunction repoPruneCompletedTransactionsBelowNode(repo, node) {\r\n var queue = treeGetValue(node);\r\n if (queue) {\r\n var to = 0;\r\n for (var from = 0; from < queue.length; from++) {\r\n if (queue[from].status !== 2 /* COMPLETED */) {\r\n queue[to] = queue[from];\r\n to++;\r\n }\r\n }\r\n queue.length = to;\r\n treeSetValue(node, queue.length > 0 ? queue : undefined);\r\n }\r\n treeForEachChild(node, function (childNode) {\r\n repoPruneCompletedTransactionsBelowNode(repo, childNode);\r\n });\r\n}\r\n/**\r\n * Aborts all transactions on ancestors or descendants of the specified path.\r\n * Called when doing a set() or update() since we consider them incompatible\r\n * with transactions.\r\n *\r\n * @param path - Path for which we want to abort related transactions.\r\n */\r\nfunction repoAbortTransactions(repo, path) {\r\n var affectedPath = treeGetPath(repoGetAncestorTransactionNode(repo, path));\r\n var transactionNode = treeSubTree(repo.transactionQueueTree_, path);\r\n treeForEachAncestor(transactionNode, function (node) {\r\n repoAbortTransactionsOnNode(repo, node);\r\n });\r\n repoAbortTransactionsOnNode(repo, transactionNode);\r\n treeForEachDescendant(transactionNode, function (node) {\r\n repoAbortTransactionsOnNode(repo, node);\r\n });\r\n return affectedPath;\r\n}\r\n/**\r\n * Abort transactions stored in this transaction queue node.\r\n *\r\n * @param node - Node to abort transactions for.\r\n */\r\nfunction repoAbortTransactionsOnNode(repo, node) {\r\n var queue = treeGetValue(node);\r\n if (queue) {\r\n // Queue up the callbacks and fire them after cleaning up all of our\r\n // transaction state, since the callback could trigger more transactions\r\n // or sets.\r\n var callbacks = [];\r\n // Go through queue. Any already-sent transactions must be marked for\r\n // abort, while the unsent ones can be immediately aborted and removed.\r\n var events = [];\r\n var lastSent = -1;\r\n for (var i = 0; i < queue.length; i++) {\r\n if (queue[i].status === 3 /* SENT_NEEDS_ABORT */) ;\r\n else if (queue[i].status === 1 /* SENT */) {\r\n assert(lastSent === i - 1, 'All SENT items should be at beginning of queue.');\r\n lastSent = i;\r\n // Mark transaction for abort when it comes back.\r\n queue[i].status = 3 /* SENT_NEEDS_ABORT */;\r\n queue[i].abortReason = 'set';\r\n }\r\n else {\r\n assert(queue[i].status === 0 /* RUN */, 'Unexpected transaction status in abort');\r\n // We can abort it immediately.\r\n queue[i].unwatcher();\r\n events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, queue[i].currentWriteId, true));\r\n if (queue[i].onComplete) {\r\n callbacks.push(queue[i].onComplete.bind(null, new Error('set'), false, null));\r\n }\r\n }\r\n }\r\n if (lastSent === -1) {\r\n // We're not waiting for any sent transactions. We can clear the queue.\r\n treeSetValue(node, undefined);\r\n }\r\n else {\r\n // Remove the transactions we aborted.\r\n queue.length = lastSent + 1;\r\n }\r\n // Now fire the callbacks.\r\n eventQueueRaiseEventsForChangedPath(repo.eventQueue_, treeGetPath(node), events);\r\n for (var i = 0; i < callbacks.length; i++) {\r\n exceptionGuard(callbacks[i]);\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction decodePath(pathString) {\r\n var pathStringDecoded = '';\r\n var pieces = pathString.split('/');\r\n for (var i = 0; i < pieces.length; i++) {\r\n if (pieces[i].length > 0) {\r\n var piece = pieces[i];\r\n try {\r\n piece = decodeURIComponent(piece.replace(/\\+/g, ' '));\r\n }\r\n catch (e) { }\r\n pathStringDecoded += '/' + piece;\r\n }\r\n }\r\n return pathStringDecoded;\r\n}\r\n/**\r\n * @returns key value hash\r\n */\r\nfunction decodeQuery(queryString) {\r\n var e_1, _a;\r\n var results = {};\r\n if (queryString.charAt(0) === '?') {\r\n queryString = queryString.substring(1);\r\n }\r\n try {\r\n for (var _b = __values(queryString.split('&')), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var segment = _c.value;\r\n if (segment.length === 0) {\r\n continue;\r\n }\r\n var kv = segment.split('=');\r\n if (kv.length === 2) {\r\n results[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1]);\r\n }\r\n else {\r\n warn(\"Invalid query segment '\" + segment + \"' in query '\" + queryString + \"'\");\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return results;\r\n}\r\nvar parseRepoInfo = function (dataURL, nodeAdmin) {\r\n var parsedUrl = parseDatabaseURL(dataURL), namespace = parsedUrl.namespace;\r\n if (parsedUrl.domain === 'firebase.com') {\r\n fatal(parsedUrl.host +\r\n ' is no longer supported. ' +\r\n 'Please use .firebaseio.com instead');\r\n }\r\n // Catch common error of uninitialized namespace value.\r\n if ((!namespace || namespace === 'undefined') &&\r\n parsedUrl.domain !== 'localhost') {\r\n fatal('Cannot parse Firebase url. Please use https://.firebaseio.com');\r\n }\r\n if (!parsedUrl.secure) {\r\n warnIfPageIsSecure();\r\n }\r\n var webSocketOnly = parsedUrl.scheme === 'ws' || parsedUrl.scheme === 'wss';\r\n return {\r\n repoInfo: new RepoInfo(parsedUrl.host, parsedUrl.secure, namespace, nodeAdmin, webSocketOnly, \r\n /*persistenceKey=*/ '', \r\n /*includeNamespaceInQueryParams=*/ namespace !== parsedUrl.subdomain),\r\n path: new Path(parsedUrl.pathString)\r\n };\r\n};\r\nvar parseDatabaseURL = function (dataURL) {\r\n // Default to empty strings in the event of a malformed string.\r\n var host = '', domain = '', subdomain = '', pathString = '', namespace = '';\r\n // Always default to SSL, unless otherwise specified.\r\n var secure = true, scheme = 'https', port = 443;\r\n // Don't do any validation here. The caller is responsible for validating the result of parsing.\r\n if (typeof dataURL === 'string') {\r\n // Parse scheme.\r\n var colonInd = dataURL.indexOf('//');\r\n if (colonInd >= 0) {\r\n scheme = dataURL.substring(0, colonInd - 1);\r\n dataURL = dataURL.substring(colonInd + 2);\r\n }\r\n // Parse host, path, and query string.\r\n var slashInd = dataURL.indexOf('/');\r\n if (slashInd === -1) {\r\n slashInd = dataURL.length;\r\n }\r\n var questionMarkInd = dataURL.indexOf('?');\r\n if (questionMarkInd === -1) {\r\n questionMarkInd = dataURL.length;\r\n }\r\n host = dataURL.substring(0, Math.min(slashInd, questionMarkInd));\r\n if (slashInd < questionMarkInd) {\r\n // For pathString, questionMarkInd will always come after slashInd\r\n pathString = decodePath(dataURL.substring(slashInd, questionMarkInd));\r\n }\r\n var queryParams = decodeQuery(dataURL.substring(Math.min(dataURL.length, questionMarkInd)));\r\n // If we have a port, use scheme for determining if it's secure.\r\n colonInd = host.indexOf(':');\r\n if (colonInd >= 0) {\r\n secure = scheme === 'https' || scheme === 'wss';\r\n port = parseInt(host.substring(colonInd + 1), 10);\r\n }\r\n else {\r\n colonInd = host.length;\r\n }\r\n var hostWithoutPort = host.slice(0, colonInd);\r\n if (hostWithoutPort.toLowerCase() === 'localhost') {\r\n domain = 'localhost';\r\n }\r\n else if (hostWithoutPort.split('.').length <= 2) {\r\n domain = hostWithoutPort;\r\n }\r\n else {\r\n // Interpret the subdomain of a 3 or more component URL as the namespace name.\r\n var dotInd = host.indexOf('.');\r\n subdomain = host.substring(0, dotInd).toLowerCase();\r\n domain = host.substring(dotInd + 1);\r\n // Normalize namespaces to lowercase to share storage / connection.\r\n namespace = subdomain;\r\n }\r\n // Always treat the value of the `ns` as the namespace name if it is present.\r\n if ('ns' in queryParams) {\r\n namespace = queryParams['ns'];\r\n }\r\n }\r\n return {\r\n host: host,\r\n port: port,\r\n domain: domain,\r\n subdomain: subdomain,\r\n secure: secure,\r\n scheme: scheme,\r\n pathString: pathString,\r\n namespace: namespace\r\n };\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Encapsulates the data needed to raise an event\r\n */\r\nvar DataEvent = /** @class */ (function () {\r\n /**\r\n * @param eventType - One of: value, child_added, child_changed, child_moved, child_removed\r\n * @param eventRegistration - The function to call to with the event data. User provided\r\n * @param snapshot - The data backing the event\r\n * @param prevName - Optional, the name of the previous child for child_* events.\r\n */\r\n function DataEvent(eventType, eventRegistration, snapshot, prevName) {\r\n this.eventType = eventType;\r\n this.eventRegistration = eventRegistration;\r\n this.snapshot = snapshot;\r\n this.prevName = prevName;\r\n }\r\n DataEvent.prototype.getPath = function () {\r\n var ref = this.snapshot.ref;\r\n if (this.eventType === 'value') {\r\n return ref._path;\r\n }\r\n else {\r\n return ref.parent._path;\r\n }\r\n };\r\n DataEvent.prototype.getEventType = function () {\r\n return this.eventType;\r\n };\r\n DataEvent.prototype.getEventRunner = function () {\r\n return this.eventRegistration.getEventRunner(this);\r\n };\r\n DataEvent.prototype.toString = function () {\r\n return (this.getPath().toString() +\r\n ':' +\r\n this.eventType +\r\n ':' +\r\n stringify(this.snapshot.exportVal()));\r\n };\r\n return DataEvent;\r\n}());\r\nvar CancelEvent = /** @class */ (function () {\r\n function CancelEvent(eventRegistration, error, path) {\r\n this.eventRegistration = eventRegistration;\r\n this.error = error;\r\n this.path = path;\r\n }\r\n CancelEvent.prototype.getPath = function () {\r\n return this.path;\r\n };\r\n CancelEvent.prototype.getEventType = function () {\r\n return 'cancel';\r\n };\r\n CancelEvent.prototype.getEventRunner = function () {\r\n return this.eventRegistration.getEventRunner(this);\r\n };\r\n CancelEvent.prototype.toString = function () {\r\n return this.path.toString() + ':cancel';\r\n };\r\n return CancelEvent;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A wrapper class that converts events from the database@exp SDK to the legacy\r\n * Database SDK. Events are not converted directly as event registration relies\r\n * on reference comparison of the original user callback (see `matches()`) and\r\n * relies on equality of the legacy SDK's `context` object.\r\n */\r\nvar CallbackContext = /** @class */ (function () {\r\n function CallbackContext(snapshotCallback, cancelCallback) {\r\n this.snapshotCallback = snapshotCallback;\r\n this.cancelCallback = cancelCallback;\r\n }\r\n CallbackContext.prototype.onValue = function (expDataSnapshot, previousChildName) {\r\n this.snapshotCallback.call(null, expDataSnapshot, previousChildName);\r\n };\r\n CallbackContext.prototype.onCancel = function (error) {\r\n assert(this.hasCancelCallback, 'Raising a cancel event on a listener with no cancel callback');\r\n return this.cancelCallback.call(null, error);\r\n };\r\n Object.defineProperty(CallbackContext.prototype, \"hasCancelCallback\", {\r\n get: function () {\r\n return !!this.cancelCallback;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CallbackContext.prototype.matches = function (other) {\r\n return (this.snapshotCallback === other.snapshotCallback ||\r\n (this.snapshotCallback.userCallback !== undefined &&\r\n this.snapshotCallback.userCallback ===\r\n other.snapshotCallback.userCallback &&\r\n this.snapshotCallback.context === other.snapshotCallback.context));\r\n };\r\n return CallbackContext;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The `onDisconnect` class allows you to write or clear data when your client\r\n * disconnects from the Database server. These updates occur whether your\r\n * client disconnects cleanly or not, so you can rely on them to clean up data\r\n * even if a connection is dropped or a client crashes.\r\n *\r\n * The `onDisconnect` class is most commonly used to manage presence in\r\n * applications where it is useful to detect how many clients are connected and\r\n * when other clients disconnect. See\r\n * {@link https://firebase.google.com/docs/database/web/offline-capabilities | Enabling Offline Capabilities in JavaScript}\r\n * for more information.\r\n *\r\n * To avoid problems when a connection is dropped before the requests can be\r\n * transferred to the Database server, these functions should be called before\r\n * writing any data.\r\n *\r\n * Note that `onDisconnect` operations are only triggered once. If you want an\r\n * operation to occur each time a disconnect occurs, you'll need to re-establish\r\n * the `onDisconnect` operations each time you reconnect.\r\n */\r\nvar OnDisconnect$1 = /** @class */ (function () {\r\n /** @hideconstructor */\r\n function OnDisconnect(_repo, _path) {\r\n this._repo = _repo;\r\n this._path = _path;\r\n }\r\n /**\r\n * Cancels all previously queued `onDisconnect()` set or update events for this\r\n * location and all children.\r\n *\r\n * If a write has been queued for this location via a `set()` or `update()` at a\r\n * parent location, the write at this location will be canceled, though writes\r\n * to sibling locations will still occur.\r\n *\r\n * @returns Resolves when synchronization to the server is complete.\r\n */\r\n OnDisconnect.prototype.cancel = function () {\r\n var deferred = new Deferred();\r\n repoOnDisconnectCancel(this._repo, this._path, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n };\r\n /**\r\n * Ensures the data at this location is deleted when the client is disconnected\r\n * (due to closing the browser, navigating to a new page, or network issues).\r\n *\r\n * @returns Resolves when synchronization to the server is complete.\r\n */\r\n OnDisconnect.prototype.remove = function () {\r\n validateWritablePath('OnDisconnect.remove', this._path);\r\n var deferred = new Deferred();\r\n repoOnDisconnectSet(this._repo, this._path, null, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n };\r\n /**\r\n * Ensures the data at this location is set to the specified value when the\r\n * client is disconnected (due to closing the browser, navigating to a new page,\r\n * or network issues).\r\n *\r\n * `set()` is especially useful for implementing \"presence\" systems, where a\r\n * value should be changed or cleared when a user disconnects so that they\r\n * appear \"offline\" to other users. See\r\n * {@link https://firebase.google.com/docs/database/web/offline-capabilities | Enabling Offline Capabilities in JavaScript}\r\n * for more information.\r\n *\r\n * Note that `onDisconnect` operations are only triggered once. If you want an\r\n * operation to occur each time a disconnect occurs, you'll need to re-establish\r\n * the `onDisconnect` operations each time.\r\n *\r\n * @param value - The value to be written to this location on disconnect (can\r\n * be an object, array, string, number, boolean, or null).\r\n * @returns Resolves when synchronization to the Database is complete.\r\n */\r\n OnDisconnect.prototype.set = function (value) {\r\n validateWritablePath('OnDisconnect.set', this._path);\r\n validateFirebaseDataArg('OnDisconnect.set', value, this._path, false);\r\n var deferred = new Deferred();\r\n repoOnDisconnectSet(this._repo, this._path, value, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n };\r\n /**\r\n * Ensures the data at this location is set to the specified value and priority\r\n * when the client is disconnected (due to closing the browser, navigating to a\r\n * new page, or network issues).\r\n *\r\n * @param value - The value to be written to this location on disconnect (can\r\n * be an object, array, string, number, boolean, or null).\r\n * @param priority - The priority to be written (string, number, or null).\r\n * @returns Resolves when synchronization to the Database is complete.\r\n */\r\n OnDisconnect.prototype.setWithPriority = function (value, priority) {\r\n validateWritablePath('OnDisconnect.setWithPriority', this._path);\r\n validateFirebaseDataArg('OnDisconnect.setWithPriority', value, this._path, false);\r\n validatePriority('OnDisconnect.setWithPriority', priority, false);\r\n var deferred = new Deferred();\r\n repoOnDisconnectSetWithPriority(this._repo, this._path, value, priority, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n };\r\n /**\r\n * Writes multiple values at this location when the client is disconnected (due\r\n * to closing the browser, navigating to a new page, or network issues).\r\n *\r\n * The `values` argument contains multiple property-value pairs that will be\r\n * written to the Database together. Each child property can either be a simple\r\n * property (for example, \"name\") or a relative path (for example, \"name/first\")\r\n * from the current location to the data to update.\r\n *\r\n * As opposed to the `set()` method, `update()` can be use to selectively update\r\n * only the referenced properties at the current location (instead of replacing\r\n * all the child properties at the current location).\r\n *\r\n * @param values - Object containing multiple values.\r\n * @returns Resolves when synchronization to the Database is complete.\r\n */\r\n OnDisconnect.prototype.update = function (values) {\r\n validateWritablePath('OnDisconnect.update', this._path);\r\n validateFirebaseMergeDataArg('OnDisconnect.update', values, this._path, false);\r\n var deferred = new Deferred();\r\n repoOnDisconnectUpdate(this._repo, this._path, values, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n };\r\n return OnDisconnect;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nvar QueryImpl = /** @class */ (function () {\r\n /**\r\n * @hideconstructor\r\n */\r\n function QueryImpl(_repo, _path, _queryParams, _orderByCalled) {\r\n this._repo = _repo;\r\n this._path = _path;\r\n this._queryParams = _queryParams;\r\n this._orderByCalled = _orderByCalled;\r\n }\r\n Object.defineProperty(QueryImpl.prototype, \"key\", {\r\n get: function () {\r\n if (pathIsEmpty(this._path)) {\r\n return null;\r\n }\r\n else {\r\n return pathGetBack(this._path);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(QueryImpl.prototype, \"ref\", {\r\n get: function () {\r\n return new ReferenceImpl(this._repo, this._path);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(QueryImpl.prototype, \"_queryIdentifier\", {\r\n get: function () {\r\n var obj = queryParamsGetQueryObject(this._queryParams);\r\n var id = ObjectToUniqueKey(obj);\r\n return id === '{}' ? 'default' : id;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(QueryImpl.prototype, \"_queryObject\", {\r\n /**\r\n * An object representation of the query parameters used by this Query.\r\n */\r\n get: function () {\r\n return queryParamsGetQueryObject(this._queryParams);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n QueryImpl.prototype.isEqual = function (other) {\r\n other = getModularInstance(other);\r\n if (!(other instanceof QueryImpl)) {\r\n return false;\r\n }\r\n var sameRepo = this._repo === other._repo;\r\n var samePath = pathEquals(this._path, other._path);\r\n var sameQueryIdentifier = this._queryIdentifier === other._queryIdentifier;\r\n return sameRepo && samePath && sameQueryIdentifier;\r\n };\r\n QueryImpl.prototype.toJSON = function () {\r\n return this.toString();\r\n };\r\n QueryImpl.prototype.toString = function () {\r\n return this._repo.toString() + pathToUrlEncodedString(this._path);\r\n };\r\n return QueryImpl;\r\n}());\r\n/**\r\n * Validates that no other order by call has been made\r\n */\r\nfunction validateNoPreviousOrderByCall(query, fnName) {\r\n if (query._orderByCalled === true) {\r\n throw new Error(fnName + \": You can't combine multiple orderBy calls.\");\r\n }\r\n}\r\n/**\r\n * Validates start/end values for queries.\r\n */\r\nfunction validateQueryEndpoints(params) {\r\n var startNode = null;\r\n var endNode = null;\r\n if (params.hasStart()) {\r\n startNode = params.getIndexStartValue();\r\n }\r\n if (params.hasEnd()) {\r\n endNode = params.getIndexEndValue();\r\n }\r\n if (params.getIndex() === KEY_INDEX) {\r\n var tooManyArgsError = 'Query: When ordering by key, you may only pass one argument to ' +\r\n 'startAt(), endAt(), or equalTo().';\r\n var wrongArgTypeError = 'Query: When ordering by key, the argument passed to startAt(), startAfter(), ' +\r\n 'endAt(), endBefore(), or equalTo() must be a string.';\r\n if (params.hasStart()) {\r\n var startName = params.getIndexStartName();\r\n if (startName !== MIN_NAME) {\r\n throw new Error(tooManyArgsError);\r\n }\r\n else if (typeof startNode !== 'string') {\r\n throw new Error(wrongArgTypeError);\r\n }\r\n }\r\n if (params.hasEnd()) {\r\n var endName = params.getIndexEndName();\r\n if (endName !== MAX_NAME) {\r\n throw new Error(tooManyArgsError);\r\n }\r\n else if (typeof endNode !== 'string') {\r\n throw new Error(wrongArgTypeError);\r\n }\r\n }\r\n }\r\n else if (params.getIndex() === PRIORITY_INDEX) {\r\n if ((startNode != null && !isValidPriority(startNode)) ||\r\n (endNode != null && !isValidPriority(endNode))) {\r\n throw new Error('Query: When ordering by priority, the first argument passed to startAt(), ' +\r\n 'startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value ' +\r\n '(null, a number, or a string).');\r\n }\r\n }\r\n else {\r\n assert(params.getIndex() instanceof PathIndex ||\r\n params.getIndex() === VALUE_INDEX, 'unknown index type.');\r\n if ((startNode != null && typeof startNode === 'object') ||\r\n (endNode != null && typeof endNode === 'object')) {\r\n throw new Error('Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or ' +\r\n 'equalTo() cannot be an object.');\r\n }\r\n }\r\n}\r\n/**\r\n * Validates that limit* has been called with the correct combination of parameters\r\n */\r\nfunction validateLimit(params) {\r\n if (params.hasStart() &&\r\n params.hasEnd() &&\r\n params.hasLimit() &&\r\n !params.hasAnchoredLimit()) {\r\n throw new Error(\"Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use \" +\r\n 'limitToFirst() or limitToLast() instead.');\r\n }\r\n}\r\n/**\r\n * @internal\r\n */\r\nvar ReferenceImpl = /** @class */ (function (_super) {\r\n __extends(ReferenceImpl, _super);\r\n /** @hideconstructor */\r\n function ReferenceImpl(repo, path) {\r\n return _super.call(this, repo, path, new QueryParams(), false) || this;\r\n }\r\n Object.defineProperty(ReferenceImpl.prototype, \"parent\", {\r\n get: function () {\r\n var parentPath = pathParent(this._path);\r\n return parentPath === null\r\n ? null\r\n : new ReferenceImpl(this._repo, parentPath);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReferenceImpl.prototype, \"root\", {\r\n get: function () {\r\n var ref = this;\r\n while (ref.parent !== null) {\r\n ref = ref.parent;\r\n }\r\n return ref;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ReferenceImpl;\r\n}(QueryImpl));\r\n/**\r\n * A `DataSnapshot` contains data from a Database location.\r\n *\r\n * Any time you read data from the Database, you receive the data as a\r\n * `DataSnapshot`. A `DataSnapshot` is passed to the event callbacks you attach\r\n * with `on()` or `once()`. You can extract the contents of the snapshot as a\r\n * JavaScript object by calling the `val()` method. Alternatively, you can\r\n * traverse into the snapshot by calling `child()` to return child snapshots\r\n * (which you could then call `val()` on).\r\n *\r\n * A `DataSnapshot` is an efficiently generated, immutable copy of the data at\r\n * a Database location. It cannot be modified and will never change (to modify\r\n * data, you always call the `set()` method on a `Reference` directly).\r\n */\r\nvar DataSnapshot$1 = /** @class */ (function () {\r\n /**\r\n * @param _node - A SnapshotNode to wrap.\r\n * @param ref - The location this snapshot came from.\r\n * @param _index - The iteration order for this snapshot\r\n * @hideconstructor\r\n */\r\n function DataSnapshot(_node, \r\n /**\r\n * The location of this DataSnapshot.\r\n */\r\n ref, _index) {\r\n this._node = _node;\r\n this.ref = ref;\r\n this._index = _index;\r\n }\r\n Object.defineProperty(DataSnapshot.prototype, \"priority\", {\r\n /**\r\n * Gets the priority value of the data in this `DataSnapshot`.\r\n *\r\n * Applications need not use priority but can order collections by\r\n * ordinary properties (see\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sorting_and_filtering_data |Sorting and filtering data}\r\n * ).\r\n */\r\n get: function () {\r\n // typecast here because we never return deferred values or internal priorities (MAX_PRIORITY)\r\n return this._node.getPriority().val();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSnapshot.prototype, \"key\", {\r\n /**\r\n * The key (last part of the path) of the location of this `DataSnapshot`.\r\n *\r\n * The last token in a Database location is considered its key. For example,\r\n * \"ada\" is the key for the /users/ada/ node. Accessing the key on any\r\n * `DataSnapshot` will return the key for the location that generated it.\r\n * However, accessing the key on the root URL of a Database will return\r\n * `null`.\r\n */\r\n get: function () {\r\n return this.ref.key;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataSnapshot.prototype, \"size\", {\r\n /** Returns the number of child properties of this `DataSnapshot`. */\r\n get: function () {\r\n return this._node.numChildren();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Gets another `DataSnapshot` for the location at the specified relative path.\r\n *\r\n * Passing a relative path to the `child()` method of a DataSnapshot returns\r\n * another `DataSnapshot` for the location at the specified relative path. The\r\n * relative path can either be a simple child name (for example, \"ada\") or a\r\n * deeper, slash-separated path (for example, \"ada/name/first\"). If the child\r\n * location has no data, an empty `DataSnapshot` (that is, a `DataSnapshot`\r\n * whose value is `null`) is returned.\r\n *\r\n * @param path - A relative path to the location of child data.\r\n */\r\n DataSnapshot.prototype.child = function (path) {\r\n var childPath = new Path(path);\r\n var childRef = child(this.ref, path);\r\n return new DataSnapshot(this._node.getChild(childPath), childRef, PRIORITY_INDEX);\r\n };\r\n /**\r\n * Returns true if this `DataSnapshot` contains any data. It is slightly more\r\n * efficient than using `snapshot.val() !== null`.\r\n */\r\n DataSnapshot.prototype.exists = function () {\r\n return !this._node.isEmpty();\r\n };\r\n /**\r\n * Exports the entire contents of the DataSnapshot as a JavaScript object.\r\n *\r\n * The `exportVal()` method is similar to `val()`, except priority information\r\n * is included (if available), making it suitable for backing up your data.\r\n *\r\n * @returns The DataSnapshot's contents as a JavaScript value (Object,\r\n * Array, string, number, boolean, or `null`).\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n DataSnapshot.prototype.exportVal = function () {\r\n return this._node.val(true);\r\n };\r\n /**\r\n * Enumerates the top-level children in the `DataSnapshot`.\r\n *\r\n * Because of the way JavaScript objects work, the ordering of data in the\r\n * JavaScript object returned by `val()` is not guaranteed to match the\r\n * ordering on the server nor the ordering of `onChildAdded()` events. That is\r\n * where `forEach()` comes in handy. It guarantees the children of a\r\n * `DataSnapshot` will be iterated in their query order.\r\n *\r\n * If no explicit `orderBy*()` method is used, results are returned\r\n * ordered by key (unless priorities are used, in which case, results are\r\n * returned by priority).\r\n *\r\n * @param action - A function that will be called for each child DataSnapshot.\r\n * The callback can return true to cancel further enumeration.\r\n * @returns true if enumeration was canceled due to your callback returning\r\n * true.\r\n */\r\n DataSnapshot.prototype.forEach = function (action) {\r\n var _this = this;\r\n if (this._node.isLeafNode()) {\r\n return false;\r\n }\r\n var childrenNode = this._node;\r\n // Sanitize the return value to a boolean. ChildrenNode.forEachChild has a weird return type...\r\n return !!childrenNode.forEachChild(this._index, function (key, node) {\r\n return action(new DataSnapshot(node, child(_this.ref, key), PRIORITY_INDEX));\r\n });\r\n };\r\n /**\r\n * Returns true if the specified child path has (non-null) data.\r\n *\r\n * @param path - A relative path to the location of a potential child.\r\n * @returns `true` if data exists at the specified child path; else\r\n * `false`.\r\n */\r\n DataSnapshot.prototype.hasChild = function (path) {\r\n var childPath = new Path(path);\r\n return !this._node.getChild(childPath).isEmpty();\r\n };\r\n /**\r\n * Returns whether or not the `DataSnapshot` has any non-`null` child\r\n * properties.\r\n *\r\n * You can use `hasChildren()` to determine if a `DataSnapshot` has any\r\n * children. If it does, you can enumerate them using `forEach()`. If it\r\n * doesn't, then either this snapshot contains a primitive value (which can be\r\n * retrieved with `val()`) or it is empty (in which case, `val()` will return\r\n * `null`).\r\n *\r\n * @returns true if this snapshot has any children; else false.\r\n */\r\n DataSnapshot.prototype.hasChildren = function () {\r\n if (this._node.isLeafNode()) {\r\n return false;\r\n }\r\n else {\r\n return !this._node.isEmpty();\r\n }\r\n };\r\n /**\r\n * Returns a JSON-serializable representation of this object.\r\n */\r\n DataSnapshot.prototype.toJSON = function () {\r\n return this.exportVal();\r\n };\r\n /**\r\n * Extracts a JavaScript value from a `DataSnapshot`.\r\n *\r\n * Depending on the data in a `DataSnapshot`, the `val()` method may return a\r\n * scalar type (string, number, or boolean), an array, or an object. It may\r\n * also return null, indicating that the `DataSnapshot` is empty (contains no\r\n * data).\r\n *\r\n * @returns The DataSnapshot's contents as a JavaScript value (Object,\r\n * Array, string, number, boolean, or `null`).\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n DataSnapshot.prototype.val = function () {\r\n return this._node.val();\r\n };\r\n return DataSnapshot;\r\n}());\r\n/**\r\n *\r\n * Returns a `Reference` representing the location in the Database\r\n * corresponding to the provided path. If no path is provided, the `Reference`\r\n * will point to the root of the Database.\r\n *\r\n * @param db - The database instance to obtain a reference for.\r\n * @param path - Optional path representing the location the returned\r\n * `Reference` will point. If not provided, the returned `Reference` will\r\n * point to the root of the Database.\r\n * @returns If a path is provided, a `Reference`\r\n * pointing to the provided path. Otherwise, a `Reference` pointing to the\r\n * root of the Database.\r\n */\r\nfunction ref(db, path) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('ref');\r\n return path !== undefined ? child(db._root, path) : db._root;\r\n}\r\n/**\r\n * Returns a `Reference` representing the location in the Database\r\n * corresponding to the provided Firebase URL.\r\n *\r\n * An exception is thrown if the URL is not a valid Firebase Database URL or it\r\n * has a different domain than the current `Database` instance.\r\n *\r\n * Note that all query parameters (`orderBy`, `limitToLast`, etc.) are ignored\r\n * and are not applied to the returned `Reference`.\r\n *\r\n * @param db - The database instance to obtain a reference for.\r\n * @param url - The Firebase URL at which the returned `Reference` will\r\n * point.\r\n * @returns A `Reference` pointing to the provided\r\n * Firebase URL.\r\n */\r\nfunction refFromURL(db, url) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('refFromURL');\r\n var parsedURL = parseRepoInfo(url, db._repo.repoInfo_.nodeAdmin);\r\n validateUrl('refFromURL', parsedURL);\r\n var repoInfo = parsedURL.repoInfo;\r\n if (!db._repo.repoInfo_.isCustomHost() &&\r\n repoInfo.host !== db._repo.repoInfo_.host) {\r\n fatal('refFromURL' +\r\n ': Host name does not match the current database: ' +\r\n '(found ' +\r\n repoInfo.host +\r\n ' but expected ' +\r\n db._repo.repoInfo_.host +\r\n ')');\r\n }\r\n return ref(db, parsedURL.path.toString());\r\n}\r\n/**\r\n * Gets a `Reference` for the location at the specified relative path.\r\n *\r\n * The relative path can either be a simple child name (for example, \"ada\") or\r\n * a deeper slash-separated path (for example, \"ada/name/first\").\r\n *\r\n * @param parent - The parent location.\r\n * @param path - A relative path from this location to the desired child\r\n * location.\r\n * @returns The specified child location.\r\n */\r\nfunction child(parent, path) {\r\n parent = getModularInstance(parent);\r\n if (pathGetFront(parent._path) === null) {\r\n validateRootPathString('child', 'path', path, false);\r\n }\r\n else {\r\n validatePathString('child', 'path', path, false);\r\n }\r\n return new ReferenceImpl(parent._repo, pathChild(parent._path, path));\r\n}\r\n/**\r\n * Generates a new child location using a unique key and returns its\r\n * `Reference`.\r\n *\r\n * This is the most common pattern for adding data to a collection of items.\r\n *\r\n * If you provide a value to `push()`, the value is written to the\r\n * generated location. If you don't pass a value, nothing is written to the\r\n * database and the child remains empty (but you can use the `Reference`\r\n * elsewhere).\r\n *\r\n * The unique keys generated by `push()` are ordered by the current time, so the\r\n * resulting list of items is chronologically sorted. The keys are also\r\n * designed to be unguessable (they contain 72 random bits of entropy).\r\n *\r\n * See {@link https://firebase.google.com/docs/database/web/lists-of-data#append_to_a_list_of_data | Append to a list of data}\r\n *
See {@link ttps://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html | The 2^120 Ways to Ensure Unique Identifiers}\r\n *\r\n * @param parent - The parent location.\r\n * @param value - Optional value to be written at the generated location.\r\n * @returns Combined `Promise` and `Reference`; resolves when write is complete,\r\n * but can be used immediately as the `Reference` to the child location.\r\n */\r\nfunction push(parent, value) {\r\n parent = getModularInstance(parent);\r\n validateWritablePath('push', parent._path);\r\n validateFirebaseDataArg('push', value, parent._path, true);\r\n var now = repoServerTime(parent._repo);\r\n var name = nextPushId(now);\r\n // push() returns a ThennableReference whose promise is fulfilled with a\r\n // regular Reference. We use child() to create handles to two different\r\n // references. The first is turned into a ThennableReference below by adding\r\n // then() and catch() methods and is used as the return value of push(). The\r\n // second remains a regular Reference and is used as the fulfilled value of\r\n // the first ThennableReference.\r\n var thennablePushRef = child(parent, name);\r\n var pushRef = child(parent, name);\r\n var promise;\r\n if (value != null) {\r\n promise = set(pushRef, value).then(function () { return pushRef; });\r\n }\r\n else {\r\n promise = Promise.resolve(pushRef);\r\n }\r\n thennablePushRef.then = promise.then.bind(promise);\r\n thennablePushRef.catch = promise.then.bind(promise, undefined);\r\n return thennablePushRef;\r\n}\r\n/**\r\n * Removes the data at this Database location.\r\n *\r\n * Any data at child locations will also be deleted.\r\n *\r\n * The effect of the remove will be visible immediately and the corresponding\r\n * event 'value' will be triggered. Synchronization of the remove to the\r\n * Firebase servers will also be started, and the returned Promise will resolve\r\n * when complete. If provided, the onComplete callback will be called\r\n * asynchronously after synchronization has finished.\r\n *\r\n * @param ref - The location to remove.\r\n * @returns Resolves when remove on server is complete.\r\n */\r\nfunction remove(ref) {\r\n validateWritablePath('remove', ref._path);\r\n return set(ref, null);\r\n}\r\n/**\r\n * Writes data to this Database location.\r\n *\r\n * This will overwrite any data at this location and all child locations.\r\n *\r\n * The effect of the write will be visible immediately, and the corresponding\r\n * events (\"value\", \"child_added\", etc.) will be triggered. Synchronization of\r\n * the data to the Firebase servers will also be started, and the returned\r\n * Promise will resolve when complete. If provided, the `onComplete` callback\r\n * will be called asynchronously after synchronization has finished.\r\n *\r\n * Passing `null` for the new value is equivalent to calling `remove()`; namely,\r\n * all data at this location and all child locations will be deleted.\r\n *\r\n * `set()` will remove any priority stored at this location, so if priority is\r\n * meant to be preserved, you need to use `setWithPriority()` instead.\r\n *\r\n * Note that modifying data with `set()` will cancel any pending transactions\r\n * at that location, so extreme care should be taken if mixing `set()` and\r\n * `transaction()` to modify the same data.\r\n *\r\n * A single `set()` will generate a single \"value\" event at the location where\r\n * the `set()` was performed.\r\n *\r\n * @param ref - The location to write to.\r\n * @param value - The value to be written (string, number, boolean, object,\r\n * array, or null).\r\n * @returns Resolves when write to server is complete.\r\n */\r\nfunction set(ref, value) {\r\n ref = getModularInstance(ref);\r\n validateWritablePath('set', ref._path);\r\n validateFirebaseDataArg('set', value, ref._path, false);\r\n var deferred = new Deferred();\r\n repoSetWithPriority(ref._repo, ref._path, value, \r\n /*priority=*/ null, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n}\r\n/**\r\n * Sets a priority for the data at this Database location.\r\n *\r\n * Applications need not use priority but can order collections by\r\n * ordinary properties (see\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sorting_and_filtering_data | Sorting and filtering data}\r\n * ).\r\n *\r\n * @param ref - The location to write to.\r\n * @param priority - The priority to be written (string, number, or null).\r\n * @returns Resolves when write to server is complete.\r\n */\r\nfunction setPriority(ref, priority) {\r\n ref = getModularInstance(ref);\r\n validateWritablePath('setPriority', ref._path);\r\n validatePriority('setPriority', priority, false);\r\n var deferred = new Deferred();\r\n repoSetWithPriority(ref._repo, pathChild(ref._path, '.priority'), priority, null, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n}\r\n/**\r\n * Writes data the Database location. Like `set()` but also specifies the\r\n * priority for that data.\r\n *\r\n * Applications need not use priority but can order collections by\r\n * ordinary properties (see\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sorting_and_filtering_data | Sorting and filtering data}\r\n * ).\r\n *\r\n * @param ref - The location to write to.\r\n * @param value - The value to be written (string, number, boolean, object,\r\n * array, or null).\r\n * @param priority - The priority to be written (string, number, or null).\r\n * @returns Resolves when write to server is complete.\r\n */\r\nfunction setWithPriority(ref, value, priority) {\r\n validateWritablePath('setWithPriority', ref._path);\r\n validateFirebaseDataArg('setWithPriority', value, ref._path, false);\r\n validatePriority('setWithPriority', priority, false);\r\n if (ref.key === '.length' || ref.key === '.keys') {\r\n throw 'setWithPriority failed: ' + ref.key + ' is a read-only object.';\r\n }\r\n var deferred = new Deferred();\r\n repoSetWithPriority(ref._repo, ref._path, value, priority, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n}\r\n/**\r\n * Writes multiple values to the Database at once.\r\n *\r\n * The `values` argument contains multiple property-value pairs that will be\r\n * written to the Database together. Each child property can either be a simple\r\n * property (for example, \"name\") or a relative path (for example,\r\n * \"name/first\") from the current location to the data to update.\r\n *\r\n * As opposed to the `set()` method, `update()` can be use to selectively update\r\n * only the referenced properties at the current location (instead of replacing\r\n * all the child properties at the current location).\r\n *\r\n * The effect of the write will be visible immediately, and the corresponding\r\n * events ('value', 'child_added', etc.) will be triggered. Synchronization of\r\n * the data to the Firebase servers will also be started, and the returned\r\n * Promise will resolve when complete. If provided, the `onComplete` callback\r\n * will be called asynchronously after synchronization has finished.\r\n *\r\n * A single `update()` will generate a single \"value\" event at the location\r\n * where the `update()` was performed, regardless of how many children were\r\n * modified.\r\n *\r\n * Note that modifying data with `update()` will cancel any pending\r\n * transactions at that location, so extreme care should be taken if mixing\r\n * `update()` and `transaction()` to modify the same data.\r\n *\r\n * Passing `null` to `update()` will remove the data at this location.\r\n *\r\n * See\r\n * {@link https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html | Introducing multi-location updates and more}.\r\n *\r\n * @param ref - The location to write to.\r\n * @param values - Object containing multiple values.\r\n * @returns Resolves when update on server is complete.\r\n */\r\nfunction update(ref, values) {\r\n validateFirebaseMergeDataArg('update', values, ref._path, false);\r\n var deferred = new Deferred();\r\n repoUpdate(ref._repo, ref._path, values, deferred.wrapCallback(function () { }));\r\n return deferred.promise;\r\n}\r\n/**\r\n * Gets the most up-to-date result for this query.\r\n *\r\n * @param query - The query to run.\r\n * @returns A promise which resolves to the resulting DataSnapshot if a value is\r\n * available, or rejects if the client is unable to return a value (e.g., if the\r\n * server is unreachable and there is nothing cached).\r\n */\r\nfunction get(query) {\r\n query = getModularInstance(query);\r\n return repoGetValue(query._repo, query).then(function (node) {\r\n return new DataSnapshot$1(node, new ReferenceImpl(query._repo, query._path), query._queryParams.getIndex());\r\n });\r\n}\r\n/**\r\n * Represents registration for 'value' events.\r\n */\r\nvar ValueEventRegistration = /** @class */ (function () {\r\n function ValueEventRegistration(callbackContext) {\r\n this.callbackContext = callbackContext;\r\n }\r\n ValueEventRegistration.prototype.respondsTo = function (eventType) {\r\n return eventType === 'value';\r\n };\r\n ValueEventRegistration.prototype.createEvent = function (change, query) {\r\n var index = query._queryParams.getIndex();\r\n return new DataEvent('value', this, new DataSnapshot$1(change.snapshotNode, new ReferenceImpl(query._repo, query._path), index));\r\n };\r\n ValueEventRegistration.prototype.getEventRunner = function (eventData) {\r\n var _this = this;\r\n if (eventData.getEventType() === 'cancel') {\r\n return function () {\r\n return _this.callbackContext.onCancel(eventData.error);\r\n };\r\n }\r\n else {\r\n return function () {\r\n return _this.callbackContext.onValue(eventData.snapshot, null);\r\n };\r\n }\r\n };\r\n ValueEventRegistration.prototype.createCancelEvent = function (error, path) {\r\n if (this.callbackContext.hasCancelCallback) {\r\n return new CancelEvent(this, error, path);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n ValueEventRegistration.prototype.matches = function (other) {\r\n if (!(other instanceof ValueEventRegistration)) {\r\n return false;\r\n }\r\n else if (!other.callbackContext || !this.callbackContext) {\r\n // If no callback specified, we consider it to match any callback.\r\n return true;\r\n }\r\n else {\r\n return other.callbackContext.matches(this.callbackContext);\r\n }\r\n };\r\n ValueEventRegistration.prototype.hasAnyCallback = function () {\r\n return this.callbackContext !== null;\r\n };\r\n return ValueEventRegistration;\r\n}());\r\n/**\r\n * Represents the registration of a child_x event.\r\n */\r\nvar ChildEventRegistration = /** @class */ (function () {\r\n function ChildEventRegistration(eventType, callbackContext) {\r\n this.eventType = eventType;\r\n this.callbackContext = callbackContext;\r\n }\r\n ChildEventRegistration.prototype.respondsTo = function (eventType) {\r\n var eventToCheck = eventType === 'children_added' ? 'child_added' : eventType;\r\n eventToCheck =\r\n eventToCheck === 'children_removed' ? 'child_removed' : eventToCheck;\r\n return this.eventType === eventToCheck;\r\n };\r\n ChildEventRegistration.prototype.createCancelEvent = function (error, path) {\r\n if (this.callbackContext.hasCancelCallback) {\r\n return new CancelEvent(this, error, path);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n ChildEventRegistration.prototype.createEvent = function (change, query) {\r\n assert(change.childName != null, 'Child events should have a childName.');\r\n var childRef = child(new ReferenceImpl(query._repo, query._path), change.childName);\r\n var index = query._queryParams.getIndex();\r\n return new DataEvent(change.type, this, new DataSnapshot$1(change.snapshotNode, childRef, index), change.prevName);\r\n };\r\n ChildEventRegistration.prototype.getEventRunner = function (eventData) {\r\n var _this = this;\r\n if (eventData.getEventType() === 'cancel') {\r\n return function () {\r\n return _this.callbackContext.onCancel(eventData.error);\r\n };\r\n }\r\n else {\r\n return function () {\r\n return _this.callbackContext.onValue(eventData.snapshot, eventData.prevName);\r\n };\r\n }\r\n };\r\n ChildEventRegistration.prototype.matches = function (other) {\r\n if (other instanceof ChildEventRegistration) {\r\n return (this.eventType === other.eventType &&\r\n (!this.callbackContext ||\r\n !other.callbackContext ||\r\n this.callbackContext.matches(other.callbackContext)));\r\n }\r\n return false;\r\n };\r\n ChildEventRegistration.prototype.hasAnyCallback = function () {\r\n return !!this.callbackContext;\r\n };\r\n return ChildEventRegistration;\r\n}());\r\nfunction addEventListener(query, eventType, callback, cancelCallbackOrListenOptions, options) {\r\n var cancelCallback;\r\n if (typeof cancelCallbackOrListenOptions === 'object') {\r\n cancelCallback = undefined;\r\n options = cancelCallbackOrListenOptions;\r\n }\r\n if (typeof cancelCallbackOrListenOptions === 'function') {\r\n cancelCallback = cancelCallbackOrListenOptions;\r\n }\r\n if (options && options.onlyOnce) {\r\n var userCallback_1 = callback;\r\n var onceCallback = function (dataSnapshot, previousChildName) {\r\n repoRemoveEventCallbackForQuery(query._repo, query, container);\r\n userCallback_1(dataSnapshot, previousChildName);\r\n };\r\n onceCallback.userCallback = callback.userCallback;\r\n onceCallback.context = callback.context;\r\n callback = onceCallback;\r\n }\r\n var callbackContext = new CallbackContext(callback, cancelCallback || undefined);\r\n var container = eventType === 'value'\r\n ? new ValueEventRegistration(callbackContext)\r\n : new ChildEventRegistration(eventType, callbackContext);\r\n repoAddEventCallbackForQuery(query._repo, query, container);\r\n return function () { return repoRemoveEventCallbackForQuery(query._repo, query, container); };\r\n}\r\nfunction onValue(query, callback, cancelCallbackOrListenOptions, options) {\r\n return addEventListener(query, 'value', callback, cancelCallbackOrListenOptions, options);\r\n}\r\nfunction onChildAdded(query, callback, cancelCallbackOrListenOptions, options) {\r\n return addEventListener(query, 'child_added', callback, cancelCallbackOrListenOptions, options);\r\n}\r\nfunction onChildChanged(query, callback, cancelCallbackOrListenOptions, options) {\r\n return addEventListener(query, 'child_changed', callback, cancelCallbackOrListenOptions, options);\r\n}\r\nfunction onChildMoved(query, callback, cancelCallbackOrListenOptions, options) {\r\n return addEventListener(query, 'child_moved', callback, cancelCallbackOrListenOptions, options);\r\n}\r\nfunction onChildRemoved(query, callback, cancelCallbackOrListenOptions, options) {\r\n return addEventListener(query, 'child_removed', callback, cancelCallbackOrListenOptions, options);\r\n}\r\n/**\r\n * Detaches a callback previously attached with `on()`.\r\n *\r\n * Detach a callback previously attached with `on()`. Note that if `on()` was\r\n * called multiple times with the same eventType and callback, the callback\r\n * will be called multiple times for each event, and `off()` must be called\r\n * multiple times to remove the callback. Calling `off()` on a parent listener\r\n * will not automatically remove listeners registered on child nodes, `off()`\r\n * must also be called on any child listeners to remove the callback.\r\n *\r\n * If a callback is not specified, all callbacks for the specified eventType\r\n * will be removed. Similarly, if no eventType is specified, all callbacks\r\n * for the `Reference` will be removed.\r\n *\r\n * Individual listeners can also be removed by invoking their unsubscribe\r\n * callbacks.\r\n *\r\n * @param query - The query that the listener was registered with.\r\n * @param eventType - One of the following strings: \"value\", \"child_added\",\r\n * \"child_changed\", \"child_removed\", or \"child_moved.\" If omitted, all callbacks\r\n * for the `Reference` will be removed.\r\n * @param callback - The callback function that was passed to `on()` or\r\n * `undefined` to remove all callbacks.\r\n */\r\nfunction off(query, eventType, callback) {\r\n var container = null;\r\n var expCallback = callback ? new CallbackContext(callback) : null;\r\n if (eventType === 'value') {\r\n container = new ValueEventRegistration(expCallback);\r\n }\r\n else if (eventType) {\r\n container = new ChildEventRegistration(eventType, expCallback);\r\n }\r\n repoRemoveEventCallbackForQuery(query._repo, query, container);\r\n}\r\n/**\r\n * A `QueryConstraint` is used to narrow the set of documents returned by a\r\n * Database query. `QueryConstraint`s are created by invoking {@link endAt},\r\n * {@link endBefore}, {@link startAt}, {@link startAfter}, {@link\r\n * limitToFirst}, {@link limitToLast}, {@link orderByChild},\r\n * {@link orderByChild}, {@link orderByKey} , {@link orderByPriority} ,\r\n * {@link orderByValue} or {@link equalTo} and\r\n * can then be passed to {@link query} to create a new query instance that\r\n * also contains this `QueryConstraint`.\r\n */\r\nvar QueryConstraint = /** @class */ (function () {\r\n function QueryConstraint() {\r\n }\r\n return QueryConstraint;\r\n}());\r\nvar QueryEndAtConstraint = /** @class */ (function (_super) {\r\n __extends(QueryEndAtConstraint, _super);\r\n function QueryEndAtConstraint(_value, _key) {\r\n var _this = _super.call(this) || this;\r\n _this._value = _value;\r\n _this._key = _key;\r\n return _this;\r\n }\r\n QueryEndAtConstraint.prototype._apply = function (query) {\r\n validateFirebaseDataArg('endAt', this._value, query._path, true);\r\n var newParams = queryParamsEndAt(query._queryParams, this._value, this._key);\r\n validateLimit(newParams);\r\n validateQueryEndpoints(newParams);\r\n if (query._queryParams.hasEnd()) {\r\n throw new Error('endAt: Starting point was already set (by another call to endAt, ' +\r\n 'endBefore or equalTo).');\r\n }\r\n return new QueryImpl(query._repo, query._path, newParams, query._orderByCalled);\r\n };\r\n return QueryEndAtConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a `QueryConstraint` with the specified ending point.\r\n *\r\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\r\n * allows you to choose arbitrary starting and ending points for your queries.\r\n *\r\n * The ending point is inclusive, so children with exactly the specified value\r\n * will be included in the query. The optional key argument can be used to\r\n * further limit the range of the query. If it is specified, then children that\r\n * have exactly the specified value must also have a key name less than or equal\r\n * to the specified key.\r\n *\r\n * You can read more about `endAt()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\r\n *\r\n * @param value - The value to end at. The argument type depends on which\r\n * `orderBy*()` function was used in this query. Specify a value that matches\r\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\r\n * value must be a string.\r\n * @param key - The child key to end at, among the children with the previously\r\n * specified priority. This argument is only allowed if ordering by child,\r\n * value, or priority.\r\n */\r\nfunction endAt(value, key) {\r\n validateKey('endAt', 'key', key, true);\r\n return new QueryEndAtConstraint(value, key);\r\n}\r\nvar QueryEndBeforeConstraint = /** @class */ (function (_super) {\r\n __extends(QueryEndBeforeConstraint, _super);\r\n function QueryEndBeforeConstraint(_value, _key) {\r\n var _this = _super.call(this) || this;\r\n _this._value = _value;\r\n _this._key = _key;\r\n return _this;\r\n }\r\n QueryEndBeforeConstraint.prototype._apply = function (query) {\r\n validateFirebaseDataArg('endBefore', this._value, query._path, false);\r\n var newParams = queryParamsEndBefore(query._queryParams, this._value, this._key);\r\n validateLimit(newParams);\r\n validateQueryEndpoints(newParams);\r\n if (query._queryParams.hasEnd()) {\r\n throw new Error('endBefore: Starting point was already set (by another call to endAt, ' +\r\n 'endBefore or equalTo).');\r\n }\r\n return new QueryImpl(query._repo, query._path, newParams, query._orderByCalled);\r\n };\r\n return QueryEndBeforeConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a `QueryConstraint` with the specified ending point (exclusive).\r\n *\r\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\r\n * allows you to choose arbitrary starting and ending points for your queries.\r\n *\r\n * The ending point is exclusive. If only a value is provided, children\r\n * with a value less than the specified value will be included in the query.\r\n * If a key is specified, then children must have a value lesss than or equal\r\n * to the specified value and a a key name less than the specified key.\r\n *\r\n * @param value - The value to end before. The argument type depends on which\r\n * `orderBy*()` function was used in this query. Specify a value that matches\r\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\r\n * value must be a string.\r\n * @param key - The child key to end before, among the children with the\r\n * previously specified priority. This argument is only allowed if ordering by\r\n * child, value, or priority.\r\n */\r\nfunction endBefore(value, key) {\r\n validateKey('endBefore', 'key', key, true);\r\n return new QueryEndBeforeConstraint(value, key);\r\n}\r\nvar QueryStartAtConstraint = /** @class */ (function (_super) {\r\n __extends(QueryStartAtConstraint, _super);\r\n function QueryStartAtConstraint(_value, _key) {\r\n var _this = _super.call(this) || this;\r\n _this._value = _value;\r\n _this._key = _key;\r\n return _this;\r\n }\r\n QueryStartAtConstraint.prototype._apply = function (query) {\r\n validateFirebaseDataArg('startAt', this._value, query._path, true);\r\n var newParams = queryParamsStartAt(query._queryParams, this._value, this._key);\r\n validateLimit(newParams);\r\n validateQueryEndpoints(newParams);\r\n if (query._queryParams.hasStart()) {\r\n throw new Error('startAt: Starting point was already set (by another call to startAt, ' +\r\n 'startBefore or equalTo).');\r\n }\r\n return new QueryImpl(query._repo, query._path, newParams, query._orderByCalled);\r\n };\r\n return QueryStartAtConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a `QueryConstraint` with the specified starting point.\r\n *\r\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\r\n * allows you to choose arbitrary starting and ending points for your queries.\r\n *\r\n * The starting point is inclusive, so children with exactly the specified value\r\n * will be included in the query. The optional key argument can be used to\r\n * further limit the range of the query. If it is specified, then children that\r\n * have exactly the specified value must also have a key name greater than or\r\n * equal to the specified key.\r\n *\r\n * You can read more about `startAt()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\r\n *\r\n * @param value - The value to start at. The argument type depends on which\r\n * `orderBy*()` function was used in this query. Specify a value that matches\r\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\r\n * value must be a string.\r\n * @param key - The child key to start at. This argument is only allowed if\r\n * ordering by child, value, or priority.\r\n */\r\nfunction startAt(value, key) {\r\n if (value === void 0) { value = null; }\r\n validateKey('startAt', 'key', key, true);\r\n return new QueryStartAtConstraint(value, key);\r\n}\r\nvar QueryStartAfterConstraint = /** @class */ (function (_super) {\r\n __extends(QueryStartAfterConstraint, _super);\r\n function QueryStartAfterConstraint(_value, _key) {\r\n var _this = _super.call(this) || this;\r\n _this._value = _value;\r\n _this._key = _key;\r\n return _this;\r\n }\r\n QueryStartAfterConstraint.prototype._apply = function (query) {\r\n validateFirebaseDataArg('startAfter', this._value, query._path, false);\r\n var newParams = queryParamsStartAfter(query._queryParams, this._value, this._key);\r\n validateLimit(newParams);\r\n validateQueryEndpoints(newParams);\r\n if (query._queryParams.hasStart()) {\r\n throw new Error('startAfter: Starting point was already set (by another call to startAt, ' +\r\n 'startAfter, or equalTo).');\r\n }\r\n return new QueryImpl(query._repo, query._path, newParams, query._orderByCalled);\r\n };\r\n return QueryStartAfterConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a `QueryConstraint` with the specified starting point (exclusive).\r\n *\r\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\r\n * allows you to choose arbitrary starting and ending points for your queries.\r\n *\r\n * The starting point is exclusive. If only a value is provided, children\r\n * with a value greater than the specified value will be included in the query.\r\n * If a key is specified, then children must have a value greater than or equal\r\n * to the specified value and a a key name greater than the specified key.\r\n *\r\n * @param value - The value to start after. The argument type depends on which\r\n * `orderBy*()` function was used in this query. Specify a value that matches\r\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\r\n * value must be a string.\r\n * @param key - The child key to start after. This argument is only allowed if\r\n * ordering by child, value, or priority.\r\n */\r\nfunction startAfter(value, key) {\r\n validateKey('startAfter', 'key', key, true);\r\n return new QueryStartAfterConstraint(value, key);\r\n}\r\nvar QueryLimitToFirstConstraint = /** @class */ (function (_super) {\r\n __extends(QueryLimitToFirstConstraint, _super);\r\n function QueryLimitToFirstConstraint(_limit) {\r\n var _this = _super.call(this) || this;\r\n _this._limit = _limit;\r\n return _this;\r\n }\r\n QueryLimitToFirstConstraint.prototype._apply = function (query) {\r\n if (query._queryParams.hasLimit()) {\r\n throw new Error('limitToFirst: Limit was already set (by another call to limitToFirst ' +\r\n 'or limitToLast).');\r\n }\r\n return new QueryImpl(query._repo, query._path, queryParamsLimitToFirst(query._queryParams, this._limit), query._orderByCalled);\r\n };\r\n return QueryLimitToFirstConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a new `QueryConstraint` that if limited to the first specific number\r\n * of children.\r\n *\r\n * The `limitToFirst()` method is used to set a maximum number of children to be\r\n * synced for a given callback. If we set a limit of 100, we will initially only\r\n * receive up to 100 `child_added` events. If we have fewer than 100 messages\r\n * stored in our Database, a `child_added` event will fire for each message.\r\n * However, if we have over 100 messages, we will only receive a `child_added`\r\n * event for the first 100 ordered messages. As items change, we will receive\r\n * `child_removed` events for each item that drops out of the active list so\r\n * that the total number stays at 100.\r\n *\r\n * You can read more about `limitToFirst()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\r\n *\r\n * @param limit - The maximum number of nodes to include in this query.\r\n */\r\nfunction limitToFirst(limit) {\r\n if (typeof limit !== 'number' || Math.floor(limit) !== limit || limit <= 0) {\r\n throw new Error('limitToFirst: First argument must be a positive integer.');\r\n }\r\n return new QueryLimitToFirstConstraint(limit);\r\n}\r\nvar QueryLimitToLastConstraint = /** @class */ (function (_super) {\r\n __extends(QueryLimitToLastConstraint, _super);\r\n function QueryLimitToLastConstraint(_limit) {\r\n var _this = _super.call(this) || this;\r\n _this._limit = _limit;\r\n return _this;\r\n }\r\n QueryLimitToLastConstraint.prototype._apply = function (query) {\r\n if (query._queryParams.hasLimit()) {\r\n throw new Error('limitToLast: Limit was already set (by another call to limitToFirst ' +\r\n 'or limitToLast).');\r\n }\r\n return new QueryImpl(query._repo, query._path, queryParamsLimitToLast(query._queryParams, this._limit), query._orderByCalled);\r\n };\r\n return QueryLimitToLastConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a new `QueryConstraint` that is limited to return only the last\r\n * specified number of children.\r\n *\r\n * The `limitToLast()` method is used to set a maximum number of children to be\r\n * synced for a given callback. If we set a limit of 100, we will initially only\r\n * receive up to 100 `child_added` events. If we have fewer than 100 messages\r\n * stored in our Database, a `child_added` event will fire for each message.\r\n * However, if we have over 100 messages, we will only receive a `child_added`\r\n * event for the last 100 ordered messages. As items change, we will receive\r\n * `child_removed` events for each item that drops out of the active list so\r\n * that the total number stays at 100.\r\n *\r\n * You can read more about `limitToLast()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\r\n *\r\n * @param limit - The maximum number of nodes to include in this query.\r\n */\r\nfunction limitToLast(limit) {\r\n if (typeof limit !== 'number' || Math.floor(limit) !== limit || limit <= 0) {\r\n throw new Error('limitToLast: First argument must be a positive integer.');\r\n }\r\n return new QueryLimitToLastConstraint(limit);\r\n}\r\nvar QueryOrderByChildConstraint = /** @class */ (function (_super) {\r\n __extends(QueryOrderByChildConstraint, _super);\r\n function QueryOrderByChildConstraint(_path) {\r\n var _this = _super.call(this) || this;\r\n _this._path = _path;\r\n return _this;\r\n }\r\n QueryOrderByChildConstraint.prototype._apply = function (query) {\r\n validateNoPreviousOrderByCall(query, 'orderByChild');\r\n var parsedPath = new Path(this._path);\r\n if (pathIsEmpty(parsedPath)) {\r\n throw new Error('orderByChild: cannot pass in empty path. Use orderByValue() instead.');\r\n }\r\n var index = new PathIndex(parsedPath);\r\n var newParams = queryParamsOrderBy(query._queryParams, index);\r\n validateQueryEndpoints(newParams);\r\n return new QueryImpl(query._repo, query._path, newParams, \r\n /*orderByCalled=*/ true);\r\n };\r\n return QueryOrderByChildConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a new `QueryConstraint` that orders by the specified child key.\r\n *\r\n * Queries can only order by one key at a time. Calling `orderByChild()`\r\n * multiple times on the same query is an error.\r\n *\r\n * Firebase queries allow you to order your data by any child key on the fly.\r\n * However, if you know in advance what your indexes will be, you can define\r\n * them via the .indexOn rule in your Security Rules for better performance. See\r\n * the{@link https://firebase.google.com/docs/database/security/indexing-data}\r\n * rule for more information.\r\n *\r\n * You can read more about `orderByChild()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sort_data | Sort data}.\r\n *\r\n * @param path - The path to order by.\r\n */\r\nfunction orderByChild(path) {\r\n if (path === '$key') {\r\n throw new Error('orderByChild: \"$key\" is invalid. Use orderByKey() instead.');\r\n }\r\n else if (path === '$priority') {\r\n throw new Error('orderByChild: \"$priority\" is invalid. Use orderByPriority() instead.');\r\n }\r\n else if (path === '$value') {\r\n throw new Error('orderByChild: \"$value\" is invalid. Use orderByValue() instead.');\r\n }\r\n validatePathString('orderByChild', 'path', path, false);\r\n return new QueryOrderByChildConstraint(path);\r\n}\r\nvar QueryOrderByKeyConstraint = /** @class */ (function (_super) {\r\n __extends(QueryOrderByKeyConstraint, _super);\r\n function QueryOrderByKeyConstraint() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n QueryOrderByKeyConstraint.prototype._apply = function (query) {\r\n validateNoPreviousOrderByCall(query, 'orderByKey');\r\n var newParams = queryParamsOrderBy(query._queryParams, KEY_INDEX);\r\n validateQueryEndpoints(newParams);\r\n return new QueryImpl(query._repo, query._path, newParams, \r\n /*orderByCalled=*/ true);\r\n };\r\n return QueryOrderByKeyConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a new `QueryConstraint` that orders by the key.\r\n *\r\n * Sorts the results of a query by their (ascending) key values.\r\n *\r\n * You can read more about `orderByKey()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sort_data | Sort data}.\r\n */\r\nfunction orderByKey() {\r\n return new QueryOrderByKeyConstraint();\r\n}\r\nvar QueryOrderByPriorityConstraint = /** @class */ (function (_super) {\r\n __extends(QueryOrderByPriorityConstraint, _super);\r\n function QueryOrderByPriorityConstraint() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n QueryOrderByPriorityConstraint.prototype._apply = function (query) {\r\n validateNoPreviousOrderByCall(query, 'orderByPriority');\r\n var newParams = queryParamsOrderBy(query._queryParams, PRIORITY_INDEX);\r\n validateQueryEndpoints(newParams);\r\n return new QueryImpl(query._repo, query._path, newParams, \r\n /*orderByCalled=*/ true);\r\n };\r\n return QueryOrderByPriorityConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a new `QueryConstraint` that orders by priority.\r\n *\r\n * Applications need not use priority but can order collections by\r\n * ordinary properties (see\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sort_data | Sort data}\r\n * for alternatives to priority.\r\n */\r\nfunction orderByPriority() {\r\n return new QueryOrderByPriorityConstraint();\r\n}\r\nvar QueryOrderByValueConstraint = /** @class */ (function (_super) {\r\n __extends(QueryOrderByValueConstraint, _super);\r\n function QueryOrderByValueConstraint() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n QueryOrderByValueConstraint.prototype._apply = function (query) {\r\n validateNoPreviousOrderByCall(query, 'orderByValue');\r\n var newParams = queryParamsOrderBy(query._queryParams, VALUE_INDEX);\r\n validateQueryEndpoints(newParams);\r\n return new QueryImpl(query._repo, query._path, newParams, \r\n /*orderByCalled=*/ true);\r\n };\r\n return QueryOrderByValueConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a new `QueryConstraint` that orders by value.\r\n *\r\n * If the children of a query are all scalar values (string, number, or\r\n * boolean), you can order the results by their (ascending) values.\r\n *\r\n * You can read more about `orderByValue()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sort_data | Sort data}.\r\n */\r\nfunction orderByValue() {\r\n return new QueryOrderByValueConstraint();\r\n}\r\nvar QueryEqualToValueConstraint = /** @class */ (function (_super) {\r\n __extends(QueryEqualToValueConstraint, _super);\r\n function QueryEqualToValueConstraint(_value, _key) {\r\n var _this = _super.call(this) || this;\r\n _this._value = _value;\r\n _this._key = _key;\r\n return _this;\r\n }\r\n QueryEqualToValueConstraint.prototype._apply = function (query) {\r\n validateFirebaseDataArg('equalTo', this._value, query._path, false);\r\n if (query._queryParams.hasStart()) {\r\n throw new Error('equalTo: Starting point was already set (by another call to startAt/startAfter or ' +\r\n 'equalTo).');\r\n }\r\n if (query._queryParams.hasEnd()) {\r\n throw new Error('equalTo: Ending point was already set (by another call to endAt/endBefore or ' +\r\n 'equalTo).');\r\n }\r\n return new QueryEndAtConstraint(this._value, this._key)._apply(new QueryStartAtConstraint(this._value, this._key)._apply(query));\r\n };\r\n return QueryEqualToValueConstraint;\r\n}(QueryConstraint));\r\n/**\r\n * Creates a `QueryConstraint` that includes children that match the specified\r\n * value.\r\n *\r\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\r\n * allows you to choose arbitrary starting and ending points for your queries.\r\n *\r\n * The optional key argument can be used to further limit the range of the\r\n * query. If it is specified, then children that have exactly the specified\r\n * value must also have exactly the specified key as their key name. This can be\r\n * used to filter result sets with many matches for the same value.\r\n *\r\n * You can read more about `equalTo()` in\r\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\r\n *\r\n * @param value - The value to match for. The argument type depends on which\r\n * `orderBy*()` function was used in this query. Specify a value that matches\r\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\r\n * value must be a string.\r\n * @param key - The child key to start at, among the children with the\r\n * previously specified priority. This argument is only allowed if ordering by\r\n * child, value, or priority.\r\n */\r\nfunction equalTo(value, key) {\r\n validateKey('equalTo', 'key', key, true);\r\n return new QueryEqualToValueConstraint(value, key);\r\n}\r\n/**\r\n * Creates a new immutable instance of `Query` that is extended to also include\r\n * additional query constraints.\r\n *\r\n * @param query - The Query instance to use as a base for the new constraints.\r\n * @param queryConstraints - The list of `QueryConstraint`s to apply.\r\n * @throws if any of the provided query constraints cannot be combined with the\r\n * existing or new constraints.\r\n */\r\nfunction query(query) {\r\n var e_1, _a;\r\n var queryConstraints = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n queryConstraints[_i - 1] = arguments[_i];\r\n }\r\n var queryImpl = getModularInstance(query);\r\n try {\r\n for (var queryConstraints_1 = __values(queryConstraints), queryConstraints_1_1 = queryConstraints_1.next(); !queryConstraints_1_1.done; queryConstraints_1_1 = queryConstraints_1.next()) {\r\n var constraint = queryConstraints_1_1.value;\r\n queryImpl = constraint._apply(queryImpl);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (queryConstraints_1_1 && !queryConstraints_1_1.done && (_a = queryConstraints_1.return)) _a.call(queryConstraints_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return queryImpl;\r\n}\r\n/**\r\n * Define reference constructor in various modules\r\n *\r\n * We are doing this here to avoid several circular\r\n * dependency issues\r\n */\r\nsyncPointSetReferenceConstructor(ReferenceImpl);\r\nsyncTreeSetReferenceConstructor(ReferenceImpl);\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This variable is also defined in the firebase node.js admin SDK. Before\r\n * modifying this definition, consult the definition in:\r\n *\r\n * https://github.com/firebase/firebase-admin-node\r\n *\r\n * and make sure the two are consistent.\r\n */\r\nvar FIREBASE_DATABASE_EMULATOR_HOST_VAR = 'FIREBASE_DATABASE_EMULATOR_HOST';\r\n/**\r\n * Creates and caches Repo instances.\r\n */\r\nvar repos = {};\r\n/**\r\n * If true, new Repos will be created to use ReadonlyRestClient (for testing purposes).\r\n */\r\nvar useRestClient = false;\r\n/**\r\n * Update an existing repo in place to point to a new host/port.\r\n */\r\nfunction repoManagerApplyEmulatorSettings(repo, host, port, tokenProvider) {\r\n repo.repoInfo_ = new RepoInfo(host + \":\" + port, \r\n /* secure= */ false, repo.repoInfo_.namespace, repo.repoInfo_.webSocketOnly, repo.repoInfo_.nodeAdmin, repo.repoInfo_.persistenceKey, repo.repoInfo_.includeNamespaceInQueryParams);\r\n if (tokenProvider) {\r\n repo.authTokenProvider_ = tokenProvider;\r\n }\r\n}\r\n/**\r\n * This function should only ever be called to CREATE a new database instance.\r\n * @internal\r\n */\r\nfunction repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url, nodeAdmin) {\r\n var dbUrl = url || app.options.databaseURL;\r\n if (dbUrl === undefined) {\r\n if (!app.options.projectId) {\r\n fatal(\"Can't determine Firebase Database URL. Be sure to include \" +\r\n ' a Project ID when calling firebase.initializeApp().');\r\n }\r\n log('Using default host for project ', app.options.projectId);\r\n dbUrl = app.options.projectId + \"-default-rtdb.firebaseio.com\";\r\n }\r\n var parsedUrl = parseRepoInfo(dbUrl, nodeAdmin);\r\n var repoInfo = parsedUrl.repoInfo;\r\n var isEmulator;\r\n var dbEmulatorHost = undefined;\r\n if (typeof process !== 'undefined') {\r\n dbEmulatorHost = process.env[FIREBASE_DATABASE_EMULATOR_HOST_VAR];\r\n }\r\n if (dbEmulatorHost) {\r\n isEmulator = true;\r\n dbUrl = \"http://\" + dbEmulatorHost + \"?ns=\" + repoInfo.namespace;\r\n parsedUrl = parseRepoInfo(dbUrl, nodeAdmin);\r\n repoInfo = parsedUrl.repoInfo;\r\n }\r\n else {\r\n isEmulator = !parsedUrl.repoInfo.secure;\r\n }\r\n var authTokenProvider = nodeAdmin && isEmulator\r\n ? new EmulatorTokenProvider(EmulatorTokenProvider.OWNER)\r\n : new FirebaseAuthTokenProvider(app.name, app.options, authProvider);\r\n validateUrl('Invalid Firebase Database URL', parsedUrl);\r\n if (!pathIsEmpty(parsedUrl.path)) {\r\n fatal('Database URL must point to the root of a Firebase Database ' +\r\n '(not including a child path).');\r\n }\r\n var repo = repoManagerCreateRepo(repoInfo, app, authTokenProvider, new AppCheckTokenProvider(app.name, appCheckProvider));\r\n return new Database$1(repo, app);\r\n}\r\n/**\r\n * Remove the repo and make sure it is disconnected.\r\n *\r\n */\r\nfunction repoManagerDeleteRepo(repo, appName) {\r\n var appRepos = repos[appName];\r\n // This should never happen...\r\n if (!appRepos || appRepos[repo.key] !== repo) {\r\n fatal(\"Database \" + appName + \"(\" + repo.repoInfo_ + \") has already been deleted.\");\r\n }\r\n repoInterrupt(repo);\r\n delete appRepos[repo.key];\r\n}\r\n/**\r\n * Ensures a repo doesn't already exist and then creates one using the\r\n * provided app.\r\n *\r\n * @param repoInfo - The metadata about the Repo\r\n * @returns The Repo object for the specified server / repoName.\r\n */\r\nfunction repoManagerCreateRepo(repoInfo, app, authTokenProvider, appCheckProvider) {\r\n var appRepos = repos[app.name];\r\n if (!appRepos) {\r\n appRepos = {};\r\n repos[app.name] = appRepos;\r\n }\r\n var repo = appRepos[repoInfo.toURLString()];\r\n if (repo) {\r\n fatal('Database initialized multiple times. Please make sure the format of the database URL matches with each database() call.');\r\n }\r\n repo = new Repo(repoInfo, useRestClient, authTokenProvider, appCheckProvider);\r\n appRepos[repoInfo.toURLString()] = repo;\r\n return repo;\r\n}\r\n/**\r\n * Forces us to use ReadonlyRestClient instead of PersistentConnection for new Repos.\r\n */\r\nfunction repoManagerForceRestClient(forceRestClient) {\r\n useRestClient = forceRestClient;\r\n}\r\n/**\r\n * Class representing a Firebase Realtime Database.\r\n */\r\nvar Database$1 = /** @class */ (function () {\r\n /** @hideconstructor */\r\n function Database(_repoInternal, \r\n /** The FirebaseApp associated with this Realtime Database instance. */\r\n app) {\r\n this._repoInternal = _repoInternal;\r\n this.app = app;\r\n /** Represents a database instance. */\r\n this['type'] = 'database';\r\n /** Track if the instance has been used (root or repo accessed) */\r\n this._instanceStarted = false;\r\n }\r\n Object.defineProperty(Database.prototype, \"_repo\", {\r\n get: function () {\r\n if (!this._instanceStarted) {\r\n repoStart(this._repoInternal, this.app.options.appId, this.app.options['databaseAuthVariableOverride']);\r\n this._instanceStarted = true;\r\n }\r\n return this._repoInternal;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Database.prototype, \"_root\", {\r\n get: function () {\r\n if (!this._rootInternal) {\r\n this._rootInternal = new ReferenceImpl(this._repo, newEmptyPath());\r\n }\r\n return this._rootInternal;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Database.prototype._delete = function () {\r\n if (this._rootInternal !== null) {\r\n repoManagerDeleteRepo(this._repo, this.app.name);\r\n this._repoInternal = null;\r\n this._rootInternal = null;\r\n }\r\n return Promise.resolve();\r\n };\r\n Database.prototype._checkNotDeleted = function (apiName) {\r\n if (this._rootInternal === null) {\r\n fatal('Cannot call ' + apiName + ' on a deleted database.');\r\n }\r\n };\r\n return Database;\r\n}());\r\n/**\r\n * Modify the provided instance to communicate with the Realtime Database\r\n * emulator.\r\n *\r\n *

Note: This method must be called before performing any other operation.\r\n *\r\n * @param db - The instance to modify.\r\n * @param host - The emulator host (ex: localhost)\r\n * @param port - The emulator port (ex: 8080)\r\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\r\n */\r\nfunction connectDatabaseEmulator(db, host, port, options) {\r\n if (options === void 0) { options = {}; }\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('useEmulator');\r\n if (db._instanceStarted) {\r\n fatal('Cannot call useEmulator() after instance has already been initialized.');\r\n }\r\n var repo = db._repoInternal;\r\n var tokenProvider = undefined;\r\n if (repo.repoInfo_.nodeAdmin) {\r\n if (options.mockUserToken) {\r\n fatal('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the \"firebase\" package instead of \"firebase-admin\".');\r\n }\r\n tokenProvider = new EmulatorTokenProvider(EmulatorTokenProvider.OWNER);\r\n }\r\n else if (options.mockUserToken) {\r\n var token = typeof options.mockUserToken === 'string'\r\n ? options.mockUserToken\r\n : createMockUserToken(options.mockUserToken, db.app.options.projectId);\r\n tokenProvider = new EmulatorTokenProvider(token);\r\n }\r\n // Modify the repo to apply emulator settings\r\n repoManagerApplyEmulatorSettings(repo, host, port, tokenProvider);\r\n}\r\n/**\r\n * Disconnects from the server (all Database operations will be completed\r\n * offline).\r\n *\r\n * The client automatically maintains a persistent connection to the Database\r\n * server, which will remain active indefinitely and reconnect when\r\n * disconnected. However, the `goOffline()` and `goOnline()` methods may be used\r\n * to control the client connection in cases where a persistent connection is\r\n * undesirable.\r\n *\r\n * While offline, the client will no longer receive data updates from the\r\n * Database. However, all Database operations performed locally will continue to\r\n * immediately fire events, allowing your application to continue behaving\r\n * normally. Additionally, each operation performed locally will automatically\r\n * be queued and retried upon reconnection to the Database server.\r\n *\r\n * To reconnect to the Database and begin receiving remote events, see\r\n * `goOnline()`.\r\n *\r\n * @param db - The instance to disconnect.\r\n */\r\nfunction goOffline(db) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('goOffline');\r\n repoInterrupt(db._repo);\r\n}\r\n/**\r\n * Reconnects to the server and synchronizes the offline Database state\r\n * with the server state.\r\n *\r\n * This method should be used after disabling the active connection with\r\n * `goOffline()`. Once reconnected, the client will transmit the proper data\r\n * and fire the appropriate events so that your client \"catches up\"\r\n * automatically.\r\n *\r\n * @param db - The instance to reconnect.\r\n */\r\nfunction goOnline(db) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('goOnline');\r\n repoResume(db._repo);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar SERVER_TIMESTAMP = {\r\n '.sv': 'timestamp'\r\n};\r\n/**\r\n * Returns a placeholder value for auto-populating the current timestamp (time\r\n * since the Unix epoch, in milliseconds) as determined by the Firebase\r\n * servers.\r\n */\r\nfunction serverTimestamp() {\r\n return SERVER_TIMESTAMP;\r\n}\r\n/**\r\n * Returns a placeholder value that can be used to atomically increment the\r\n * current database value by the provided delta.\r\n *\r\n * @param delta - the amount to modify the current value atomically.\r\n * @returns A placeholder value for modifying data atomically server-side.\r\n */\r\nfunction increment(delta) {\r\n return {\r\n '.sv': {\r\n 'increment': delta\r\n }\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A type for the resolve value of Firebase.transaction.\r\n */\r\nvar TransactionResult$1 = /** @class */ (function () {\r\n /** @hideconstructor */\r\n function TransactionResult(\r\n /** Whether the transaction was successfully committed. */\r\n committed, \r\n /** The resulting data snapshot. */\r\n snapshot) {\r\n this.committed = committed;\r\n this.snapshot = snapshot;\r\n }\r\n /** Returns a JSON-serializable representation of this object. */\r\n TransactionResult.prototype.toJSON = function () {\r\n return { committed: this.committed, snapshot: this.snapshot.toJSON() };\r\n };\r\n return TransactionResult;\r\n}());\r\n/**\r\n * Atomically modifies the data at this location.\r\n *\r\n * Atomically modify the data at this location. Unlike a normal `set()`, which\r\n * just overwrites the data regardless of its previous value, `transaction()` is\r\n * used to modify the existing value to a new value, ensuring there are no\r\n * conflicts with other clients writing to the same location at the same time.\r\n *\r\n * To accomplish this, you pass `runTransaction()` an update function which is\r\n * used to transform the current value into a new value. If another client\r\n * writes to the location before your new value is successfully written, your\r\n * update function will be called again with the new current value, and the\r\n * write will be retried. This will happen repeatedly until your write succeeds\r\n * without conflict or you abort the transaction by not returning a value from\r\n * your update function.\r\n *\r\n * Note: Modifying data with `set()` will cancel any pending transactions at\r\n * that location, so extreme care should be taken if mixing `set()` and\r\n * `transaction()` to update the same data.\r\n *\r\n * Note: When using transactions with Security and Firebase Rules in place, be\r\n * aware that a client needs `.read` access in addition to `.write` access in\r\n * order to perform a transaction. This is because the client-side nature of\r\n * transactions requires the client to read the data in order to transactionally\r\n * update it.\r\n *\r\n * @param ref - The location to atomically modify.\r\n * @param transactionUpdate - A developer-supplied function which will be passed\r\n * the current data stored at this location (as a JavaScript object). The\r\n * function should return the new value it would like written (as a JavaScript\r\n * object). If `undefined` is returned (i.e. you return with no arguments) the\r\n * transaction will be aborted and the data at this location will not be\r\n * modified.\r\n * @param options - An options object to configure transactions.\r\n * @returns A Promise that can optionally be used instead of the onComplete\r\n * callback to handle success and failure.\r\n */\r\nfunction runTransaction(ref, \r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ntransactionUpdate, options) {\r\n var _a;\r\n ref = getModularInstance(ref);\r\n validateWritablePath('Reference.transaction', ref._path);\r\n if (ref.key === '.length' || ref.key === '.keys') {\r\n throw ('Reference.transaction failed: ' + ref.key + ' is a read-only object.');\r\n }\r\n var applyLocally = (_a = options === null || options === void 0 ? void 0 : options.applyLocally) !== null && _a !== void 0 ? _a : true;\r\n var deferred = new Deferred();\r\n var promiseComplete = function (error, committed, node) {\r\n var dataSnapshot = null;\r\n if (error) {\r\n deferred.reject(error);\r\n }\r\n else {\r\n dataSnapshot = new DataSnapshot$1(node, new ReferenceImpl(ref._repo, ref._path), PRIORITY_INDEX);\r\n deferred.resolve(new TransactionResult$1(committed, dataSnapshot));\r\n }\r\n };\r\n // Add a watch to make sure we get server updates.\r\n var unwatcher = onValue(ref, function () { });\r\n repoStartTransaction(ref._repo, ref._path, transactionUpdate, promiseComplete, unwatcher, applyLocally);\r\n return deferred.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar OnDisconnect = /** @class */ (function () {\r\n function OnDisconnect(_delegate) {\r\n this._delegate = _delegate;\r\n }\r\n OnDisconnect.prototype.cancel = function (onComplete) {\r\n validateArgCount('OnDisconnect.cancel', 0, 1, arguments.length);\r\n validateCallback('OnDisconnect.cancel', 'onComplete', onComplete, true);\r\n var result = this._delegate.cancel();\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.remove = function (onComplete) {\r\n validateArgCount('OnDisconnect.remove', 0, 1, arguments.length);\r\n validateCallback('OnDisconnect.remove', 'onComplete', onComplete, true);\r\n var result = this._delegate.remove();\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.set = function (value, onComplete) {\r\n validateArgCount('OnDisconnect.set', 1, 2, arguments.length);\r\n validateCallback('OnDisconnect.set', 'onComplete', onComplete, true);\r\n var result = this._delegate.set(value);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.setWithPriority = function (value, priority, onComplete) {\r\n validateArgCount('OnDisconnect.setWithPriority', 2, 3, arguments.length);\r\n validateCallback('OnDisconnect.setWithPriority', 'onComplete', onComplete, true);\r\n var result = this._delegate.setWithPriority(value, priority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.update = function (objectToMerge, onComplete) {\r\n validateArgCount('OnDisconnect.update', 1, 2, arguments.length);\r\n if (Array.isArray(objectToMerge)) {\r\n var newObjectToMerge = {};\r\n for (var i = 0; i < objectToMerge.length; ++i) {\r\n newObjectToMerge['' + i] = objectToMerge[i];\r\n }\r\n objectToMerge = newObjectToMerge;\r\n warn('Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the ' +\r\n 'existing data, or an Object with integer keys if you really do want to only update some of the children.');\r\n }\r\n validateCallback('OnDisconnect.update', 'onComplete', onComplete, true);\r\n var result = this._delegate.update(objectToMerge);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n return OnDisconnect;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar TransactionResult = /** @class */ (function () {\r\n /**\r\n * A type for the resolve value of Firebase.transaction.\r\n */\r\n function TransactionResult(committed, snapshot) {\r\n this.committed = committed;\r\n this.snapshot = snapshot;\r\n }\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users\r\n TransactionResult.prototype.toJSON = function () {\r\n validateArgCount('TransactionResult.toJSON', 0, 1, arguments.length);\r\n return { committed: this.committed, snapshot: this.snapshot.toJSON() };\r\n };\r\n return TransactionResult;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Class representing a firebase data snapshot. It wraps a SnapshotNode and\r\n * surfaces the public methods (val, forEach, etc.) we want to expose.\r\n */\r\nvar DataSnapshot = /** @class */ (function () {\r\n function DataSnapshot(_database, _delegate) {\r\n this._database = _database;\r\n this._delegate = _delegate;\r\n }\r\n /**\r\n * Retrieves the snapshot contents as JSON. Returns null if the snapshot is\r\n * empty.\r\n *\r\n * @returns JSON representation of the DataSnapshot contents, or null if empty.\r\n */\r\n DataSnapshot.prototype.val = function () {\r\n validateArgCount('DataSnapshot.val', 0, 0, arguments.length);\r\n return this._delegate.val();\r\n };\r\n /**\r\n * Returns the snapshot contents as JSON, including priorities of node. Suitable for exporting\r\n * the entire node contents.\r\n * @returns JSON representation of the DataSnapshot contents, or null if empty.\r\n */\r\n DataSnapshot.prototype.exportVal = function () {\r\n validateArgCount('DataSnapshot.exportVal', 0, 0, arguments.length);\r\n return this._delegate.exportVal();\r\n };\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users\r\n DataSnapshot.prototype.toJSON = function () {\r\n // Optional spacer argument is unnecessary because we're depending on recursion rather than stringifying the content\r\n validateArgCount('DataSnapshot.toJSON', 0, 1, arguments.length);\r\n return this._delegate.toJSON();\r\n };\r\n /**\r\n * Returns whether the snapshot contains a non-null value.\r\n *\r\n * @returns Whether the snapshot contains a non-null value, or is empty.\r\n */\r\n DataSnapshot.prototype.exists = function () {\r\n validateArgCount('DataSnapshot.exists', 0, 0, arguments.length);\r\n return this._delegate.exists();\r\n };\r\n /**\r\n * Returns a DataSnapshot of the specified child node's contents.\r\n *\r\n * @param path - Path to a child.\r\n * @returns DataSnapshot for child node.\r\n */\r\n DataSnapshot.prototype.child = function (path) {\r\n validateArgCount('DataSnapshot.child', 0, 1, arguments.length);\r\n // Ensure the childPath is a string (can be a number)\r\n path = String(path);\r\n validatePathString('DataSnapshot.child', 'path', path, false);\r\n return new DataSnapshot(this._database, this._delegate.child(path));\r\n };\r\n /**\r\n * Returns whether the snapshot contains a child at the specified path.\r\n *\r\n * @param path - Path to a child.\r\n * @returns Whether the child exists.\r\n */\r\n DataSnapshot.prototype.hasChild = function (path) {\r\n validateArgCount('DataSnapshot.hasChild', 1, 1, arguments.length);\r\n validatePathString('DataSnapshot.hasChild', 'path', path, false);\r\n return this._delegate.hasChild(path);\r\n };\r\n /**\r\n * Returns the priority of the object, or null if no priority was set.\r\n *\r\n * @returns The priority.\r\n */\r\n DataSnapshot.prototype.getPriority = function () {\r\n validateArgCount('DataSnapshot.getPriority', 0, 0, arguments.length);\r\n return this._delegate.priority;\r\n };\r\n /**\r\n * Iterates through child nodes and calls the specified action for each one.\r\n *\r\n * @param action - Callback function to be called\r\n * for each child.\r\n * @returns True if forEach was canceled by action returning true for\r\n * one of the child nodes.\r\n */\r\n DataSnapshot.prototype.forEach = function (action) {\r\n var _this = this;\r\n validateArgCount('DataSnapshot.forEach', 1, 1, arguments.length);\r\n validateCallback('DataSnapshot.forEach', 'action', action, false);\r\n return this._delegate.forEach(function (expDataSnapshot) {\r\n return action(new DataSnapshot(_this._database, expDataSnapshot));\r\n });\r\n };\r\n /**\r\n * Returns whether this DataSnapshot has children.\r\n * @returns True if the DataSnapshot contains 1 or more child nodes.\r\n */\r\n DataSnapshot.prototype.hasChildren = function () {\r\n validateArgCount('DataSnapshot.hasChildren', 0, 0, arguments.length);\r\n return this._delegate.hasChildren();\r\n };\r\n Object.defineProperty(DataSnapshot.prototype, \"key\", {\r\n get: function () {\r\n return this._delegate.key;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns the number of children for this DataSnapshot.\r\n * @returns The number of children that this DataSnapshot contains.\r\n */\r\n DataSnapshot.prototype.numChildren = function () {\r\n validateArgCount('DataSnapshot.numChildren', 0, 0, arguments.length);\r\n return this._delegate.size;\r\n };\r\n /**\r\n * @returns The Firebase reference for the location this snapshot's data came\r\n * from.\r\n */\r\n DataSnapshot.prototype.getRef = function () {\r\n validateArgCount('DataSnapshot.ref', 0, 0, arguments.length);\r\n return new Reference(this._database, this._delegate.ref);\r\n };\r\n Object.defineProperty(DataSnapshot.prototype, \"ref\", {\r\n get: function () {\r\n return this.getRef();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DataSnapshot;\r\n}());\r\n/**\r\n * A Query represents a filter to be applied to a firebase location. This object purely represents the\r\n * query expression (and exposes our public API to build the query). The actual query logic is in ViewBase.js.\r\n *\r\n * Since every Firebase reference is a query, Firebase inherits from this object.\r\n */\r\nvar Query = /** @class */ (function () {\r\n function Query(database, _delegate) {\r\n this.database = database;\r\n this._delegate = _delegate;\r\n }\r\n Query.prototype.on = function (eventType, callback, cancelCallbackOrContext, context) {\r\n var _this = this;\r\n var _a;\r\n validateArgCount('Query.on', 2, 4, arguments.length);\r\n validateCallback('Query.on', 'callback', callback, false);\r\n var ret = Query.getCancelAndContextArgs_('Query.on', cancelCallbackOrContext, context);\r\n var valueCallback = function (expSnapshot, previousChildName) {\r\n callback.call(ret.context, new DataSnapshot(_this.database, expSnapshot), previousChildName);\r\n };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = ret.context;\r\n var cancelCallback = (_a = ret.cancel) === null || _a === void 0 ? void 0 : _a.bind(ret.context);\r\n switch (eventType) {\r\n case 'value':\r\n onValue(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_added':\r\n onChildAdded(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_removed':\r\n onChildRemoved(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_changed':\r\n onChildChanged(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_moved':\r\n onChildMoved(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n default:\r\n throw new Error(errorPrefix('Query.on', 'eventType') +\r\n 'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n '\"child_changed\", or \"child_moved\".');\r\n }\r\n };\r\n Query.prototype.off = function (eventType, callback, context) {\r\n validateArgCount('Query.off', 0, 3, arguments.length);\r\n validateEventType('Query.off', eventType, true);\r\n validateCallback('Query.off', 'callback', callback, true);\r\n validateContextObject('Query.off', 'context', context, true);\r\n if (callback) {\r\n var valueCallback = function () { };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = context;\r\n off(this._delegate, eventType, valueCallback);\r\n }\r\n else {\r\n off(this._delegate, eventType);\r\n }\r\n };\r\n /**\r\n * Get the server-value for this query, or return a cached value if not connected.\r\n */\r\n Query.prototype.get = function () {\r\n var _this = this;\r\n return get(this._delegate).then(function (expSnapshot) {\r\n return new DataSnapshot(_this.database, expSnapshot);\r\n });\r\n };\r\n /**\r\n * Attaches a listener, waits for the first event, and then removes the listener\r\n */\r\n Query.prototype.once = function (eventType, callback, failureCallbackOrContext, context) {\r\n var _this = this;\r\n validateArgCount('Query.once', 1, 4, arguments.length);\r\n validateCallback('Query.once', 'callback', callback, true);\r\n var ret = Query.getCancelAndContextArgs_('Query.once', failureCallbackOrContext, context);\r\n var deferred = new Deferred();\r\n var valueCallback = function (expSnapshot, previousChildName) {\r\n var result = new DataSnapshot(_this.database, expSnapshot);\r\n if (callback) {\r\n callback.call(ret.context, result, previousChildName);\r\n }\r\n deferred.resolve(result);\r\n };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = ret.context;\r\n var cancelCallback = function (error) {\r\n if (ret.cancel) {\r\n ret.cancel.call(ret.context, error);\r\n }\r\n deferred.reject(error);\r\n };\r\n switch (eventType) {\r\n case 'value':\r\n onValue(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_added':\r\n onChildAdded(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_removed':\r\n onChildRemoved(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_changed':\r\n onChildChanged(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_moved':\r\n onChildMoved(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n default:\r\n throw new Error(errorPrefix('Query.once', 'eventType') +\r\n 'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n '\"child_changed\", or \"child_moved\".');\r\n }\r\n return deferred.promise;\r\n };\r\n /**\r\n * Set a limit and anchor it to the start of the window.\r\n */\r\n Query.prototype.limitToFirst = function (limit) {\r\n validateArgCount('Query.limitToFirst', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, limitToFirst(limit)));\r\n };\r\n /**\r\n * Set a limit and anchor it to the end of the window.\r\n */\r\n Query.prototype.limitToLast = function (limit) {\r\n validateArgCount('Query.limitToLast', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, limitToLast(limit)));\r\n };\r\n /**\r\n * Given a child path, return a new query ordered by the specified grandchild path.\r\n */\r\n Query.prototype.orderByChild = function (path) {\r\n validateArgCount('Query.orderByChild', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByChild(path)));\r\n };\r\n /**\r\n * Return a new query ordered by the KeyIndex\r\n */\r\n Query.prototype.orderByKey = function () {\r\n validateArgCount('Query.orderByKey', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByKey()));\r\n };\r\n /**\r\n * Return a new query ordered by the PriorityIndex\r\n */\r\n Query.prototype.orderByPriority = function () {\r\n validateArgCount('Query.orderByPriority', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByPriority()));\r\n };\r\n /**\r\n * Return a new query ordered by the ValueIndex\r\n */\r\n Query.prototype.orderByValue = function () {\r\n validateArgCount('Query.orderByValue', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByValue()));\r\n };\r\n Query.prototype.startAt = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.startAt', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, startAt(value, name)));\r\n };\r\n Query.prototype.startAfter = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.startAfter', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, startAfter(value, name)));\r\n };\r\n Query.prototype.endAt = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.endAt', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, endAt(value, name)));\r\n };\r\n Query.prototype.endBefore = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.endBefore', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, endBefore(value, name)));\r\n };\r\n /**\r\n * Load the selection of children with exactly the specified value, and, optionally,\r\n * the specified name.\r\n */\r\n Query.prototype.equalTo = function (value, name) {\r\n validateArgCount('Query.equalTo', 1, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, equalTo(value, name)));\r\n };\r\n /**\r\n * @returns URL for this location.\r\n */\r\n Query.prototype.toString = function () {\r\n validateArgCount('Query.toString', 0, 0, arguments.length);\r\n return this._delegate.toString();\r\n };\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users.\r\n Query.prototype.toJSON = function () {\r\n // An optional spacer argument is unnecessary for a string.\r\n validateArgCount('Query.toJSON', 0, 1, arguments.length);\r\n return this._delegate.toJSON();\r\n };\r\n /**\r\n * Return true if this query and the provided query are equivalent; otherwise, return false.\r\n */\r\n Query.prototype.isEqual = function (other) {\r\n validateArgCount('Query.isEqual', 1, 1, arguments.length);\r\n if (!(other instanceof Query)) {\r\n var error = 'Query.isEqual failed: First argument must be an instance of firebase.database.Query.';\r\n throw new Error(error);\r\n }\r\n return this._delegate.isEqual(other._delegate);\r\n };\r\n /**\r\n * Helper used by .on and .once to extract the context and or cancel arguments.\r\n * @param fnName - The function name (on or once)\r\n *\r\n */\r\n Query.getCancelAndContextArgs_ = function (fnName, cancelOrContext, context) {\r\n var ret = { cancel: undefined, context: undefined };\r\n if (cancelOrContext && context) {\r\n ret.cancel = cancelOrContext;\r\n validateCallback(fnName, 'cancel', ret.cancel, true);\r\n ret.context = context;\r\n validateContextObject(fnName, 'context', ret.context, true);\r\n }\r\n else if (cancelOrContext) {\r\n // we have either a cancel callback or a context.\r\n if (typeof cancelOrContext === 'object' && cancelOrContext !== null) {\r\n // it's a context!\r\n ret.context = cancelOrContext;\r\n }\r\n else if (typeof cancelOrContext === 'function') {\r\n ret.cancel = cancelOrContext;\r\n }\r\n else {\r\n throw new Error(errorPrefix(fnName, 'cancelOrContext') +\r\n ' must either be a cancel callback or a context object.');\r\n }\r\n }\r\n return ret;\r\n };\r\n Object.defineProperty(Query.prototype, \"ref\", {\r\n get: function () {\r\n return new Reference(this.database, new ReferenceImpl(this._delegate._repo, this._delegate._path));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Query;\r\n}());\r\nvar Reference = /** @class */ (function (_super) {\r\n __extends(Reference, _super);\r\n /**\r\n * Call options:\r\n * new Reference(Repo, Path) or\r\n * new Reference(url: string, string|RepoManager)\r\n *\r\n * Externally - this is the firebase.database.Reference type.\r\n */\r\n function Reference(database, _delegate) {\r\n var _this = _super.call(this, database, new QueryImpl(_delegate._repo, _delegate._path, new QueryParams(), false)) || this;\r\n _this.database = database;\r\n _this._delegate = _delegate;\r\n return _this;\r\n }\r\n /** @returns {?string} */\r\n Reference.prototype.getKey = function () {\r\n validateArgCount('Reference.key', 0, 0, arguments.length);\r\n return this._delegate.key;\r\n };\r\n Reference.prototype.child = function (pathString) {\r\n validateArgCount('Reference.child', 1, 1, arguments.length);\r\n if (typeof pathString === 'number') {\r\n pathString = String(pathString);\r\n }\r\n return new Reference(this.database, child(this._delegate, pathString));\r\n };\r\n /** @returns {?Reference} */\r\n Reference.prototype.getParent = function () {\r\n validateArgCount('Reference.parent', 0, 0, arguments.length);\r\n var parent = this._delegate.parent;\r\n return parent ? new Reference(this.database, parent) : null;\r\n };\r\n /** @returns {!Reference} */\r\n Reference.prototype.getRoot = function () {\r\n validateArgCount('Reference.root', 0, 0, arguments.length);\r\n return new Reference(this.database, this._delegate.root);\r\n };\r\n Reference.prototype.set = function (newVal, onComplete) {\r\n validateArgCount('Reference.set', 1, 2, arguments.length);\r\n validateCallback('Reference.set', 'onComplete', onComplete, true);\r\n var result = set(this._delegate, newVal);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.update = function (values, onComplete) {\r\n validateArgCount('Reference.update', 1, 2, arguments.length);\r\n if (Array.isArray(values)) {\r\n var newObjectToMerge = {};\r\n for (var i = 0; i < values.length; ++i) {\r\n newObjectToMerge['' + i] = values[i];\r\n }\r\n values = newObjectToMerge;\r\n warn('Passing an Array to Firebase.update() is deprecated. ' +\r\n 'Use set() if you want to overwrite the existing data, or ' +\r\n 'an Object with integer keys if you really do want to ' +\r\n 'only update some of the children.');\r\n }\r\n validateWritablePath('Reference.update', this._delegate._path);\r\n validateCallback('Reference.update', 'onComplete', onComplete, true);\r\n var result = update(this._delegate, values);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.setWithPriority = function (newVal, newPriority, onComplete) {\r\n validateArgCount('Reference.setWithPriority', 2, 3, arguments.length);\r\n validateCallback('Reference.setWithPriority', 'onComplete', onComplete, true);\r\n var result = setWithPriority(this._delegate, newVal, newPriority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.remove = function (onComplete) {\r\n validateArgCount('Reference.remove', 0, 1, arguments.length);\r\n validateCallback('Reference.remove', 'onComplete', onComplete, true);\r\n var result = remove(this._delegate);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.transaction = function (transactionUpdate, onComplete, applyLocally) {\r\n var _this = this;\r\n validateArgCount('Reference.transaction', 1, 3, arguments.length);\r\n validateCallback('Reference.transaction', 'transactionUpdate', transactionUpdate, false);\r\n validateCallback('Reference.transaction', 'onComplete', onComplete, true);\r\n validateBoolean('Reference.transaction', 'applyLocally', applyLocally, true);\r\n var result = runTransaction(this._delegate, transactionUpdate, {\r\n applyLocally: applyLocally\r\n }).then(function (transactionResult) {\r\n return new TransactionResult(transactionResult.committed, new DataSnapshot(_this.database, transactionResult.snapshot));\r\n });\r\n if (onComplete) {\r\n result.then(function (transactionResult) {\r\n return onComplete(null, transactionResult.committed, transactionResult.snapshot);\r\n }, function (error) { return onComplete(error, false, null); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.setPriority = function (priority, onComplete) {\r\n validateArgCount('Reference.setPriority', 1, 2, arguments.length);\r\n validateCallback('Reference.setPriority', 'onComplete', onComplete, true);\r\n var result = setPriority(this._delegate, priority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.push = function (value, onComplete) {\r\n var _this = this;\r\n validateArgCount('Reference.push', 0, 2, arguments.length);\r\n validateCallback('Reference.push', 'onComplete', onComplete, true);\r\n var expPromise = push(this._delegate, value);\r\n var promise = expPromise.then(function (expRef) { return new Reference(_this.database, expRef); });\r\n if (onComplete) {\r\n promise.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n var result = new Reference(this.database, expPromise);\r\n result.then = promise.then.bind(promise);\r\n result.catch = promise.catch.bind(promise, undefined);\r\n return result;\r\n };\r\n Reference.prototype.onDisconnect = function () {\r\n validateWritablePath('Reference.onDisconnect', this._delegate._path);\r\n return new OnDisconnect(new OnDisconnect$1(this._delegate._repo, this._delegate._path));\r\n };\r\n Object.defineProperty(Reference.prototype, \"key\", {\r\n get: function () {\r\n return this.getKey();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"parent\", {\r\n get: function () {\r\n return this.getParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"root\", {\r\n get: function () {\r\n return this.getRoot();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Reference;\r\n}(Query));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Class representing a firebase database.\r\n */\r\nvar Database = /** @class */ (function () {\r\n /**\r\n * The constructor should not be called by users of our public API.\r\n */\r\n function Database(_delegate, app) {\r\n var _this = this;\r\n this._delegate = _delegate;\r\n this.app = app;\r\n this.INTERNAL = {\r\n delete: function () { return _this._delegate._delete(); }\r\n };\r\n }\r\n /**\r\n * Modify this instance to communicate with the Realtime Database emulator.\r\n *\r\n *

Note: This method must be called before performing any other operation.\r\n *\r\n * @param host - the emulator host (ex: localhost)\r\n * @param port - the emulator port (ex: 8080)\r\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\r\n */\r\n Database.prototype.useEmulator = function (host, port, options) {\r\n if (options === void 0) { options = {}; }\r\n connectDatabaseEmulator(this._delegate, host, port, options);\r\n };\r\n Database.prototype.ref = function (path) {\r\n validateArgCount('database.ref', 0, 1, arguments.length);\r\n if (path instanceof Reference) {\r\n var childRef = refFromURL(this._delegate, path.toString());\r\n return new Reference(this, childRef);\r\n }\r\n else {\r\n var childRef = ref(this._delegate, path);\r\n return new Reference(this, childRef);\r\n }\r\n };\r\n /**\r\n * Returns a reference to the root or the path specified in url.\r\n * We throw a exception if the url is not in the same domain as the\r\n * current repo.\r\n * @returns Firebase reference.\r\n */\r\n Database.prototype.refFromURL = function (url) {\r\n var apiName = 'database.refFromURL';\r\n validateArgCount(apiName, 1, 1, arguments.length);\r\n var childRef = refFromURL(this._delegate, url);\r\n return new Reference(this, childRef);\r\n };\r\n // Make individual repo go offline.\r\n Database.prototype.goOffline = function () {\r\n validateArgCount('database.goOffline', 0, 0, arguments.length);\r\n return goOffline(this._delegate);\r\n };\r\n Database.prototype.goOnline = function () {\r\n validateArgCount('database.goOnline', 0, 0, arguments.length);\r\n return goOnline(this._delegate);\r\n };\r\n Database.ServerValue = {\r\n TIMESTAMP: serverTimestamp(),\r\n increment: function (delta) { return increment(delta); }\r\n };\r\n return Database;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * INTERNAL methods for internal-use only (tests, etc.).\r\n *\r\n * Customers shouldn't use these or else should be aware that they could break at any time.\r\n */\r\nvar forceLongPolling = function () {\r\n WebSocketConnection.forceDisallow();\r\n BrowserPollConnection.forceAllow();\r\n};\r\nvar forceWebSockets = function () {\r\n BrowserPollConnection.forceDisallow();\r\n};\r\n/* Used by App Manager */\r\nvar isWebSocketsAvailable = function () {\r\n return WebSocketConnection['isAvailable']();\r\n};\r\nvar setSecurityDebugCallback = function (ref, callback) {\r\n var connection = ref._delegate._repo.persistentConnection_;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n connection.securityDebugCallback_ = callback;\r\n};\r\nvar stats = function (ref, showDelta) {\r\n repoStats(ref._delegate._repo, showDelta);\r\n};\r\nvar statsIncrementCounter = function (ref, metric) {\r\n repoStatsIncrementCounter(ref._delegate._repo, metric);\r\n};\r\nvar dataUpdateCount = function (ref) {\r\n return ref._delegate._repo.dataUpdateCount;\r\n};\r\nvar interceptServerData = function (ref, callback) {\r\n return repoInterceptServerData(ref._delegate._repo, callback);\r\n};\r\n/**\r\n * Used by console to create a database based on the app,\r\n * passed database URL and a custom auth implementation.\r\n *\r\n * @param app - A valid FirebaseApp-like object\r\n * @param url - A valid Firebase databaseURL\r\n * @param version - custom version e.g. firebase-admin version\r\n * @param customAuthImpl - custom auth implementation\r\n */\r\nfunction initStandalone(_a) {\r\n var app = _a.app, url = _a.url, version = _a.version, customAuthImpl = _a.customAuthImpl, namespace = _a.namespace, _b = _a.nodeAdmin, nodeAdmin = _b === void 0 ? false : _b;\r\n setSDKVersion(version);\r\n /**\r\n * ComponentContainer('database-standalone') is just a placeholder that doesn't perform\r\n * any actual function.\r\n */\r\n var authProvider = new Provider('auth-internal', new ComponentContainer('database-standalone'));\r\n authProvider.setComponent(new Component('auth-internal', function () { return customAuthImpl; }, \"PRIVATE\" /* PRIVATE */));\r\n return {\r\n instance: new Database(repoManagerDatabaseFromApp(app, authProvider, \r\n /* appCheckProvider= */ undefined, url, nodeAdmin), app),\r\n namespace: namespace\r\n };\r\n}\n\nvar INTERNAL = /*#__PURE__*/Object.freeze({\n __proto__: null,\n forceLongPolling: forceLongPolling,\n forceWebSockets: forceWebSockets,\n isWebSocketsAvailable: isWebSocketsAvailable,\n setSecurityDebugCallback: setSecurityDebugCallback,\n stats: stats,\n statsIncrementCounter: statsIncrementCounter,\n dataUpdateCount: dataUpdateCount,\n interceptServerData: interceptServerData,\n initStandalone: initStandalone\n});\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar DataConnection = PersistentConnection;\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nPersistentConnection.prototype.simpleListen = function (pathString, onComplete) {\r\n this.sendRequest('q', { p: pathString }, onComplete);\r\n};\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nPersistentConnection.prototype.echo = function (data, onEcho) {\r\n this.sendRequest('echo', { d: data }, onEcho);\r\n};\r\n// RealTimeConnection properties that we use in tests.\r\nvar RealTimeConnection = Connection;\r\nvar hijackHash = function (newHash) {\r\n var oldPut = PersistentConnection.prototype.put;\r\n PersistentConnection.prototype.put = function (pathString, data, onComplete, hash) {\r\n if (hash !== undefined) {\r\n hash = newHash();\r\n }\r\n oldPut.call(this, pathString, data, onComplete, hash);\r\n };\r\n return function () {\r\n PersistentConnection.prototype.put = oldPut;\r\n };\r\n};\r\nvar ConnectionTarget = RepoInfo;\r\nvar queryIdentifier = function (query) {\r\n return query._delegate._queryIdentifier;\r\n};\r\n/**\r\n * Forces the RepoManager to create Repos that use ReadonlyRestClient instead of PersistentConnection.\r\n */\r\nvar forceRestClient = function (forceRestClient) {\r\n repoManagerForceRestClient(forceRestClient);\r\n};\n\nvar TEST_ACCESS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DataConnection: DataConnection,\n RealTimeConnection: RealTimeConnection,\n hijackHash: hijackHash,\n ConnectionTarget: ConnectionTarget,\n queryIdentifier: queryIdentifier,\n forceRestClient: forceRestClient\n});\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ServerValue = Database.ServerValue;\r\nfunction registerDatabase(instance) {\r\n // set SDK_VERSION\r\n setSDKVersion(instance.SDK_VERSION);\r\n // Register the Database Service with the 'firebase' namespace.\r\n var namespace = instance.INTERNAL.registerComponent(new Component('database', function (container, _a) {\r\n var url = _a.instanceIdentifier;\r\n /* Dependencies */\r\n // getImmediate for FirebaseApp will always succeed\r\n var app = container.getProvider('app').getImmediate();\r\n var authProvider = container.getProvider('auth-internal');\r\n var appCheckProvider = container.getProvider('app-check-internal');\r\n return new Database(repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url), app);\r\n }, \"PUBLIC\" /* PUBLIC */)\r\n .setServiceProps(\r\n // firebase.database namespace properties\r\n {\r\n Reference: Reference,\r\n Query: Query,\r\n Database: Database,\r\n DataSnapshot: DataSnapshot,\r\n enableLogging: enableLogging,\r\n INTERNAL: INTERNAL,\r\n ServerValue: ServerValue,\r\n TEST_ACCESS: TEST_ACCESS\r\n })\r\n .setMultipleInstances(true));\r\n instance.registerVersion(name, version);\r\n if (isNodeSdk()) {\r\n module.exports = namespace;\r\n }\r\n}\r\nregisterDatabase(firebase);\n\nexport { DataSnapshot, Database, OnDisconnect, Query, Reference, ServerValue, enableLogging, registerDatabase };\n//# sourceMappingURL=index.esm.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var computeDestinationPoint=function computeDestinationPoint(start,distance,bearing){var radius=arguments.length>3&&arguments[3]!==undefined?arguments[3]:6371000;var lat=(0,_getLatitude.default)(start);var lng=(0,_getLongitude.default)(start);var delta=distance/radius;var theta=(0,_toRad.default)(bearing);var phi1=(0,_toRad.default)(lat);var lambda1=(0,_toRad.default)(lng);var phi2=Math.asin(Math.sin(phi1)*Math.cos(delta)+Math.cos(phi1)*Math.sin(delta)*Math.cos(theta));var lambda2=lambda1+Math.atan2(Math.sin(theta)*Math.sin(delta)*Math.cos(phi1),Math.cos(delta)-Math.sin(phi1)*Math.sin(phi2));var longitude=(0,_toDeg.default)(lambda2);if(longitude<_constants.MINLON||longitude>_constants.MAXLON){lambda2=(lambda2+3*Math.PI)%(2*Math.PI)-Math.PI;longitude=(0,_toDeg.default)(lambda2)}return{latitude:(0,_toDeg.default)(phi2),longitude:longitude}};var _default=computeDestinationPoint;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var convertArea=function convertArea(squareMeters){var targetUnit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"m\";var factor=_constants.areaConversion[targetUnit];if(factor){return squareMeters*factor}throw new Error(\"Invalid unit used for area conversion.\")};var _default=convertArea;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var convertDistance=function convertDistance(meters){var targetUnit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"m\";var factor=_constants.distanceConversion[targetUnit];if(factor){return meters*factor}throw new Error(\"Invalid unit used for distance conversion.\")};var _default=convertDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var convertSpeed=function convertSpeed(metersPerSecond){var targetUnit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"kmh\";switch(targetUnit){case\"kmh\":return metersPerSecond*_constants.timeConversion.h*_constants.distanceConversion.km;case\"mph\":return metersPerSecond*_constants.timeConversion.h*_constants.distanceConversion.mi;default:return metersPerSecond;}};var _default=convertSpeed;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o===\"string\")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n===\"Object\"&&o.constructor)n=o.constructor.name;if(n===\"Map\"||n===\"Set\")return Array.from(o);if(n===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i1&&arguments[1]!==undefined?arguments[1]:4;var factor=Math.pow(10,decimals);return Math.round(number*factor)/factor};var decimal2sexagesimalNext=function decimal2sexagesimalNext(decimal){var _decimal$toString$spl=decimal.toString().split(\".\"),_decimal$toString$spl2=_slicedToArray(_decimal$toString$spl,2),pre=_decimal$toString$spl2[0],post=_decimal$toString$spl2[1];var deg=Math.abs(Number(pre));var min0=Number(\"0.\"+(post||0))*60;var sec0=min0.toString().split(\".\");var min=Math.floor(min0);var sec=imprecise(Number(\"0.\"+(sec0[1]||0))*60).toString();var _sec$split=sec.split(\".\"),_sec$split2=_slicedToArray(_sec$split,2),secPreDec=_sec$split2[0],_sec$split2$=_sec$split2[1],secDec=_sec$split2$===void 0?\"0\":_sec$split2$;return deg+\"\\xB0 \"+min.toString().padStart(2,\"0\")+\"' \"+secPreDec.padStart(2,\"0\")+\".\"+secDec.padEnd(1,\"0\")+\"\\\"\"};var _default=decimal2sexagesimalNext;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _orderByDistance=_interopRequireDefault(require(\"./orderByDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var findNearest=function findNearest(point,coords){return(0,_orderByDistance.default)(point,coords)[0]};var _default=findNearest;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _toRad=_interopRequireDefault(require(\"./toRad\"));var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getAreaOfPolygon=function getAreaOfPolygon(points){var area=0;if(points.length>2){var lowerIndex;var middleIndex;var upperIndex;for(var i=0;iMIN_LAT_RAD&&maxLatMAX_LON_RAD){maxLon-=Math.PI*2}}else{minLat=Math.max(minLat,MIN_LAT_RAD);maxLat=Math.min(maxLat,MAX_LAT_RAD);minLon=MIN_LON_RAD;maxLon=MAX_LON_RAD}return[{latitude:(0,_toDeg.default)(minLat),longitude:(0,_toDeg.default)(minLon)},{latitude:(0,_toDeg.default)(maxLat),longitude:(0,_toDeg.default)(maxLon)}]};var _default=getBoundsOfDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getCenter=function getCenter(points){if(Array.isArray(points)===false||points.length===0){return false}var numberOfPoints=points.length;var sum=points.reduce(function(acc,point){var pointLat=(0,_toRad.default)((0,_getLatitude.default)(point));var pointLon=(0,_toRad.default)((0,_getLongitude.default)(point));return{X:acc.X+Math.cos(pointLat)*Math.cos(pointLon),Y:acc.Y+Math.cos(pointLat)*Math.sin(pointLon),Z:acc.Z+Math.sin(pointLat)}},{X:0,Y:0,Z:0});var X=sum.X/numberOfPoints;var Y=sum.Y/numberOfPoints;var Z=sum.Z/numberOfPoints;return{longitude:(0,_toDeg.default)(Math.atan2(Y,X)),latitude:(0,_toDeg.default)(Math.atan2(Z,Math.sqrt(X*X+Y*Y)))}};var _default=getCenter;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getBounds=_interopRequireDefault(require(\"./getBounds\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getCenterOfBounds=function getCenterOfBounds(coords){var bounds=(0,_getBounds.default)(coords);var latitude=bounds.minLat+(bounds.maxLat-bounds.minLat)/2;var longitude=bounds.minLng+(bounds.maxLng-bounds.minLng)/2;return{latitude:parseFloat(latitude.toFixed(6)),longitude:parseFloat(longitude.toFixed(6))}};var _default=getCenterOfBounds;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getRhumbLineBearing=_interopRequireDefault(require(\"./getRhumbLineBearing\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getCompassDirection=function getCompassDirection(origin,dest){var bearingFn=arguments.length>2&&arguments[2]!==undefined?arguments[2]:_getRhumbLineBearing.default;var bearing=typeof bearingFn===\"function\"?bearingFn(origin,dest):(0,_getRhumbLineBearing.default)(origin,dest);if(isNaN(bearing)){throw new Error(\"Could not calculate bearing for given points. Check your bearing function\")}switch(Math.round(bearing/22.5)){case 1:return\"NNE\";case 2:return\"NE\";case 3:return\"ENE\";case 4:return\"E\";case 5:return\"ESE\";case 6:return\"SE\";case 7:return\"SSE\";case 8:return\"S\";case 9:return\"SSW\";case 10:return\"SW\";case 11:return\"WSW\";case 12:return\"W\";case 13:return\"WNW\";case 14:return\"NW\";case 15:return\"NNW\";default:return\"N\";}};var _default=getCompassDirection;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getGreatCircleBearing=function getGreatCircleBearing(origin,dest){var destLat=(0,_getLatitude.default)(dest);var detLon=(0,_getLongitude.default)(dest);var originLat=(0,_getLatitude.default)(origin);var originLon=(0,_getLongitude.default)(origin);var bearing=((0,_toDeg.default)(Math.atan2(Math.sin((0,_toRad.default)(detLon)-(0,_toRad.default)(originLon))*Math.cos((0,_toRad.default)(destLat)),Math.cos((0,_toRad.default)(originLat))*Math.sin((0,_toRad.default)(destLat))-Math.sin((0,_toRad.default)(originLat))*Math.cos((0,_toRad.default)(destLat))*Math.cos((0,_toRad.default)(detLon)-(0,_toRad.default)(originLon))))+360)%360;return bearing};var _default=getGreatCircleBearing;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _typeof(obj){\"@babel/helpers - typeof\";if(typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj}}return _typeof(obj)}var getPathLength=function getPathLength(points){var distanceFn=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_getDistance.default;return points.reduce(function(acc,point){if(_typeof(acc)===\"object\"&&acc.last!==null){acc.distance+=distanceFn(point,acc.last)}acc.last=point;return acc},{last:null,distance:0}).distance};var _default=getPathLength;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getDistance=function getDistance(start,end){var accuracy=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;accuracy=typeof accuracy!==\"undefined\"&&!isNaN(accuracy)?accuracy:1;var startLat=(0,_getLatitude.default)(start);var startLon=(0,_getLongitude.default)(start);var endLat=(0,_getLatitude.default)(end);var endLon=(0,_getLongitude.default)(end);var b=6356752.314245;var ellipsoidParams=1/298.257223563;var L=(0,_toRad.default)(endLon-startLon);var cosSigma;var sigma;var sinAlpha;var cosSqAlpha;var cos2SigmaM;var sinSigma;var U1=Math.atan((1-ellipsoidParams)*Math.tan((0,_toRad.default)(parseFloat(startLat))));var U2=Math.atan((1-ellipsoidParams)*Math.tan((0,_toRad.default)(parseFloat(endLat))));var sinU1=Math.sin(U1);var cosU1=Math.cos(U1);var sinU2=Math.sin(U2);var cosU2=Math.cos(U2);var lambda=L;var lambdaP;var iterLimit=100;do{var sinLambda=Math.sin(lambda);var cosLambda=Math.cos(lambda);sinSigma=Math.sqrt(cosU2*sinLambda*(cosU2*sinLambda)+(cosU1*sinU2-sinU1*cosU2*cosLambda)*(cosU1*sinU2-sinU1*cosU2*cosLambda));if(sinSigma===0){return 0}cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;sigma=Math.atan2(sinSigma,cosSigma);sinAlpha=cosU1*cosU2*sinLambda/sinSigma;cosSqAlpha=1-sinAlpha*sinAlpha;cos2SigmaM=cosSigma-2*sinU1*sinU2/cosSqAlpha;if(isNaN(cos2SigmaM)){cos2SigmaM=0}var C=ellipsoidParams/16*cosSqAlpha*(4+ellipsoidParams*(4-3*cosSqAlpha));lambdaP=lambda;lambda=L+(1-C)*ellipsoidParams*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)))}while(Math.abs(lambda-lambdaP)>1e-12&&--iterLimit>0);if(iterLimit===0){return NaN}var uSq=cosSqAlpha*(_constants.earthRadius*_constants.earthRadius-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var distance=b*A*(sigma-deltaSigma);return Math.round(distance/accuracy)*accuracy};var _default=getDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var getRoughCompassDirection=function getRoughCompassDirection(exact){if(/^(NNE|NE|NNW|N)$/.test(exact)){return\"N\"}if(/^(ENE|E|ESE|SE)$/.test(exact)){return\"E\"}if(/^(SSE|S|SSW|SW)$/.test(exact)){return\"S\"}if(/^(WSW|W|WNW|NW)$/.test(exact)){return\"W\"}};var _default=getRoughCompassDirection;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getSpeed=function getSpeed(start,end){var distanceFn=arguments.length>2&&arguments[2]!==undefined?arguments[2]:_getDistance.default;var distance=distanceFn(start,end);var time=Number(end.time)-Number(start.time);var metersPerSecond=distance/time*1000;return metersPerSecond};var _default=getSpeed;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isPointInLine=function isPointInLine(point,lineStart,lineEnd){return(0,_getDistance.default)(lineStart,point)+(0,_getDistance.default)(point,lineEnd)===(0,_getDistance.default)(lineStart,lineEnd)};var _default=isPointInLine;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isPointInPolygon=function isPointInPolygon(point,polygon){var isInside=false;var totalPolys=polygon.length;for(var i=-1,j=totalPolys-1;++iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);i 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n valuesForPlaceholders[_key - 1] = arguments[_key];\n }\n\n var input = str || \"\";\n if (typeof input === \"string\") {\n input = this.getString(str, null, true) || input;\n }\n var ref = input.split(placeholderReferenceRegex).filter(function (textPart) {\n return !!textPart;\n }).map(function (textPart) {\n if (textPart.match(placeholderReferenceRegex)) {\n var matchedKey = textPart.slice(5, -1);\n var referenceValue = _this6.getString(matchedKey);\n if (referenceValue) return referenceValue;\n if (_this6._opts.logsEnabled) {\n console.log(\"No Localization ref found for '\" + textPart + \"' in string '\" + str + \"'\");\n }\n // lets print it another way so next replacer doesn't find it\n return \"$ref(id:\" + matchedKey + \")\";\n }\n return textPart;\n }).join(\"\");\n return ref.split(placeholderReplaceRegex).filter(function (textPart) {\n return !!textPart;\n }).map(function (textPart) {\n if (textPart.match(placeholderReplaceRegex)) {\n var matchedKey = textPart.slice(1, -1);\n var valueForPlaceholder = valuesForPlaceholders[matchedKey];\n // If no value found, check if working with an object instead\n if (valueForPlaceholder === undefined) {\n var valueFromObjectPlaceholder = valuesForPlaceholders[0][matchedKey];\n if (valueFromObjectPlaceholder !== undefined) {\n valueForPlaceholder = valueFromObjectPlaceholder;\n } else {\n // If value still isn't found, then it must have been undefined/null\n return valueForPlaceholder;\n }\n }\n\n return valueForPlaceholder;\n }\n return textPart;\n }).join(\"\");\n }\n\n // Return a string with the passed key in a different language or defalt if not set\n // We allow deep . notation for finding strings\n\n }, {\n key: \"getString\",\n value: function getString(key, language) {\n var omitWarning = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n try {\n var current = this._props[language || this._language];\n var paths = key.split(\".\");\n for (var i = 0; i < paths.length; i += 1) {\n if (current[paths[i]] === undefined) {\n throw Error(paths[i]);\n }\n current = current[paths[i]];\n }\n return current;\n } catch (ex) {\n if (!omitWarning && this._opts.logsEnabled) {\n console.log(\"No localization found for key '\" + key + \"' and language '\" + language + \"', failed on \" + ex.message);\n }\n }\n return null;\n }\n\n /**\n * The current props (locale object)\n */\n\n }, {\n key: \"getContent\",\n value: function getContent() {\n return this._props;\n }\n }]);\n\n return LocalizedStrings;\n}();\n\nexports.default = LocalizedStrings;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getInterfaceLanguage = getInterfaceLanguage;\nexports.getBestMatchingLanguage = getBestMatchingLanguage;\nexports.validateTranslationKeys = validateTranslationKeys;\nexports.randomPseudo = randomPseudo;\n/**\n * Return the current interface language\n * If the navigator object is defined it returns the current navigator language\n * otherwise it falls back to 'en-US'\n * Works in browsers\n */\nfunction getInterfaceLanguage() {\n var defaultLang = 'en-US';\n if (typeof navigator === 'undefined') {\n return defaultLang;\n }\n var nav = navigator; // eslint-disable-line no-undef\n if (nav) {\n if (nav.language) {\n return nav.language;\n }\n if (!!nav.languages && !!nav.languages[0]) {\n return nav.languages[0];\n }\n if (nav.userLanguage) {\n return nav.userLanguage;\n }\n if (nav.browserLanguage) {\n return nav.browserLanguage;\n }\n }\n return defaultLang;\n}\n\n/**\n * Get the best match based on the language passed and the available languages\n * @param {*} language\n * @param {*} props\n */\nfunction getBestMatchingLanguage(language, props) {\n // If an object with the passed language key exists return it\n if (props[language]) return language;\n\n // if the string is composed try to find a match with only the first language identifiers (en-US --> en)\n var idx = language.indexOf('-');\n var auxLang = idx >= 0 ? language.substring(0, idx) : language;\n return props[auxLang] ? auxLang : Object.keys(props)[0];\n}\n\n/**\n * Check that the keys used in the provided strings object don't collide with existing property\n * already defined in the LocalizedStrings object\n * @param {*} translationKeys\n */\nfunction validateTranslationKeys(translationKeys) {\n var reservedNames = ['_interfaceLanguage', '_language', '_defaultLanguage', '_defaultLanguageFirstLevelKeys', '_props'];\n translationKeys.forEach(function (key) {\n if (reservedNames.indexOf(key) !== -1) {\n throw new Error(key + ' cannot be used as a key. It is a reserved word.');\n }\n });\n}\n\n/**\n * Get a random pseudo string back after specified a length\n * @param {Number} len - How many characters to get back\n */\nfunction randomPseudo(len) {\n var text = '';\n var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < len; i += 1) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }return text;\n}","/* UAParser.js v1.0.37\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.37\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n var requiredPrefixes = prefixProperties[property];\n\n if (requiredPrefixes && style.hasOwnProperty(property)) {\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n\n for (var i = 0; i < requiredPrefixes.length; ++i) {\n var prefixedProperty = requiredPrefixes[i] + capitalizedProperty;\n\n if (!style[prefixedProperty]) {\n style[prefixedProperty] = style[property];\n }\n }\n }\n\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = hyphenateProperty;\n\nvar _hyphenateStyleName = require(\"hyphenate-style-name\");\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2[\"default\"])(property);\n}","\"use strict\";\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 */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\n// -- Inlined from fbjs --\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\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 throw error;\n }\n}\n\nvar warning = function(){};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\n// /-- Inlined from fbjs --\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return

Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.bodyRegExps={xml:/&(?:#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\\d+|#[xX][\\da-fA-F]+|[0-9a-zA-Z]+);?/g};exports.namedReferences={xml:{entities:{\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\",\"&\":\"&\"},characters:{\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"&\":\"&\"}},html4:{entities:{\"'\":\"'\",\" \":\" \",\" \":\" \",\"¡\":\"¡\",\"¡\":\"¡\",\"¢\":\"¢\",\"¢\":\"¢\",\"£\":\"£\",\"£\":\"£\",\"¤\":\"¤\",\"¤\":\"¤\",\"¥\":\"¥\",\"¥\":\"¥\",\"¦\":\"¦\",\"¦\":\"¦\",\"§\":\"§\",\"§\":\"§\",\"¨\":\"¨\",\"¨\":\"¨\",\"©\":\"©\",\"©\":\"©\",\"ª\":\"ª\",\"ª\":\"ª\",\"«\":\"«\",\"«\":\"«\",\"¬\":\"¬\",\"¬\":\"¬\",\"­\":\"­\",\"­\":\"­\",\"®\":\"®\",\"®\":\"®\",\"¯\":\"¯\",\"¯\":\"¯\",\"°\":\"°\",\"°\":\"°\",\"±\":\"±\",\"±\":\"±\",\"²\":\"²\",\"²\":\"²\",\"³\":\"³\",\"³\":\"³\",\"´\":\"´\",\"´\":\"´\",\"µ\":\"µ\",\"µ\":\"µ\",\"¶\":\"¶\",\"¶\":\"¶\",\"·\":\"·\",\"·\":\"·\",\"¸\":\"¸\",\"¸\":\"¸\",\"¹\":\"¹\",\"¹\":\"¹\",\"º\":\"º\",\"º\":\"º\",\"»\":\"»\",\"»\":\"»\",\"¼\":\"¼\",\"¼\":\"¼\",\"½\":\"½\",\"½\":\"½\",\"¾\":\"¾\",\"¾\":\"¾\",\"¿\":\"¿\",\"¿\":\"¿\",\"À\":\"À\",\"À\":\"À\",\"Á\":\"Á\",\"Á\":\"Á\",\"Â\":\"Â\",\"Â\":\"Â\",\"Ã\":\"Ã\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"Ä\":\"Ä\",\"Å\":\"Å\",\"Å\":\"Å\",\"Æ\":\"Æ\",\"Æ\":\"Æ\",\"Ç\":\"Ç\",\"Ç\":\"Ç\",\"È\":\"È\",\"È\":\"È\",\"É\":\"É\",\"É\":\"É\",\"Ê\":\"Ê\",\"Ê\":\"Ê\",\"Ë\":\"Ë\",\"Ë\":\"Ë\",\"Ì\":\"Ì\",\"Ì\":\"Ì\",\"Í\":\"Í\",\"Í\":\"Í\",\"Î\":\"Î\",\"Î\":\"Î\",\"Ï\":\"Ï\",\"Ï\":\"Ï\",\"Ð\":\"Ð\",\"Ð\":\"Ð\",\"Ñ\":\"Ñ\",\"Ñ\":\"Ñ\",\"Ò\":\"Ò\",\"Ò\":\"Ò\",\"Ó\":\"Ó\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"Ô\":\"Ô\",\"Õ\":\"Õ\",\"Õ\":\"Õ\",\"Ö\":\"Ö\",\"Ö\":\"Ö\",\"×\":\"×\",\"×\":\"×\",\"Ø\":\"Ø\",\"Ø\":\"Ø\",\"Ù\":\"Ù\",\"Ù\":\"Ù\",\"Ú\":\"Ú\",\"Ú\":\"Ú\",\"Û\":\"Û\",\"Û\":\"Û\",\"Ü\":\"Ü\",\"Ü\":\"Ü\",\"Ý\":\"Ý\",\"Ý\":\"Ý\",\"Þ\":\"Þ\",\"Þ\":\"Þ\",\"ß\":\"ß\",\"ß\":\"ß\",\"à\":\"à\",\"à\":\"à\",\"á\":\"á\",\"á\":\"á\",\"â\":\"â\",\"â\":\"â\",\"ã\":\"ã\",\"ã\":\"ã\",\"ä\":\"ä\",\"ä\":\"ä\",\"å\":\"å\",\"å\":\"å\",\"æ\":\"æ\",\"æ\":\"æ\",\"ç\":\"ç\",\"ç\":\"ç\",\"è\":\"è\",\"è\":\"è\",\"é\":\"é\",\"é\":\"é\",\"ê\":\"ê\",\"ê\":\"ê\",\"ë\":\"ë\",\"ë\":\"ë\",\"ì\":\"ì\",\"ì\":\"ì\",\"í\":\"í\",\"í\":\"í\",\"î\":\"î\",\"î\":\"î\",\"ï\":\"ï\",\"ï\":\"ï\",\"ð\":\"ð\",\"ð\":\"ð\",\"ñ\":\"ñ\",\"ñ\":\"ñ\",\"ò\":\"ò\",\"ò\":\"ò\",\"ó\":\"ó\",\"ó\":\"ó\",\"ô\":\"ô\",\"ô\":\"ô\",\"õ\":\"õ\",\"õ\":\"õ\",\"ö\":\"ö\",\"ö\":\"ö\",\"÷\":\"÷\",\"÷\":\"÷\",\"ø\":\"ø\",\"ø\":\"ø\",\"ù\":\"ù\",\"ù\":\"ù\",\"ú\":\"ú\",\"ú\":\"ú\",\"û\":\"û\",\"û\":\"û\",\"ü\":\"ü\",\"ü\":\"ü\",\"ý\":\"ý\",\"ý\":\"ý\",\"þ\":\"þ\",\"þ\":\"þ\",\"ÿ\":\"ÿ\",\"ÿ\":\"ÿ\",\""\":'\"',\""\":'\"',\"&\":\"&\",\"&\":\"&\",\"<\":\"<\",\"<\":\"<\",\">\":\">\",\">\":\">\",\"Œ\":\"Œ\",\"œ\":\"œ\",\"Š\":\"Š\",\"š\":\"š\",\"Ÿ\":\"Ÿ\",\"ˆ\":\"ˆ\",\"˜\":\"˜\",\" \":\" \",\" \":\" \",\" \":\" \",\"‌\":\"‌\",\"‍\":\"‍\",\"‎\":\"‎\",\"‏\":\"‏\",\"–\":\"–\",\"—\":\"—\",\"‘\":\"‘\",\"’\":\"’\",\"‚\":\"‚\",\"“\":\"“\",\"”\":\"”\",\"„\":\"„\",\"†\":\"†\",\"‡\":\"‡\",\"‰\":\"‰\",\"‹\":\"‹\",\"›\":\"›\",\"€\":\"€\",\"ƒ\":\"ƒ\",\"Α\":\"Α\",\"Β\":\"Β\",\"Γ\":\"Γ\",\"Δ\":\"Δ\",\"Ε\":\"Ε\",\"Ζ\":\"Ζ\",\"Η\":\"Η\",\"Θ\":\"Θ\",\"Ι\":\"Ι\",\"Κ\":\"Κ\",\"Λ\":\"Λ\",\"Μ\":\"Μ\",\"Ν\":\"Ν\",\"Ξ\":\"Ξ\",\"Ο\":\"Ο\",\"Π\":\"Π\",\"Ρ\":\"Ρ\",\"Σ\":\"Σ\",\"Τ\":\"Τ\",\"Υ\":\"Υ\",\"Φ\":\"Φ\",\"Χ\":\"Χ\",\"Ψ\":\"Ψ\",\"Ω\":\"Ω\",\"α\":\"α\",\"β\":\"β\",\"γ\":\"γ\",\"δ\":\"δ\",\"ε\":\"ε\",\"ζ\":\"ζ\",\"η\":\"η\",\"θ\":\"θ\",\"ι\":\"ι\",\"κ\":\"κ\",\"λ\":\"λ\",\"μ\":\"μ\",\"ν\":\"ν\",\"ξ\":\"ξ\",\"ο\":\"ο\",\"π\":\"π\",\"ρ\":\"ρ\",\"ς\":\"ς\",\"σ\":\"σ\",\"τ\":\"τ\",\"υ\":\"υ\",\"φ\":\"φ\",\"χ\":\"χ\",\"ψ\":\"ψ\",\"ω\":\"ω\",\"ϑ\":\"ϑ\",\"ϒ\":\"ϒ\",\"ϖ\":\"ϖ\",\"•\":\"•\",\"…\":\"…\",\"′\":\"′\",\"″\":\"″\",\"‾\":\"‾\",\"⁄\":\"⁄\",\"℘\":\"℘\",\"ℑ\":\"ℑ\",\"ℜ\":\"ℜ\",\"™\":\"™\",\"ℵ\":\"ℵ\",\"←\":\"←\",\"↑\":\"↑\",\"→\":\"→\",\"↓\":\"↓\",\"↔\":\"↔\",\"↵\":\"↵\",\"⇐\":\"⇐\",\"⇑\":\"⇑\",\"⇒\":\"⇒\",\"⇓\":\"⇓\",\"⇔\":\"⇔\",\"∀\":\"∀\",\"∂\":\"∂\",\"∃\":\"∃\",\"∅\":\"∅\",\"∇\":\"∇\",\"∈\":\"∈\",\"∉\":\"∉\",\"∋\":\"∋\",\"∏\":\"∏\",\"∑\":\"∑\",\"−\":\"−\",\"∗\":\"∗\",\"√\":\"√\",\"∝\":\"∝\",\"∞\":\"∞\",\"∠\":\"∠\",\"∧\":\"∧\",\"∨\":\"∨\",\"∩\":\"∩\",\"∪\":\"∪\",\"∫\":\"∫\",\"∴\":\"∴\",\"∼\":\"∼\",\"≅\":\"≅\",\"≈\":\"≈\",\"≠\":\"≠\",\"≡\":\"≡\",\"≤\":\"≤\",\"≥\":\"≥\",\"⊂\":\"⊂\",\"⊃\":\"⊃\",\"⊄\":\"⊄\",\"⊆\":\"⊆\",\"⊇\":\"⊇\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"⊥\":\"⊥\",\"⋅\":\"⋅\",\"⌈\":\"⌈\",\"⌉\":\"⌉\",\"⌊\":\"⌊\",\"⌋\":\"⌋\",\"⟨\":\"〈\",\"⟩\":\"〉\",\"◊\":\"◊\",\"♠\":\"♠\",\"♣\":\"♣\",\"♥\":\"♥\",\"♦\":\"♦\"},characters:{\"'\":\"'\",\" \":\" \",\"¡\":\"¡\",\"¢\":\"¢\",\"£\":\"£\",\"¤\":\"¤\",\"¥\":\"¥\",\"¦\":\"¦\",\"§\":\"§\",\"¨\":\"¨\",\"©\":\"©\",\"ª\":\"ª\",\"«\":\"«\",\"¬\":\"¬\",\"­\":\"­\",\"®\":\"®\",\"¯\":\"¯\",\"°\":\"°\",\"±\":\"±\",\"²\":\"²\",\"³\":\"³\",\"´\":\"´\",\"µ\":\"µ\",\"¶\":\"¶\",\"·\":\"·\",\"¸\":\"¸\",\"¹\":\"¹\",\"º\":\"º\",\"»\":\"»\",\"¼\":\"¼\",\"½\":\"½\",\"¾\":\"¾\",\"¿\":\"¿\",\"À\":\"À\",\"Á\":\"Á\",\"Â\":\"Â\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"Å\":\"Å\",\"Æ\":\"Æ\",\"Ç\":\"Ç\",\"È\":\"È\",\"É\":\"É\",\"Ê\":\"Ê\",\"Ë\":\"Ë\",\"Ì\":\"Ì\",\"Í\":\"Í\",\"Î\":\"Î\",\"Ï\":\"Ï\",\"Ð\":\"Ð\",\"Ñ\":\"Ñ\",\"Ò\":\"Ò\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"Õ\":\"Õ\",\"Ö\":\"Ö\",\"×\":\"×\",\"Ø\":\"Ø\",\"Ù\":\"Ù\",\"Ú\":\"Ú\",\"Û\":\"Û\",\"Ü\":\"Ü\",\"Ý\":\"Ý\",\"Þ\":\"Þ\",\"ß\":\"ß\",\"à\":\"à\",\"á\":\"á\",\"â\":\"â\",\"ã\":\"ã\",\"ä\":\"ä\",\"å\":\"å\",\"æ\":\"æ\",\"ç\":\"ç\",\"è\":\"è\",\"é\":\"é\",\"ê\":\"ê\",\"ë\":\"ë\",\"ì\":\"ì\",\"í\":\"í\",\"î\":\"î\",\"ï\":\"ï\",\"ð\":\"ð\",\"ñ\":\"ñ\",\"ò\":\"ò\",\"ó\":\"ó\",\"ô\":\"ô\",\"õ\":\"õ\",\"ö\":\"ö\",\"÷\":\"÷\",\"ø\":\"ø\",\"ù\":\"ù\",\"ú\":\"ú\",\"û\":\"û\",\"ü\":\"ü\",\"ý\":\"ý\",\"þ\":\"þ\",\"ÿ\":\"ÿ\",'\"':\""\",\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"Œ\":\"Œ\",\"œ\":\"œ\",\"Š\":\"Š\",\"š\":\"š\",\"Ÿ\":\"Ÿ\",\"ˆ\":\"ˆ\",\"˜\":\"˜\",\" \":\" \",\" \":\" \",\" \":\" \",\"‌\":\"‌\",\"‍\":\"‍\",\"‎\":\"‎\",\"‏\":\"‏\",\"–\":\"–\",\"—\":\"—\",\"‘\":\"‘\",\"’\":\"’\",\"‚\":\"‚\",\"“\":\"“\",\"”\":\"”\",\"„\":\"„\",\"†\":\"†\",\"‡\":\"‡\",\"‰\":\"‰\",\"‹\":\"‹\",\"›\":\"›\",\"€\":\"€\",\"ƒ\":\"ƒ\",\"Α\":\"Α\",\"Β\":\"Β\",\"Γ\":\"Γ\",\"Δ\":\"Δ\",\"Ε\":\"Ε\",\"Ζ\":\"Ζ\",\"Η\":\"Η\",\"Θ\":\"Θ\",\"Ι\":\"Ι\",\"Κ\":\"Κ\",\"Λ\":\"Λ\",\"Μ\":\"Μ\",\"Ν\":\"Ν\",\"Ξ\":\"Ξ\",\"Ο\":\"Ο\",\"Π\":\"Π\",\"Ρ\":\"Ρ\",\"Σ\":\"Σ\",\"Τ\":\"Τ\",\"Υ\":\"Υ\",\"Φ\":\"Φ\",\"Χ\":\"Χ\",\"Ψ\":\"Ψ\",\"Ω\":\"Ω\",\"α\":\"α\",\"β\":\"β\",\"γ\":\"γ\",\"δ\":\"δ\",\"ε\":\"ε\",\"ζ\":\"ζ\",\"η\":\"η\",\"θ\":\"θ\",\"ι\":\"ι\",\"κ\":\"κ\",\"λ\":\"λ\",\"μ\":\"μ\",\"ν\":\"ν\",\"ξ\":\"ξ\",\"ο\":\"ο\",\"π\":\"π\",\"ρ\":\"ρ\",\"ς\":\"ς\",\"σ\":\"σ\",\"τ\":\"τ\",\"υ\":\"υ\",\"φ\":\"φ\",\"χ\":\"χ\",\"ψ\":\"ψ\",\"ω\":\"ω\",\"ϑ\":\"ϑ\",\"ϒ\":\"ϒ\",\"ϖ\":\"ϖ\",\"•\":\"•\",\"…\":\"…\",\"′\":\"′\",\"″\":\"″\",\"‾\":\"‾\",\"⁄\":\"⁄\",\"℘\":\"℘\",\"ℑ\":\"ℑ\",\"ℜ\":\"ℜ\",\"™\":\"™\",\"ℵ\":\"ℵ\",\"←\":\"←\",\"↑\":\"↑\",\"→\":\"→\",\"↓\":\"↓\",\"↔\":\"↔\",\"↵\":\"↵\",\"⇐\":\"⇐\",\"⇑\":\"⇑\",\"⇒\":\"⇒\",\"⇓\":\"⇓\",\"⇔\":\"⇔\",\"∀\":\"∀\",\"∂\":\"∂\",\"∃\":\"∃\",\"∅\":\"∅\",\"∇\":\"∇\",\"∈\":\"∈\",\"∉\":\"∉\",\"∋\":\"∋\",\"∏\":\"∏\",\"∑\":\"∑\",\"−\":\"−\",\"∗\":\"∗\",\"√\":\"√\",\"∝\":\"∝\",\"∞\":\"∞\",\"∠\":\"∠\",\"∧\":\"∧\",\"∨\":\"∨\",\"∩\":\"∩\",\"∪\":\"∪\",\"∫\":\"∫\",\"∴\":\"∴\",\"∼\":\"∼\",\"≅\":\"≅\",\"≈\":\"≈\",\"≠\":\"≠\",\"≡\":\"≡\",\"≤\":\"≤\",\"≥\":\"≥\",\"⊂\":\"⊂\",\"⊃\":\"⊃\",\"⊄\":\"⊄\",\"⊆\":\"⊆\",\"⊇\":\"⊇\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"⊥\":\"⊥\",\"⋅\":\"⋅\",\"⌈\":\"⌈\",\"⌉\":\"⌉\",\"⌊\":\"⌊\",\"⌋\":\"⌋\",\"〈\":\"⟨\",\"〉\":\"⟩\",\"◊\":\"◊\",\"♠\":\"♠\",\"♣\":\"♣\",\"♥\":\"♥\",\"♦\":\"♦\"}},html5:{entities:{\"Æ\":\"Æ\",\"Æ\":\"Æ\",\"&\":\"&\",\"&\":\"&\",\"Á\":\"Á\",\"Á\":\"Á\",\"Ă\":\"Ă\",\"Â\":\"Â\",\"Â\":\"Â\",\"А\":\"А\",\"𝔄\":\"𝔄\",\"À\":\"À\",\"À\":\"À\",\"Α\":\"Α\",\"Ā\":\"Ā\",\"⩓\":\"⩓\",\"Ą\":\"Ą\",\"𝔸\":\"𝔸\",\"⁡\":\"⁡\",\"Å\":\"Å\",\"Å\":\"Å\",\"𝒜\":\"𝒜\",\"≔\":\"≔\",\"Ã\":\"Ã\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"Ä\":\"Ä\",\"∖\":\"∖\",\"⫧\":\"⫧\",\"⌆\":\"⌆\",\"Б\":\"Б\",\"∵\":\"∵\",\"ℬ\":\"ℬ\",\"Β\":\"Β\",\"𝔅\":\"𝔅\",\"𝔹\":\"𝔹\",\"˘\":\"˘\",\"ℬ\":\"ℬ\",\"≎\":\"≎\",\"Ч\":\"Ч\",\"©\":\"©\",\"©\":\"©\",\"Ć\":\"Ć\",\"⋒\":\"⋒\",\"ⅅ\":\"ⅅ\",\"ℭ\":\"ℭ\",\"Č\":\"Č\",\"Ç\":\"Ç\",\"Ç\":\"Ç\",\"Ĉ\":\"Ĉ\",\"∰\":\"∰\",\"Ċ\":\"Ċ\",\"¸\":\"¸\",\"·\":\"·\",\"ℭ\":\"ℭ\",\"Χ\":\"Χ\",\"⊙\":\"⊙\",\"⊖\":\"⊖\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"∲\":\"∲\",\"”\":\"”\",\"’\":\"’\",\"∷\":\"∷\",\"⩴\":\"⩴\",\"≡\":\"≡\",\"∯\":\"∯\",\"∮\":\"∮\",\"ℂ\":\"ℂ\",\"∐\":\"∐\",\"∳\":\"∳\",\"⨯\":\"⨯\",\"𝒞\":\"𝒞\",\"⋓\":\"⋓\",\"≍\":\"≍\",\"ⅅ\":\"ⅅ\",\"⤑\":\"⤑\",\"Ђ\":\"Ђ\",\"Ѕ\":\"Ѕ\",\"Џ\":\"Џ\",\"‡\":\"‡\",\"↡\":\"↡\",\"⫤\":\"⫤\",\"Ď\":\"Ď\",\"Д\":\"Д\",\"∇\":\"∇\",\"Δ\":\"Δ\",\"𝔇\":\"𝔇\",\"´\":\"´\",\"˙\":\"˙\",\"˝\":\"˝\",\"`\":\"`\",\"˜\":\"˜\",\"⋄\":\"⋄\",\"ⅆ\":\"ⅆ\",\"𝔻\":\"𝔻\",\"¨\":\"¨\",\"⃜\":\"⃜\",\"≐\":\"≐\",\"∯\":\"∯\",\"¨\":\"¨\",\"⇓\":\"⇓\",\"⇐\":\"⇐\",\"⇔\":\"⇔\",\"⫤\":\"⫤\",\"⟸\":\"⟸\",\"⟺\":\"⟺\",\"⟹\":\"⟹\",\"⇒\":\"⇒\",\"⊨\":\"⊨\",\"⇑\":\"⇑\",\"⇕\":\"⇕\",\"∥\":\"∥\",\"↓\":\"↓\",\"⤓\":\"⤓\",\"⇵\":\"⇵\",\"̑\":\"̑\",\"⥐\":\"⥐\",\"⥞\":\"⥞\",\"↽\":\"↽\",\"⥖\":\"⥖\",\"⥟\":\"⥟\",\"⇁\":\"⇁\",\"⥗\":\"⥗\",\"⊤\":\"⊤\",\"↧\":\"↧\",\"⇓\":\"⇓\",\"𝒟\":\"𝒟\",\"Đ\":\"Đ\",\"Ŋ\":\"Ŋ\",\"Ð\":\"Ð\",\"Ð\":\"Ð\",\"É\":\"É\",\"É\":\"É\",\"Ě\":\"Ě\",\"Ê\":\"Ê\",\"Ê\":\"Ê\",\"Э\":\"Э\",\"Ė\":\"Ė\",\"𝔈\":\"𝔈\",\"È\":\"È\",\"È\":\"È\",\"∈\":\"∈\",\"Ē\":\"Ē\",\"◻\":\"◻\",\"▫\":\"▫\",\"Ę\":\"Ę\",\"𝔼\":\"𝔼\",\"Ε\":\"Ε\",\"⩵\":\"⩵\",\"≂\":\"≂\",\"⇌\":\"⇌\",\"ℰ\":\"ℰ\",\"⩳\":\"⩳\",\"Η\":\"Η\",\"Ë\":\"Ë\",\"Ë\":\"Ë\",\"∃\":\"∃\",\"ⅇ\":\"ⅇ\",\"Ф\":\"Ф\",\"𝔉\":\"𝔉\",\"◼\":\"◼\",\"▪\":\"▪\",\"𝔽\":\"𝔽\",\"∀\":\"∀\",\"ℱ\":\"ℱ\",\"ℱ\":\"ℱ\",\"Ѓ\":\"Ѓ\",\">\":\">\",\">\":\">\",\"Γ\":\"Γ\",\"Ϝ\":\"Ϝ\",\"Ğ\":\"Ğ\",\"Ģ\":\"Ģ\",\"Ĝ\":\"Ĝ\",\"Г\":\"Г\",\"Ġ\":\"Ġ\",\"𝔊\":\"𝔊\",\"⋙\":\"⋙\",\"𝔾\":\"𝔾\",\"≥\":\"≥\",\"⋛\":\"⋛\",\"≧\":\"≧\",\"⪢\":\"⪢\",\"≷\":\"≷\",\"⩾\":\"⩾\",\"≳\":\"≳\",\"𝒢\":\"𝒢\",\"≫\":\"≫\",\"Ъ\":\"Ъ\",\"ˇ\":\"ˇ\",\"^\":\"^\",\"Ĥ\":\"Ĥ\",\"ℌ\":\"ℌ\",\"ℋ\":\"ℋ\",\"ℍ\":\"ℍ\",\"─\":\"─\",\"ℋ\":\"ℋ\",\"Ħ\":\"Ħ\",\"≎\":\"≎\",\"≏\":\"≏\",\"Е\":\"Е\",\"IJ\":\"IJ\",\"Ё\":\"Ё\",\"Í\":\"Í\",\"Í\":\"Í\",\"Î\":\"Î\",\"Î\":\"Î\",\"И\":\"И\",\"İ\":\"İ\",\"ℑ\":\"ℑ\",\"Ì\":\"Ì\",\"Ì\":\"Ì\",\"ℑ\":\"ℑ\",\"Ī\":\"Ī\",\"ⅈ\":\"ⅈ\",\"⇒\":\"⇒\",\"∬\":\"∬\",\"∫\":\"∫\",\"⋂\":\"⋂\",\"⁣\":\"⁣\",\"⁢\":\"⁢\",\"Į\":\"Į\",\"𝕀\":\"𝕀\",\"Ι\":\"Ι\",\"ℐ\":\"ℐ\",\"Ĩ\":\"Ĩ\",\"І\":\"І\",\"Ï\":\"Ï\",\"Ï\":\"Ï\",\"Ĵ\":\"Ĵ\",\"Й\":\"Й\",\"𝔍\":\"𝔍\",\"𝕁\":\"𝕁\",\"𝒥\":\"𝒥\",\"Ј\":\"Ј\",\"Є\":\"Є\",\"Х\":\"Х\",\"Ќ\":\"Ќ\",\"Κ\":\"Κ\",\"Ķ\":\"Ķ\",\"К\":\"К\",\"𝔎\":\"𝔎\",\"𝕂\":\"𝕂\",\"𝒦\":\"𝒦\",\"Љ\":\"Љ\",\"<\":\"<\",\"<\":\"<\",\"Ĺ\":\"Ĺ\",\"Λ\":\"Λ\",\"⟪\":\"⟪\",\"ℒ\":\"ℒ\",\"↞\":\"↞\",\"Ľ\":\"Ľ\",\"Ļ\":\"Ļ\",\"Л\":\"Л\",\"⟨\":\"⟨\",\"←\":\"←\",\"⇤\":\"⇤\",\"⇆\":\"⇆\",\"⌈\":\"⌈\",\"⟦\":\"⟦\",\"⥡\":\"⥡\",\"⇃\":\"⇃\",\"⥙\":\"⥙\",\"⌊\":\"⌊\",\"↔\":\"↔\",\"⥎\":\"⥎\",\"⊣\":\"⊣\",\"↤\":\"↤\",\"⥚\":\"⥚\",\"⊲\":\"⊲\",\"⧏\":\"⧏\",\"⊴\":\"⊴\",\"⥑\":\"⥑\",\"⥠\":\"⥠\",\"↿\":\"↿\",\"⥘\":\"⥘\",\"↼\":\"↼\",\"⥒\":\"⥒\",\"⇐\":\"⇐\",\"⇔\":\"⇔\",\"⋚\":\"⋚\",\"≦\":\"≦\",\"≶\":\"≶\",\"⪡\":\"⪡\",\"⩽\":\"⩽\",\"≲\":\"≲\",\"𝔏\":\"𝔏\",\"⋘\":\"⋘\",\"⇚\":\"⇚\",\"Ŀ\":\"Ŀ\",\"⟵\":\"⟵\",\"⟷\":\"⟷\",\"⟶\":\"⟶\",\"⟸\":\"⟸\",\"⟺\":\"⟺\",\"⟹\":\"⟹\",\"𝕃\":\"𝕃\",\"↙\":\"↙\",\"↘\":\"↘\",\"ℒ\":\"ℒ\",\"↰\":\"↰\",\"Ł\":\"Ł\",\"≪\":\"≪\",\"⤅\":\"⤅\",\"М\":\"М\",\" \":\" \",\"ℳ\":\"ℳ\",\"𝔐\":\"𝔐\",\"∓\":\"∓\",\"𝕄\":\"𝕄\",\"ℳ\":\"ℳ\",\"Μ\":\"Μ\",\"Њ\":\"Њ\",\"Ń\":\"Ń\",\"Ň\":\"Ň\",\"Ņ\":\"Ņ\",\"Н\":\"Н\",\"​\":\"​\",\"​\":\"​\",\"​\":\"​\",\"​\":\"​\",\"≫\":\"≫\",\"≪\":\"≪\",\" \":\"\\n\",\"𝔑\":\"𝔑\",\"⁠\":\"⁠\",\" \":\" \",\"ℕ\":\"ℕ\",\"⫬\":\"⫬\",\"≢\":\"≢\",\"≭\":\"≭\",\"∦\":\"∦\",\"∉\":\"∉\",\"≠\":\"≠\",\"≂̸\":\"≂̸\",\"∄\":\"∄\",\"≯\":\"≯\",\"≱\":\"≱\",\"≧̸\":\"≧̸\",\"≫̸\":\"≫̸\",\"≹\":\"≹\",\"⩾̸\":\"⩾̸\",\"≵\":\"≵\",\"≎̸\":\"≎̸\",\"≏̸\":\"≏̸\",\"⋪\":\"⋪\",\"⧏̸\":\"⧏̸\",\"⋬\":\"⋬\",\"≮\":\"≮\",\"≰\":\"≰\",\"≸\":\"≸\",\"≪̸\":\"≪̸\",\"⩽̸\":\"⩽̸\",\"≴\":\"≴\",\"⪢̸\":\"⪢̸\",\"⪡̸\":\"⪡̸\",\"⊀\":\"⊀\",\"⪯̸\":\"⪯̸\",\"⋠\":\"⋠\",\"∌\":\"∌\",\"⋫\":\"⋫\",\"⧐̸\":\"⧐̸\",\"⋭\":\"⋭\",\"⊏̸\":\"⊏̸\",\"⋢\":\"⋢\",\"⊐̸\":\"⊐̸\",\"⋣\":\"⋣\",\"⊂⃒\":\"⊂⃒\",\"⊈\":\"⊈\",\"⊁\":\"⊁\",\"⪰̸\":\"⪰̸\",\"⋡\":\"⋡\",\"≿̸\":\"≿̸\",\"⊃⃒\":\"⊃⃒\",\"⊉\":\"⊉\",\"≁\":\"≁\",\"≄\":\"≄\",\"≇\":\"≇\",\"≉\":\"≉\",\"∤\":\"∤\",\"𝒩\":\"𝒩\",\"Ñ\":\"Ñ\",\"Ñ\":\"Ñ\",\"Ν\":\"Ν\",\"Œ\":\"Œ\",\"Ó\":\"Ó\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"Ô\":\"Ô\",\"О\":\"О\",\"Ő\":\"Ő\",\"𝔒\":\"𝔒\",\"Ò\":\"Ò\",\"Ò\":\"Ò\",\"Ō\":\"Ō\",\"Ω\":\"Ω\",\"Ο\":\"Ο\",\"𝕆\":\"𝕆\",\"“\":\"“\",\"‘\":\"‘\",\"⩔\":\"⩔\",\"𝒪\":\"𝒪\",\"Ø\":\"Ø\",\"Ø\":\"Ø\",\"Õ\":\"Õ\",\"Õ\":\"Õ\",\"⨷\":\"⨷\",\"Ö\":\"Ö\",\"Ö\":\"Ö\",\"‾\":\"‾\",\"⏞\":\"⏞\",\"⎴\":\"⎴\",\"⏜\":\"⏜\",\"∂\":\"∂\",\"П\":\"П\",\"𝔓\":\"𝔓\",\"Φ\":\"Φ\",\"Π\":\"Π\",\"±\":\"±\",\"ℌ\":\"ℌ\",\"ℙ\":\"ℙ\",\"⪻\":\"⪻\",\"≺\":\"≺\",\"⪯\":\"⪯\",\"≼\":\"≼\",\"≾\":\"≾\",\"″\":\"″\",\"∏\":\"∏\",\"∷\":\"∷\",\"∝\":\"∝\",\"𝒫\":\"𝒫\",\"Ψ\":\"Ψ\",\""\":'\"',\""\":'\"',\"𝔔\":\"𝔔\",\"ℚ\":\"ℚ\",\"𝒬\":\"𝒬\",\"⤐\":\"⤐\",\"®\":\"®\",\"®\":\"®\",\"Ŕ\":\"Ŕ\",\"⟫\":\"⟫\",\"↠\":\"↠\",\"⤖\":\"⤖\",\"Ř\":\"Ř\",\"Ŗ\":\"Ŗ\",\"Р\":\"Р\",\"ℜ\":\"ℜ\",\"∋\":\"∋\",\"⇋\":\"⇋\",\"⥯\":\"⥯\",\"ℜ\":\"ℜ\",\"Ρ\":\"Ρ\",\"⟩\":\"⟩\",\"→\":\"→\",\"⇥\":\"⇥\",\"⇄\":\"⇄\",\"⌉\":\"⌉\",\"⟧\":\"⟧\",\"⥝\":\"⥝\",\"⇂\":\"⇂\",\"⥕\":\"⥕\",\"⌋\":\"⌋\",\"⊢\":\"⊢\",\"↦\":\"↦\",\"⥛\":\"⥛\",\"⊳\":\"⊳\",\"⧐\":\"⧐\",\"⊵\":\"⊵\",\"⥏\":\"⥏\",\"⥜\":\"⥜\",\"↾\":\"↾\",\"⥔\":\"⥔\",\"⇀\":\"⇀\",\"⥓\":\"⥓\",\"⇒\":\"⇒\",\"ℝ\":\"ℝ\",\"⥰\":\"⥰\",\"⇛\":\"⇛\",\"ℛ\":\"ℛ\",\"↱\":\"↱\",\"⧴\":\"⧴\",\"Щ\":\"Щ\",\"Ш\":\"Ш\",\"Ь\":\"Ь\",\"Ś\":\"Ś\",\"⪼\":\"⪼\",\"Š\":\"Š\",\"Ş\":\"Ş\",\"Ŝ\":\"Ŝ\",\"С\":\"С\",\"𝔖\":\"𝔖\",\"↓\":\"↓\",\"←\":\"←\",\"→\":\"→\",\"↑\":\"↑\",\"Σ\":\"Σ\",\"∘\":\"∘\",\"𝕊\":\"𝕊\",\"√\":\"√\",\"□\":\"□\",\"⊓\":\"⊓\",\"⊏\":\"⊏\",\"⊑\":\"⊑\",\"⊐\":\"⊐\",\"⊒\":\"⊒\",\"⊔\":\"⊔\",\"𝒮\":\"𝒮\",\"⋆\":\"⋆\",\"⋐\":\"⋐\",\"⋐\":\"⋐\",\"⊆\":\"⊆\",\"≻\":\"≻\",\"⪰\":\"⪰\",\"≽\":\"≽\",\"≿\":\"≿\",\"∋\":\"∋\",\"∑\":\"∑\",\"⋑\":\"⋑\",\"⊃\":\"⊃\",\"⊇\":\"⊇\",\"⋑\":\"⋑\",\"Þ\":\"Þ\",\"Þ\":\"Þ\",\"™\":\"™\",\"Ћ\":\"Ћ\",\"Ц\":\"Ц\",\" \":\"\\t\",\"Τ\":\"Τ\",\"Ť\":\"Ť\",\"Ţ\":\"Ţ\",\"Т\":\"Т\",\"𝔗\":\"𝔗\",\"∴\":\"∴\",\"Θ\":\"Θ\",\"  \":\"  \",\" \":\" \",\"∼\":\"∼\",\"≃\":\"≃\",\"≅\":\"≅\",\"≈\":\"≈\",\"𝕋\":\"𝕋\",\"⃛\":\"⃛\",\"𝒯\":\"𝒯\",\"Ŧ\":\"Ŧ\",\"Ú\":\"Ú\",\"Ú\":\"Ú\",\"↟\":\"↟\",\"⥉\":\"⥉\",\"Ў\":\"Ў\",\"Ŭ\":\"Ŭ\",\"Û\":\"Û\",\"Û\":\"Û\",\"У\":\"У\",\"Ű\":\"Ű\",\"𝔘\":\"𝔘\",\"Ù\":\"Ù\",\"Ù\":\"Ù\",\"Ū\":\"Ū\",\"_\":\"_\",\"⏟\":\"⏟\",\"⎵\":\"⎵\",\"⏝\":\"⏝\",\"⋃\":\"⋃\",\"⊎\":\"⊎\",\"Ų\":\"Ų\",\"𝕌\":\"𝕌\",\"↑\":\"↑\",\"⤒\":\"⤒\",\"⇅\":\"⇅\",\"↕\":\"↕\",\"⥮\":\"⥮\",\"⊥\":\"⊥\",\"↥\":\"↥\",\"⇑\":\"⇑\",\"⇕\":\"⇕\",\"↖\":\"↖\",\"↗\":\"↗\",\"ϒ\":\"ϒ\",\"Υ\":\"Υ\",\"Ů\":\"Ů\",\"𝒰\":\"𝒰\",\"Ũ\":\"Ũ\",\"Ü\":\"Ü\",\"Ü\":\"Ü\",\"⊫\":\"⊫\",\"⫫\":\"⫫\",\"В\":\"В\",\"⊩\":\"⊩\",\"⫦\":\"⫦\",\"⋁\":\"⋁\",\"‖\":\"‖\",\"‖\":\"‖\",\"∣\":\"∣\",\"|\":\"|\",\"❘\":\"❘\",\"≀\":\"≀\",\" \":\" \",\"𝔙\":\"𝔙\",\"𝕍\":\"𝕍\",\"𝒱\":\"𝒱\",\"⊪\":\"⊪\",\"Ŵ\":\"Ŵ\",\"⋀\":\"⋀\",\"𝔚\":\"𝔚\",\"𝕎\":\"𝕎\",\"𝒲\":\"𝒲\",\"𝔛\":\"𝔛\",\"Ξ\":\"Ξ\",\"𝕏\":\"𝕏\",\"𝒳\":\"𝒳\",\"Я\":\"Я\",\"Ї\":\"Ї\",\"Ю\":\"Ю\",\"Ý\":\"Ý\",\"Ý\":\"Ý\",\"Ŷ\":\"Ŷ\",\"Ы\":\"Ы\",\"𝔜\":\"𝔜\",\"𝕐\":\"𝕐\",\"𝒴\":\"𝒴\",\"Ÿ\":\"Ÿ\",\"Ж\":\"Ж\",\"Ź\":\"Ź\",\"Ž\":\"Ž\",\"З\":\"З\",\"Ż\":\"Ż\",\"​\":\"​\",\"Ζ\":\"Ζ\",\"ℨ\":\"ℨ\",\"ℤ\":\"ℤ\",\"𝒵\":\"𝒵\",\"á\":\"á\",\"á\":\"á\",\"ă\":\"ă\",\"∾\":\"∾\",\"∾̳\":\"∾̳\",\"∿\":\"∿\",\"â\":\"â\",\"â\":\"â\",\"´\":\"´\",\"´\":\"´\",\"а\":\"а\",\"æ\":\"æ\",\"æ\":\"æ\",\"⁡\":\"⁡\",\"𝔞\":\"𝔞\",\"à\":\"à\",\"à\":\"à\",\"ℵ\":\"ℵ\",\"ℵ\":\"ℵ\",\"α\":\"α\",\"ā\":\"ā\",\"⨿\":\"⨿\",\"&\":\"&\",\"&\":\"&\",\"∧\":\"∧\",\"⩕\":\"⩕\",\"⩜\":\"⩜\",\"⩘\":\"⩘\",\"⩚\":\"⩚\",\"∠\":\"∠\",\"⦤\":\"⦤\",\"∠\":\"∠\",\"∡\":\"∡\",\"⦨\":\"⦨\",\"⦩\":\"⦩\",\"⦪\":\"⦪\",\"⦫\":\"⦫\",\"⦬\":\"⦬\",\"⦭\":\"⦭\",\"⦮\":\"⦮\",\"⦯\":\"⦯\",\"∟\":\"∟\",\"⊾\":\"⊾\",\"⦝\":\"⦝\",\"∢\":\"∢\",\"Å\":\"Å\",\"⍼\":\"⍼\",\"ą\":\"ą\",\"𝕒\":\"𝕒\",\"≈\":\"≈\",\"⩰\":\"⩰\",\"⩯\":\"⩯\",\"≊\":\"≊\",\"≋\":\"≋\",\"'\":\"'\",\"≈\":\"≈\",\"≊\":\"≊\",\"å\":\"å\",\"å\":\"å\",\"𝒶\":\"𝒶\",\"*\":\"*\",\"≈\":\"≈\",\"≍\":\"≍\",\"ã\":\"ã\",\"ã\":\"ã\",\"ä\":\"ä\",\"ä\":\"ä\",\"∳\":\"∳\",\"⨑\":\"⨑\",\"⫭\":\"⫭\",\"≌\":\"≌\",\"϶\":\"϶\",\"‵\":\"‵\",\"∽\":\"∽\",\"⋍\":\"⋍\",\"⊽\":\"⊽\",\"⌅\":\"⌅\",\"⌅\":\"⌅\",\"⎵\":\"⎵\",\"⎶\":\"⎶\",\"≌\":\"≌\",\"б\":\"б\",\"„\":\"„\",\"∵\":\"∵\",\"∵\":\"∵\",\"⦰\":\"⦰\",\"϶\":\"϶\",\"ℬ\":\"ℬ\",\"β\":\"β\",\"ℶ\":\"ℶ\",\"≬\":\"≬\",\"𝔟\":\"𝔟\",\"⋂\":\"⋂\",\"◯\":\"◯\",\"⋃\":\"⋃\",\"⨀\":\"⨀\",\"⨁\":\"⨁\",\"⨂\":\"⨂\",\"⨆\":\"⨆\",\"★\":\"★\",\"▽\":\"▽\",\"△\":\"△\",\"⨄\":\"⨄\",\"⋁\":\"⋁\",\"⋀\":\"⋀\",\"⤍\":\"⤍\",\"⧫\":\"⧫\",\"▪\":\"▪\",\"▴\":\"▴\",\"▾\":\"▾\",\"◂\":\"◂\",\"▸\":\"▸\",\"␣\":\"␣\",\"▒\":\"▒\",\"░\":\"░\",\"▓\":\"▓\",\"█\":\"█\",\"=⃥\":\"=⃥\",\"≡⃥\":\"≡⃥\",\"⌐\":\"⌐\",\"𝕓\":\"𝕓\",\"⊥\":\"⊥\",\"⊥\":\"⊥\",\"⋈\":\"⋈\",\"╗\":\"╗\",\"╔\":\"╔\",\"╖\":\"╖\",\"╓\":\"╓\",\"═\":\"═\",\"╦\":\"╦\",\"╩\":\"╩\",\"╤\":\"╤\",\"╧\":\"╧\",\"╝\":\"╝\",\"╚\":\"╚\",\"╜\":\"╜\",\"╙\":\"╙\",\"║\":\"║\",\"╬\":\"╬\",\"╣\":\"╣\",\"╠\":\"╠\",\"╫\":\"╫\",\"╢\":\"╢\",\"╟\":\"╟\",\"⧉\":\"⧉\",\"╕\":\"╕\",\"╒\":\"╒\",\"┐\":\"┐\",\"┌\":\"┌\",\"─\":\"─\",\"╥\":\"╥\",\"╨\":\"╨\",\"┬\":\"┬\",\"┴\":\"┴\",\"⊟\":\"⊟\",\"⊞\":\"⊞\",\"⊠\":\"⊠\",\"╛\":\"╛\",\"╘\":\"╘\",\"┘\":\"┘\",\"└\":\"└\",\"│\":\"│\",\"╪\":\"╪\",\"╡\":\"╡\",\"╞\":\"╞\",\"┼\":\"┼\",\"┤\":\"┤\",\"├\":\"├\",\"‵\":\"‵\",\"˘\":\"˘\",\"¦\":\"¦\",\"¦\":\"¦\",\"𝒷\":\"𝒷\",\"⁏\":\"⁏\",\"∽\":\"∽\",\"⋍\":\"⋍\",\"\\":\"\\\\\",\"⧅\":\"⧅\",\"⟈\":\"⟈\",\"•\":\"•\",\"•\":\"•\",\"≎\":\"≎\",\"⪮\":\"⪮\",\"≏\":\"≏\",\"≏\":\"≏\",\"ć\":\"ć\",\"∩\":\"∩\",\"⩄\":\"⩄\",\"⩉\":\"⩉\",\"⩋\":\"⩋\",\"⩇\":\"⩇\",\"⩀\":\"⩀\",\"∩︀\":\"∩︀\",\"⁁\":\"⁁\",\"ˇ\":\"ˇ\",\"⩍\":\"⩍\",\"č\":\"č\",\"ç\":\"ç\",\"ç\":\"ç\",\"ĉ\":\"ĉ\",\"⩌\":\"⩌\",\"⩐\":\"⩐\",\"ċ\":\"ċ\",\"¸\":\"¸\",\"¸\":\"¸\",\"⦲\":\"⦲\",\"¢\":\"¢\",\"¢\":\"¢\",\"·\":\"·\",\"𝔠\":\"𝔠\",\"ч\":\"ч\",\"✓\":\"✓\",\"✓\":\"✓\",\"χ\":\"χ\",\"○\":\"○\",\"⧃\":\"⧃\",\"ˆ\":\"ˆ\",\"≗\":\"≗\",\"↺\":\"↺\",\"↻\":\"↻\",\"®\":\"®\",\"Ⓢ\":\"Ⓢ\",\"⊛\":\"⊛\",\"⊚\":\"⊚\",\"⊝\":\"⊝\",\"≗\":\"≗\",\"⨐\":\"⨐\",\"⫯\":\"⫯\",\"⧂\":\"⧂\",\"♣\":\"♣\",\"♣\":\"♣\",\":\":\":\",\"≔\":\"≔\",\"≔\":\"≔\",\",\":\",\",\"@\":\"@\",\"∁\":\"∁\",\"∘\":\"∘\",\"∁\":\"∁\",\"ℂ\":\"ℂ\",\"≅\":\"≅\",\"⩭\":\"⩭\",\"∮\":\"∮\",\"𝕔\":\"𝕔\",\"∐\":\"∐\",\"©\":\"©\",\"©\":\"©\",\"℗\":\"℗\",\"↵\":\"↵\",\"✗\":\"✗\",\"𝒸\":\"𝒸\",\"⫏\":\"⫏\",\"⫑\":\"⫑\",\"⫐\":\"⫐\",\"⫒\":\"⫒\",\"⋯\":\"⋯\",\"⤸\":\"⤸\",\"⤵\":\"⤵\",\"⋞\":\"⋞\",\"⋟\":\"⋟\",\"↶\":\"↶\",\"⤽\":\"⤽\",\"∪\":\"∪\",\"⩈\":\"⩈\",\"⩆\":\"⩆\",\"⩊\":\"⩊\",\"⊍\":\"⊍\",\"⩅\":\"⩅\",\"∪︀\":\"∪︀\",\"↷\":\"↷\",\"⤼\":\"⤼\",\"⋞\":\"⋞\",\"⋟\":\"⋟\",\"⋎\":\"⋎\",\"⋏\":\"⋏\",\"¤\":\"¤\",\"¤\":\"¤\",\"↶\":\"↶\",\"↷\":\"↷\",\"⋎\":\"⋎\",\"⋏\":\"⋏\",\"∲\":\"∲\",\"∱\":\"∱\",\"⌭\":\"⌭\",\"⇓\":\"⇓\",\"⥥\":\"⥥\",\"†\":\"†\",\"ℸ\":\"ℸ\",\"↓\":\"↓\",\"‐\":\"‐\",\"⊣\":\"⊣\",\"⤏\":\"⤏\",\"˝\":\"˝\",\"ď\":\"ď\",\"д\":\"д\",\"ⅆ\":\"ⅆ\",\"‡\":\"‡\",\"⇊\":\"⇊\",\"⩷\":\"⩷\",\"°\":\"°\",\"°\":\"°\",\"δ\":\"δ\",\"⦱\":\"⦱\",\"⥿\":\"⥿\",\"𝔡\":\"𝔡\",\"⇃\":\"⇃\",\"⇂\":\"⇂\",\"⋄\":\"⋄\",\"⋄\":\"⋄\",\"♦\":\"♦\",\"♦\":\"♦\",\"¨\":\"¨\",\"ϝ\":\"ϝ\",\"⋲\":\"⋲\",\"÷\":\"÷\",\"÷\":\"÷\",\"÷\":\"÷\",\"⋇\":\"⋇\",\"⋇\":\"⋇\",\"ђ\":\"ђ\",\"⌞\":\"⌞\",\"⌍\":\"⌍\",\"$\":\"$\",\"𝕕\":\"𝕕\",\"˙\":\"˙\",\"≐\":\"≐\",\"≑\":\"≑\",\"∸\":\"∸\",\"∔\":\"∔\",\"⊡\":\"⊡\",\"⌆\":\"⌆\",\"↓\":\"↓\",\"⇊\":\"⇊\",\"⇃\":\"⇃\",\"⇂\":\"⇂\",\"⤐\":\"⤐\",\"⌟\":\"⌟\",\"⌌\":\"⌌\",\"𝒹\":\"𝒹\",\"ѕ\":\"ѕ\",\"⧶\":\"⧶\",\"đ\":\"đ\",\"⋱\":\"⋱\",\"▿\":\"▿\",\"▾\":\"▾\",\"⇵\":\"⇵\",\"⥯\":\"⥯\",\"⦦\":\"⦦\",\"џ\":\"џ\",\"⟿\":\"⟿\",\"⩷\":\"⩷\",\"≑\":\"≑\",\"é\":\"é\",\"é\":\"é\",\"⩮\":\"⩮\",\"ě\":\"ě\",\"≖\":\"≖\",\"ê\":\"ê\",\"ê\":\"ê\",\"≕\":\"≕\",\"э\":\"э\",\"ė\":\"ė\",\"ⅇ\":\"ⅇ\",\"≒\":\"≒\",\"𝔢\":\"𝔢\",\"⪚\":\"⪚\",\"è\":\"è\",\"è\":\"è\",\"⪖\":\"⪖\",\"⪘\":\"⪘\",\"⪙\":\"⪙\",\"⏧\":\"⏧\",\"ℓ\":\"ℓ\",\"⪕\":\"⪕\",\"⪗\":\"⪗\",\"ē\":\"ē\",\"∅\":\"∅\",\"∅\":\"∅\",\"∅\":\"∅\",\" \":\" \",\" \":\" \",\" \":\" \",\"ŋ\":\"ŋ\",\" \":\" \",\"ę\":\"ę\",\"𝕖\":\"𝕖\",\"⋕\":\"⋕\",\"⧣\":\"⧣\",\"⩱\":\"⩱\",\"ε\":\"ε\",\"ε\":\"ε\",\"ϵ\":\"ϵ\",\"≖\":\"≖\",\"≕\":\"≕\",\"≂\":\"≂\",\"⪖\":\"⪖\",\"⪕\":\"⪕\",\"=\":\"=\",\"≟\":\"≟\",\"≡\":\"≡\",\"⩸\":\"⩸\",\"⧥\":\"⧥\",\"≓\":\"≓\",\"⥱\":\"⥱\",\"ℯ\":\"ℯ\",\"≐\":\"≐\",\"≂\":\"≂\",\"η\":\"η\",\"ð\":\"ð\",\"ð\":\"ð\",\"ë\":\"ë\",\"ë\":\"ë\",\"€\":\"€\",\"!\":\"!\",\"∃\":\"∃\",\"ℰ\":\"ℰ\",\"ⅇ\":\"ⅇ\",\"≒\":\"≒\",\"ф\":\"ф\",\"♀\":\"♀\",\"ffi\":\"ffi\",\"ff\":\"ff\",\"ffl\":\"ffl\",\"𝔣\":\"𝔣\",\"fi\":\"fi\",\"fj\":\"fj\",\"♭\":\"♭\",\"fl\":\"fl\",\"▱\":\"▱\",\"ƒ\":\"ƒ\",\"𝕗\":\"𝕗\",\"∀\":\"∀\",\"⋔\":\"⋔\",\"⫙\":\"⫙\",\"⨍\":\"⨍\",\"½\":\"½\",\"½\":\"½\",\"⅓\":\"⅓\",\"¼\":\"¼\",\"¼\":\"¼\",\"⅕\":\"⅕\",\"⅙\":\"⅙\",\"⅛\":\"⅛\",\"⅔\":\"⅔\",\"⅖\":\"⅖\",\"¾\":\"¾\",\"¾\":\"¾\",\"⅗\":\"⅗\",\"⅜\":\"⅜\",\"⅘\":\"⅘\",\"⅚\":\"⅚\",\"⅝\":\"⅝\",\"⅞\":\"⅞\",\"⁄\":\"⁄\",\"⌢\":\"⌢\",\"𝒻\":\"𝒻\",\"≧\":\"≧\",\"⪌\":\"⪌\",\"ǵ\":\"ǵ\",\"γ\":\"γ\",\"ϝ\":\"ϝ\",\"⪆\":\"⪆\",\"ğ\":\"ğ\",\"ĝ\":\"ĝ\",\"г\":\"г\",\"ġ\":\"ġ\",\"≥\":\"≥\",\"⋛\":\"⋛\",\"≥\":\"≥\",\"≧\":\"≧\",\"⩾\":\"⩾\",\"⩾\":\"⩾\",\"⪩\":\"⪩\",\"⪀\":\"⪀\",\"⪂\":\"⪂\",\"⪄\":\"⪄\",\"⋛︀\":\"⋛︀\",\"⪔\":\"⪔\",\"𝔤\":\"𝔤\",\"≫\":\"≫\",\"⋙\":\"⋙\",\"ℷ\":\"ℷ\",\"ѓ\":\"ѓ\",\"≷\":\"≷\",\"⪒\":\"⪒\",\"⪥\":\"⪥\",\"⪤\":\"⪤\",\"≩\":\"≩\",\"⪊\":\"⪊\",\"⪊\":\"⪊\",\"⪈\":\"⪈\",\"⪈\":\"⪈\",\"≩\":\"≩\",\"⋧\":\"⋧\",\"𝕘\":\"𝕘\",\"`\":\"`\",\"ℊ\":\"ℊ\",\"≳\":\"≳\",\"⪎\":\"⪎\",\"⪐\":\"⪐\",\">\":\">\",\">\":\">\",\"⪧\":\"⪧\",\"⩺\":\"⩺\",\"⋗\":\"⋗\",\"⦕\":\"⦕\",\"⩼\":\"⩼\",\"⪆\":\"⪆\",\"⥸\":\"⥸\",\"⋗\":\"⋗\",\"⋛\":\"⋛\",\"⪌\":\"⪌\",\"≷\":\"≷\",\"≳\":\"≳\",\"≩︀\":\"≩︀\",\"≩︀\":\"≩︀\",\"⇔\":\"⇔\",\" \":\" \",\"½\":\"½\",\"ℋ\":\"ℋ\",\"ъ\":\"ъ\",\"↔\":\"↔\",\"⥈\":\"⥈\",\"↭\":\"↭\",\"ℏ\":\"ℏ\",\"ĥ\":\"ĥ\",\"♥\":\"♥\",\"♥\":\"♥\",\"…\":\"…\",\"⊹\":\"⊹\",\"𝔥\":\"𝔥\",\"⤥\":\"⤥\",\"⤦\":\"⤦\",\"⇿\":\"⇿\",\"∻\":\"∻\",\"↩\":\"↩\",\"↪\":\"↪\",\"𝕙\":\"𝕙\",\"―\":\"―\",\"𝒽\":\"𝒽\",\"ℏ\":\"ℏ\",\"ħ\":\"ħ\",\"⁃\":\"⁃\",\"‐\":\"‐\",\"í\":\"í\",\"í\":\"í\",\"⁣\":\"⁣\",\"î\":\"î\",\"î\":\"î\",\"и\":\"и\",\"е\":\"е\",\"¡\":\"¡\",\"¡\":\"¡\",\"⇔\":\"⇔\",\"𝔦\":\"𝔦\",\"ì\":\"ì\",\"ì\":\"ì\",\"ⅈ\":\"ⅈ\",\"⨌\":\"⨌\",\"∭\":\"∭\",\"⧜\":\"⧜\",\"℩\":\"℩\",\"ij\":\"ij\",\"ī\":\"ī\",\"ℑ\":\"ℑ\",\"ℐ\":\"ℐ\",\"ℑ\":\"ℑ\",\"ı\":\"ı\",\"⊷\":\"⊷\",\"Ƶ\":\"Ƶ\",\"∈\":\"∈\",\"℅\":\"℅\",\"∞\":\"∞\",\"⧝\":\"⧝\",\"ı\":\"ı\",\"∫\":\"∫\",\"⊺\":\"⊺\",\"ℤ\":\"ℤ\",\"⊺\":\"⊺\",\"⨗\":\"⨗\",\"⨼\":\"⨼\",\"ё\":\"ё\",\"į\":\"į\",\"𝕚\":\"𝕚\",\"ι\":\"ι\",\"⨼\":\"⨼\",\"¿\":\"¿\",\"¿\":\"¿\",\"𝒾\":\"𝒾\",\"∈\":\"∈\",\"⋹\":\"⋹\",\"⋵\":\"⋵\",\"⋴\":\"⋴\",\"⋳\":\"⋳\",\"∈\":\"∈\",\"⁢\":\"⁢\",\"ĩ\":\"ĩ\",\"і\":\"і\",\"ï\":\"ï\",\"ï\":\"ï\",\"ĵ\":\"ĵ\",\"й\":\"й\",\"𝔧\":\"𝔧\",\"ȷ\":\"ȷ\",\"𝕛\":\"𝕛\",\"𝒿\":\"𝒿\",\"ј\":\"ј\",\"є\":\"є\",\"κ\":\"κ\",\"ϰ\":\"ϰ\",\"ķ\":\"ķ\",\"к\":\"к\",\"𝔨\":\"𝔨\",\"ĸ\":\"ĸ\",\"х\":\"х\",\"ќ\":\"ќ\",\"𝕜\":\"𝕜\",\"𝓀\":\"𝓀\",\"⇚\":\"⇚\",\"⇐\":\"⇐\",\"⤛\":\"⤛\",\"⤎\":\"⤎\",\"≦\":\"≦\",\"⪋\":\"⪋\",\"⥢\":\"⥢\",\"ĺ\":\"ĺ\",\"⦴\":\"⦴\",\"ℒ\":\"ℒ\",\"λ\":\"λ\",\"⟨\":\"⟨\",\"⦑\":\"⦑\",\"⟨\":\"⟨\",\"⪅\":\"⪅\",\"«\":\"«\",\"«\":\"«\",\"←\":\"←\",\"⇤\":\"⇤\",\"⤟\":\"⤟\",\"⤝\":\"⤝\",\"↩\":\"↩\",\"↫\":\"↫\",\"⤹\":\"⤹\",\"⥳\":\"⥳\",\"↢\":\"↢\",\"⪫\":\"⪫\",\"⤙\":\"⤙\",\"⪭\":\"⪭\",\"⪭︀\":\"⪭︀\",\"⤌\":\"⤌\",\"❲\":\"❲\",\"{\":\"{\",\"[\":\"[\",\"⦋\":\"⦋\",\"⦏\":\"⦏\",\"⦍\":\"⦍\",\"ľ\":\"ľ\",\"ļ\":\"ļ\",\"⌈\":\"⌈\",\"{\":\"{\",\"л\":\"л\",\"⤶\":\"⤶\",\"“\":\"“\",\"„\":\"„\",\"⥧\":\"⥧\",\"⥋\":\"⥋\",\"↲\":\"↲\",\"≤\":\"≤\",\"←\":\"←\",\"↢\":\"↢\",\"↽\":\"↽\",\"↼\":\"↼\",\"⇇\":\"⇇\",\"↔\":\"↔\",\"⇆\":\"⇆\",\"⇋\":\"⇋\",\"↭\":\"↭\",\"⋋\":\"⋋\",\"⋚\":\"⋚\",\"≤\":\"≤\",\"≦\":\"≦\",\"⩽\":\"⩽\",\"⩽\":\"⩽\",\"⪨\":\"⪨\",\"⩿\":\"⩿\",\"⪁\":\"⪁\",\"⪃\":\"⪃\",\"⋚︀\":\"⋚︀\",\"⪓\":\"⪓\",\"⪅\":\"⪅\",\"⋖\":\"⋖\",\"⋚\":\"⋚\",\"⪋\":\"⪋\",\"≶\":\"≶\",\"≲\":\"≲\",\"⥼\":\"⥼\",\"⌊\":\"⌊\",\"𝔩\":\"𝔩\",\"≶\":\"≶\",\"⪑\":\"⪑\",\"↽\":\"↽\",\"↼\":\"↼\",\"⥪\":\"⥪\",\"▄\":\"▄\",\"љ\":\"љ\",\"≪\":\"≪\",\"⇇\":\"⇇\",\"⌞\":\"⌞\",\"⥫\":\"⥫\",\"◺\":\"◺\",\"ŀ\":\"ŀ\",\"⎰\":\"⎰\",\"⎰\":\"⎰\",\"≨\":\"≨\",\"⪉\":\"⪉\",\"⪉\":\"⪉\",\"⪇\":\"⪇\",\"⪇\":\"⪇\",\"≨\":\"≨\",\"⋦\":\"⋦\",\"⟬\":\"⟬\",\"⇽\":\"⇽\",\"⟦\":\"⟦\",\"⟵\":\"⟵\",\"⟷\":\"⟷\",\"⟼\":\"⟼\",\"⟶\":\"⟶\",\"↫\":\"↫\",\"↬\":\"↬\",\"⦅\":\"⦅\",\"𝕝\":\"𝕝\",\"⨭\":\"⨭\",\"⨴\":\"⨴\",\"∗\":\"∗\",\"_\":\"_\",\"◊\":\"◊\",\"◊\":\"◊\",\"⧫\":\"⧫\",\"(\":\"(\",\"⦓\":\"⦓\",\"⇆\":\"⇆\",\"⌟\":\"⌟\",\"⇋\":\"⇋\",\"⥭\":\"⥭\",\"‎\":\"‎\",\"⊿\":\"⊿\",\"‹\":\"‹\",\"𝓁\":\"𝓁\",\"↰\":\"↰\",\"≲\":\"≲\",\"⪍\":\"⪍\",\"⪏\":\"⪏\",\"[\":\"[\",\"‘\":\"‘\",\"‚\":\"‚\",\"ł\":\"ł\",\"<\":\"<\",\"<\":\"<\",\"⪦\":\"⪦\",\"⩹\":\"⩹\",\"⋖\":\"⋖\",\"⋋\":\"⋋\",\"⋉\":\"⋉\",\"⥶\":\"⥶\",\"⩻\":\"⩻\",\"⦖\":\"⦖\",\"◃\":\"◃\",\"⊴\":\"⊴\",\"◂\":\"◂\",\"⥊\":\"⥊\",\"⥦\":\"⥦\",\"≨︀\":\"≨︀\",\"≨︀\":\"≨︀\",\"∺\":\"∺\",\"¯\":\"¯\",\"¯\":\"¯\",\"♂\":\"♂\",\"✠\":\"✠\",\"✠\":\"✠\",\"↦\":\"↦\",\"↦\":\"↦\",\"↧\":\"↧\",\"↤\":\"↤\",\"↥\":\"↥\",\"▮\":\"▮\",\"⨩\":\"⨩\",\"м\":\"м\",\"—\":\"—\",\"∡\":\"∡\",\"𝔪\":\"𝔪\",\"℧\":\"℧\",\"µ\":\"µ\",\"µ\":\"µ\",\"∣\":\"∣\",\"*\":\"*\",\"⫰\":\"⫰\",\"·\":\"·\",\"·\":\"·\",\"−\":\"−\",\"⊟\":\"⊟\",\"∸\":\"∸\",\"⨪\":\"⨪\",\"⫛\":\"⫛\",\"…\":\"…\",\"∓\":\"∓\",\"⊧\":\"⊧\",\"𝕞\":\"𝕞\",\"∓\":\"∓\",\"𝓂\":\"𝓂\",\"∾\":\"∾\",\"μ\":\"μ\",\"⊸\":\"⊸\",\"⊸\":\"⊸\",\"⋙̸\":\"⋙̸\",\"≫⃒\":\"≫⃒\",\"≫̸\":\"≫̸\",\"⇍\":\"⇍\",\"⇎\":\"⇎\",\"⋘̸\":\"⋘̸\",\"≪⃒\":\"≪⃒\",\"≪̸\":\"≪̸\",\"⇏\":\"⇏\",\"⊯\":\"⊯\",\"⊮\":\"⊮\",\"∇\":\"∇\",\"ń\":\"ń\",\"∠⃒\":\"∠⃒\",\"≉\":\"≉\",\"⩰̸\":\"⩰̸\",\"≋̸\":\"≋̸\",\"ʼn\":\"ʼn\",\"≉\":\"≉\",\"♮\":\"♮\",\"♮\":\"♮\",\"ℕ\":\"ℕ\",\" \":\" \",\" \":\" \",\"≎̸\":\"≎̸\",\"≏̸\":\"≏̸\",\"⩃\":\"⩃\",\"ň\":\"ň\",\"ņ\":\"ņ\",\"≇\":\"≇\",\"⩭̸\":\"⩭̸\",\"⩂\":\"⩂\",\"н\":\"н\",\"–\":\"–\",\"≠\":\"≠\",\"⇗\":\"⇗\",\"⤤\":\"⤤\",\"↗\":\"↗\",\"↗\":\"↗\",\"≐̸\":\"≐̸\",\"≢\":\"≢\",\"⤨\":\"⤨\",\"≂̸\":\"≂̸\",\"∄\":\"∄\",\"∄\":\"∄\",\"𝔫\":\"𝔫\",\"≧̸\":\"≧̸\",\"≱\":\"≱\",\"≱\":\"≱\",\"≧̸\":\"≧̸\",\"⩾̸\":\"⩾̸\",\"⩾̸\":\"⩾̸\",\"≵\":\"≵\",\"≯\":\"≯\",\"≯\":\"≯\",\"⇎\":\"⇎\",\"↮\":\"↮\",\"⫲\":\"⫲\",\"∋\":\"∋\",\"⋼\":\"⋼\",\"⋺\":\"⋺\",\"∋\":\"∋\",\"њ\":\"њ\",\"⇍\":\"⇍\",\"≦̸\":\"≦̸\",\"↚\":\"↚\",\"‥\":\"‥\",\"≰\":\"≰\",\"↚\":\"↚\",\"↮\":\"↮\",\"≰\":\"≰\",\"≦̸\":\"≦̸\",\"⩽̸\":\"⩽̸\",\"⩽̸\":\"⩽̸\",\"≮\":\"≮\",\"≴\":\"≴\",\"≮\":\"≮\",\"⋪\":\"⋪\",\"⋬\":\"⋬\",\"∤\":\"∤\",\"𝕟\":\"𝕟\",\"¬\":\"¬\",\"¬\":\"¬\",\"∉\":\"∉\",\"⋹̸\":\"⋹̸\",\"⋵̸\":\"⋵̸\",\"∉\":\"∉\",\"⋷\":\"⋷\",\"⋶\":\"⋶\",\"∌\":\"∌\",\"∌\":\"∌\",\"⋾\":\"⋾\",\"⋽\":\"⋽\",\"∦\":\"∦\",\"∦\":\"∦\",\"⫽⃥\":\"⫽⃥\",\"∂̸\":\"∂̸\",\"⨔\":\"⨔\",\"⊀\":\"⊀\",\"⋠\":\"⋠\",\"⪯̸\":\"⪯̸\",\"⊀\":\"⊀\",\"⪯̸\":\"⪯̸\",\"⇏\":\"⇏\",\"↛\":\"↛\",\"⤳̸\":\"⤳̸\",\"↝̸\":\"↝̸\",\"↛\":\"↛\",\"⋫\":\"⋫\",\"⋭\":\"⋭\",\"⊁\":\"⊁\",\"⋡\":\"⋡\",\"⪰̸\":\"⪰̸\",\"𝓃\":\"𝓃\",\"∤\":\"∤\",\"∦\":\"∦\",\"≁\":\"≁\",\"≄\":\"≄\",\"≄\":\"≄\",\"∤\":\"∤\",\"∦\":\"∦\",\"⋢\":\"⋢\",\"⋣\":\"⋣\",\"⊄\":\"⊄\",\"⫅̸\":\"⫅̸\",\"⊈\":\"⊈\",\"⊂⃒\":\"⊂⃒\",\"⊈\":\"⊈\",\"⫅̸\":\"⫅̸\",\"⊁\":\"⊁\",\"⪰̸\":\"⪰̸\",\"⊅\":\"⊅\",\"⫆̸\":\"⫆̸\",\"⊉\":\"⊉\",\"⊃⃒\":\"⊃⃒\",\"⊉\":\"⊉\",\"⫆̸\":\"⫆̸\",\"≹\":\"≹\",\"ñ\":\"ñ\",\"ñ\":\"ñ\",\"≸\":\"≸\",\"⋪\":\"⋪\",\"⋬\":\"⋬\",\"⋫\":\"⋫\",\"⋭\":\"⋭\",\"ν\":\"ν\",\"#\":\"#\",\"№\":\"№\",\" \":\" \",\"⊭\":\"⊭\",\"⤄\":\"⤄\",\"≍⃒\":\"≍⃒\",\"⊬\":\"⊬\",\"≥⃒\":\"≥⃒\",\">⃒\":\">⃒\",\"⧞\":\"⧞\",\"⤂\":\"⤂\",\"≤⃒\":\"≤⃒\",\"<⃒\":\"<⃒\",\"⊴⃒\":\"⊴⃒\",\"⤃\":\"⤃\",\"⊵⃒\":\"⊵⃒\",\"∼⃒\":\"∼⃒\",\"⇖\":\"⇖\",\"⤣\":\"⤣\",\"↖\":\"↖\",\"↖\":\"↖\",\"⤧\":\"⤧\",\"Ⓢ\":\"Ⓢ\",\"ó\":\"ó\",\"ó\":\"ó\",\"⊛\":\"⊛\",\"⊚\":\"⊚\",\"ô\":\"ô\",\"ô\":\"ô\",\"о\":\"о\",\"⊝\":\"⊝\",\"ő\":\"ő\",\"⨸\":\"⨸\",\"⊙\":\"⊙\",\"⦼\":\"⦼\",\"œ\":\"œ\",\"⦿\":\"⦿\",\"𝔬\":\"𝔬\",\"˛\":\"˛\",\"ò\":\"ò\",\"ò\":\"ò\",\"⧁\":\"⧁\",\"⦵\":\"⦵\",\"Ω\":\"Ω\",\"∮\":\"∮\",\"↺\":\"↺\",\"⦾\":\"⦾\",\"⦻\":\"⦻\",\"‾\":\"‾\",\"⧀\":\"⧀\",\"ō\":\"ō\",\"ω\":\"ω\",\"ο\":\"ο\",\"⦶\":\"⦶\",\"⊖\":\"⊖\",\"𝕠\":\"𝕠\",\"⦷\":\"⦷\",\"⦹\":\"⦹\",\"⊕\":\"⊕\",\"∨\":\"∨\",\"↻\":\"↻\",\"⩝\":\"⩝\",\"ℴ\":\"ℴ\",\"ℴ\":\"ℴ\",\"ª\":\"ª\",\"ª\":\"ª\",\"º\":\"º\",\"º\":\"º\",\"⊶\":\"⊶\",\"⩖\":\"⩖\",\"⩗\":\"⩗\",\"⩛\":\"⩛\",\"ℴ\":\"ℴ\",\"ø\":\"ø\",\"ø\":\"ø\",\"⊘\":\"⊘\",\"õ\":\"õ\",\"õ\":\"õ\",\"⊗\":\"⊗\",\"⨶\":\"⨶\",\"ö\":\"ö\",\"ö\":\"ö\",\"⌽\":\"⌽\",\"∥\":\"∥\",\"¶\":\"¶\",\"¶\":\"¶\",\"∥\":\"∥\",\"⫳\":\"⫳\",\"⫽\":\"⫽\",\"∂\":\"∂\",\"п\":\"п\",\"%\":\"%\",\".\":\".\",\"‰\":\"‰\",\"⊥\":\"⊥\",\"‱\":\"‱\",\"𝔭\":\"𝔭\",\"φ\":\"φ\",\"ϕ\":\"ϕ\",\"ℳ\":\"ℳ\",\"☎\":\"☎\",\"π\":\"π\",\"⋔\":\"⋔\",\"ϖ\":\"ϖ\",\"ℏ\":\"ℏ\",\"ℎ\":\"ℎ\",\"ℏ\":\"ℏ\",\"+\":\"+\",\"⨣\":\"⨣\",\"⊞\":\"⊞\",\"⨢\":\"⨢\",\"∔\":\"∔\",\"⨥\":\"⨥\",\"⩲\":\"⩲\",\"±\":\"±\",\"±\":\"±\",\"⨦\":\"⨦\",\"⨧\":\"⨧\",\"±\":\"±\",\"⨕\":\"⨕\",\"𝕡\":\"𝕡\",\"£\":\"£\",\"£\":\"£\",\"≺\":\"≺\",\"⪳\":\"⪳\",\"⪷\":\"⪷\",\"≼\":\"≼\",\"⪯\":\"⪯\",\"≺\":\"≺\",\"⪷\":\"⪷\",\"≼\":\"≼\",\"⪯\":\"⪯\",\"⪹\":\"⪹\",\"⪵\":\"⪵\",\"⋨\":\"⋨\",\"≾\":\"≾\",\"′\":\"′\",\"ℙ\":\"ℙ\",\"⪵\":\"⪵\",\"⪹\":\"⪹\",\"⋨\":\"⋨\",\"∏\":\"∏\",\"⌮\":\"⌮\",\"⌒\":\"⌒\",\"⌓\":\"⌓\",\"∝\":\"∝\",\"∝\":\"∝\",\"≾\":\"≾\",\"⊰\":\"⊰\",\"𝓅\":\"𝓅\",\"ψ\":\"ψ\",\" \":\" \",\"𝔮\":\"𝔮\",\"⨌\":\"⨌\",\"𝕢\":\"𝕢\",\"⁗\":\"⁗\",\"𝓆\":\"𝓆\",\"ℍ\":\"ℍ\",\"⨖\":\"⨖\",\"?\":\"?\",\"≟\":\"≟\",\""\":'\"',\""\":'\"',\"⇛\":\"⇛\",\"⇒\":\"⇒\",\"⤜\":\"⤜\",\"⤏\":\"⤏\",\"⥤\":\"⥤\",\"∽̱\":\"∽̱\",\"ŕ\":\"ŕ\",\"√\":\"√\",\"⦳\":\"⦳\",\"⟩\":\"⟩\",\"⦒\":\"⦒\",\"⦥\":\"⦥\",\"⟩\":\"⟩\",\"»\":\"»\",\"»\":\"»\",\"→\":\"→\",\"⥵\":\"⥵\",\"⇥\":\"⇥\",\"⤠\":\"⤠\",\"⤳\":\"⤳\",\"⤞\":\"⤞\",\"↪\":\"↪\",\"↬\":\"↬\",\"⥅\":\"⥅\",\"⥴\":\"⥴\",\"↣\":\"↣\",\"↝\":\"↝\",\"⤚\":\"⤚\",\"∶\":\"∶\",\"ℚ\":\"ℚ\",\"⤍\":\"⤍\",\"❳\":\"❳\",\"}\":\"}\",\"]\":\"]\",\"⦌\":\"⦌\",\"⦎\":\"⦎\",\"⦐\":\"⦐\",\"ř\":\"ř\",\"ŗ\":\"ŗ\",\"⌉\":\"⌉\",\"}\":\"}\",\"р\":\"р\",\"⤷\":\"⤷\",\"⥩\":\"⥩\",\"”\":\"”\",\"”\":\"”\",\"↳\":\"↳\",\"ℜ\":\"ℜ\",\"ℛ\":\"ℛ\",\"ℜ\":\"ℜ\",\"ℝ\":\"ℝ\",\"▭\":\"▭\",\"®\":\"®\",\"®\":\"®\",\"⥽\":\"⥽\",\"⌋\":\"⌋\",\"𝔯\":\"𝔯\",\"⇁\":\"⇁\",\"⇀\":\"⇀\",\"⥬\":\"⥬\",\"ρ\":\"ρ\",\"ϱ\":\"ϱ\",\"→\":\"→\",\"↣\":\"↣\",\"⇁\":\"⇁\",\"⇀\":\"⇀\",\"⇄\":\"⇄\",\"⇌\":\"⇌\",\"⇉\":\"⇉\",\"↝\":\"↝\",\"⋌\":\"⋌\",\"˚\":\"˚\",\"≓\":\"≓\",\"⇄\":\"⇄\",\"⇌\":\"⇌\",\"‏\":\"‏\",\"⎱\":\"⎱\",\"⎱\":\"⎱\",\"⫮\":\"⫮\",\"⟭\":\"⟭\",\"⇾\":\"⇾\",\"⟧\":\"⟧\",\"⦆\":\"⦆\",\"𝕣\":\"𝕣\",\"⨮\":\"⨮\",\"⨵\":\"⨵\",\")\":\")\",\"⦔\":\"⦔\",\"⨒\":\"⨒\",\"⇉\":\"⇉\",\"›\":\"›\",\"𝓇\":\"𝓇\",\"↱\":\"↱\",\"]\":\"]\",\"’\":\"’\",\"’\":\"’\",\"⋌\":\"⋌\",\"⋊\":\"⋊\",\"▹\":\"▹\",\"⊵\":\"⊵\",\"▸\":\"▸\",\"⧎\":\"⧎\",\"⥨\":\"⥨\",\"℞\":\"℞\",\"ś\":\"ś\",\"‚\":\"‚\",\"≻\":\"≻\",\"⪴\":\"⪴\",\"⪸\":\"⪸\",\"š\":\"š\",\"≽\":\"≽\",\"⪰\":\"⪰\",\"ş\":\"ş\",\"ŝ\":\"ŝ\",\"⪶\":\"⪶\",\"⪺\":\"⪺\",\"⋩\":\"⋩\",\"⨓\":\"⨓\",\"≿\":\"≿\",\"с\":\"с\",\"⋅\":\"⋅\",\"⊡\":\"⊡\",\"⩦\":\"⩦\",\"⇘\":\"⇘\",\"⤥\":\"⤥\",\"↘\":\"↘\",\"↘\":\"↘\",\"§\":\"§\",\"§\":\"§\",\";\":\";\",\"⤩\":\"⤩\",\"∖\":\"∖\",\"∖\":\"∖\",\"✶\":\"✶\",\"𝔰\":\"𝔰\",\"⌢\":\"⌢\",\"♯\":\"♯\",\"щ\":\"щ\",\"ш\":\"ш\",\"∣\":\"∣\",\"∥\":\"∥\",\"­\":\"­\",\"­\":\"­\",\"σ\":\"σ\",\"ς\":\"ς\",\"ς\":\"ς\",\"∼\":\"∼\",\"⩪\":\"⩪\",\"≃\":\"≃\",\"≃\":\"≃\",\"⪞\":\"⪞\",\"⪠\":\"⪠\",\"⪝\":\"⪝\",\"⪟\":\"⪟\",\"≆\":\"≆\",\"⨤\":\"⨤\",\"⥲\":\"⥲\",\"←\":\"←\",\"∖\":\"∖\",\"⨳\":\"⨳\",\"⧤\":\"⧤\",\"∣\":\"∣\",\"⌣\":\"⌣\",\"⪪\":\"⪪\",\"⪬\":\"⪬\",\"⪬︀\":\"⪬︀\",\"ь\":\"ь\",\"/\":\"/\",\"⧄\":\"⧄\",\"⌿\":\"⌿\",\"𝕤\":\"𝕤\",\"♠\":\"♠\",\"♠\":\"♠\",\"∥\":\"∥\",\"⊓\":\"⊓\",\"⊓︀\":\"⊓︀\",\"⊔\":\"⊔\",\"⊔︀\":\"⊔︀\",\"⊏\":\"⊏\",\"⊑\":\"⊑\",\"⊏\":\"⊏\",\"⊑\":\"⊑\",\"⊐\":\"⊐\",\"⊒\":\"⊒\",\"⊐\":\"⊐\",\"⊒\":\"⊒\",\"□\":\"□\",\"□\":\"□\",\"▪\":\"▪\",\"▪\":\"▪\",\"→\":\"→\",\"𝓈\":\"𝓈\",\"∖\":\"∖\",\"⌣\":\"⌣\",\"⋆\":\"⋆\",\"☆\":\"☆\",\"★\":\"★\",\"ϵ\":\"ϵ\",\"ϕ\":\"ϕ\",\"¯\":\"¯\",\"⊂\":\"⊂\",\"⫅\":\"⫅\",\"⪽\":\"⪽\",\"⊆\":\"⊆\",\"⫃\":\"⫃\",\"⫁\":\"⫁\",\"⫋\":\"⫋\",\"⊊\":\"⊊\",\"⪿\":\"⪿\",\"⥹\":\"⥹\",\"⊂\":\"⊂\",\"⊆\":\"⊆\",\"⫅\":\"⫅\",\"⊊\":\"⊊\",\"⫋\":\"⫋\",\"⫇\":\"⫇\",\"⫕\":\"⫕\",\"⫓\":\"⫓\",\"≻\":\"≻\",\"⪸\":\"⪸\",\"≽\":\"≽\",\"⪰\":\"⪰\",\"⪺\":\"⪺\",\"⪶\":\"⪶\",\"⋩\":\"⋩\",\"≿\":\"≿\",\"∑\":\"∑\",\"♪\":\"♪\",\"¹\":\"¹\",\"¹\":\"¹\",\"²\":\"²\",\"²\":\"²\",\"³\":\"³\",\"³\":\"³\",\"⊃\":\"⊃\",\"⫆\":\"⫆\",\"⪾\":\"⪾\",\"⫘\":\"⫘\",\"⊇\":\"⊇\",\"⫄\":\"⫄\",\"⟉\":\"⟉\",\"⫗\":\"⫗\",\"⥻\":\"⥻\",\"⫂\":\"⫂\",\"⫌\":\"⫌\",\"⊋\":\"⊋\",\"⫀\":\"⫀\",\"⊃\":\"⊃\",\"⊇\":\"⊇\",\"⫆\":\"⫆\",\"⊋\":\"⊋\",\"⫌\":\"⫌\",\"⫈\":\"⫈\",\"⫔\":\"⫔\",\"⫖\":\"⫖\",\"⇙\":\"⇙\",\"⤦\":\"⤦\",\"↙\":\"↙\",\"↙\":\"↙\",\"⤪\":\"⤪\",\"ß\":\"ß\",\"ß\":\"ß\",\"⌖\":\"⌖\",\"τ\":\"τ\",\"⎴\":\"⎴\",\"ť\":\"ť\",\"ţ\":\"ţ\",\"т\":\"т\",\"⃛\":\"⃛\",\"⌕\":\"⌕\",\"𝔱\":\"𝔱\",\"∴\":\"∴\",\"∴\":\"∴\",\"θ\":\"θ\",\"ϑ\":\"ϑ\",\"ϑ\":\"ϑ\",\"≈\":\"≈\",\"∼\":\"∼\",\" \":\" \",\"≈\":\"≈\",\"∼\":\"∼\",\"þ\":\"þ\",\"þ\":\"þ\",\"˜\":\"˜\",\"×\":\"×\",\"×\":\"×\",\"⊠\":\"⊠\",\"⨱\":\"⨱\",\"⨰\":\"⨰\",\"∭\":\"∭\",\"⤨\":\"⤨\",\"⊤\":\"⊤\",\"⌶\":\"⌶\",\"⫱\":\"⫱\",\"𝕥\":\"𝕥\",\"⫚\":\"⫚\",\"⤩\":\"⤩\",\"‴\":\"‴\",\"™\":\"™\",\"▵\":\"▵\",\"▿\":\"▿\",\"◃\":\"◃\",\"⊴\":\"⊴\",\"≜\":\"≜\",\"▹\":\"▹\",\"⊵\":\"⊵\",\"◬\":\"◬\",\"≜\":\"≜\",\"⨺\":\"⨺\",\"⨹\":\"⨹\",\"⧍\":\"⧍\",\"⨻\":\"⨻\",\"⏢\":\"⏢\",\"𝓉\":\"𝓉\",\"ц\":\"ц\",\"ћ\":\"ћ\",\"ŧ\":\"ŧ\",\"≬\":\"≬\",\"↞\":\"↞\",\"↠\":\"↠\",\"⇑\":\"⇑\",\"⥣\":\"⥣\",\"ú\":\"ú\",\"ú\":\"ú\",\"↑\":\"↑\",\"ў\":\"ў\",\"ŭ\":\"ŭ\",\"û\":\"û\",\"û\":\"û\",\"у\":\"у\",\"⇅\":\"⇅\",\"ű\":\"ű\",\"⥮\":\"⥮\",\"⥾\":\"⥾\",\"𝔲\":\"𝔲\",\"ù\":\"ù\",\"ù\":\"ù\",\"↿\":\"↿\",\"↾\":\"↾\",\"▀\":\"▀\",\"⌜\":\"⌜\",\"⌜\":\"⌜\",\"⌏\":\"⌏\",\"◸\":\"◸\",\"ū\":\"ū\",\"¨\":\"¨\",\"¨\":\"¨\",\"ų\":\"ų\",\"𝕦\":\"𝕦\",\"↑\":\"↑\",\"↕\":\"↕\",\"↿\":\"↿\",\"↾\":\"↾\",\"⊎\":\"⊎\",\"υ\":\"υ\",\"ϒ\":\"ϒ\",\"υ\":\"υ\",\"⇈\":\"⇈\",\"⌝\":\"⌝\",\"⌝\":\"⌝\",\"⌎\":\"⌎\",\"ů\":\"ů\",\"◹\":\"◹\",\"𝓊\":\"𝓊\",\"⋰\":\"⋰\",\"ũ\":\"ũ\",\"▵\":\"▵\",\"▴\":\"▴\",\"⇈\":\"⇈\",\"ü\":\"ü\",\"ü\":\"ü\",\"⦧\":\"⦧\",\"⇕\":\"⇕\",\"⫨\":\"⫨\",\"⫩\":\"⫩\",\"⊨\":\"⊨\",\"⦜\":\"⦜\",\"ϵ\":\"ϵ\",\"ϰ\":\"ϰ\",\"∅\":\"∅\",\"ϕ\":\"ϕ\",\"ϖ\":\"ϖ\",\"∝\":\"∝\",\"↕\":\"↕\",\"ϱ\":\"ϱ\",\"ς\":\"ς\",\"⊊︀\":\"⊊︀\",\"⫋︀\":\"⫋︀\",\"⊋︀\":\"⊋︀\",\"⫌︀\":\"⫌︀\",\"ϑ\":\"ϑ\",\"⊲\":\"⊲\",\"⊳\":\"⊳\",\"в\":\"в\",\"⊢\":\"⊢\",\"∨\":\"∨\",\"⊻\":\"⊻\",\"≚\":\"≚\",\"⋮\":\"⋮\",\"|\":\"|\",\"|\":\"|\",\"𝔳\":\"𝔳\",\"⊲\":\"⊲\",\"⊂⃒\":\"⊂⃒\",\"⊃⃒\":\"⊃⃒\",\"𝕧\":\"𝕧\",\"∝\":\"∝\",\"⊳\":\"⊳\",\"𝓋\":\"𝓋\",\"⫋︀\":\"⫋︀\",\"⊊︀\":\"⊊︀\",\"⫌︀\":\"⫌︀\",\"⊋︀\":\"⊋︀\",\"⦚\":\"⦚\",\"ŵ\":\"ŵ\",\"⩟\":\"⩟\",\"∧\":\"∧\",\"≙\":\"≙\",\"℘\":\"℘\",\"𝔴\":\"𝔴\",\"𝕨\":\"𝕨\",\"℘\":\"℘\",\"≀\":\"≀\",\"≀\":\"≀\",\"𝓌\":\"𝓌\",\"⋂\":\"⋂\",\"◯\":\"◯\",\"⋃\":\"⋃\",\"▽\":\"▽\",\"𝔵\":\"𝔵\",\"⟺\":\"⟺\",\"⟷\":\"⟷\",\"ξ\":\"ξ\",\"⟸\":\"⟸\",\"⟵\":\"⟵\",\"⟼\":\"⟼\",\"⋻\":\"⋻\",\"⨀\":\"⨀\",\"𝕩\":\"𝕩\",\"⨁\":\"⨁\",\"⨂\":\"⨂\",\"⟹\":\"⟹\",\"⟶\":\"⟶\",\"𝓍\":\"𝓍\",\"⨆\":\"⨆\",\"⨄\":\"⨄\",\"△\":\"△\",\"⋁\":\"⋁\",\"⋀\":\"⋀\",\"ý\":\"ý\",\"ý\":\"ý\",\"я\":\"я\",\"ŷ\":\"ŷ\",\"ы\":\"ы\",\"¥\":\"¥\",\"¥\":\"¥\",\"𝔶\":\"𝔶\",\"ї\":\"ї\",\"𝕪\":\"𝕪\",\"𝓎\":\"𝓎\",\"ю\":\"ю\",\"ÿ\":\"ÿ\",\"ÿ\":\"ÿ\",\"ź\":\"ź\",\"ž\":\"ž\",\"з\":\"з\",\"ż\":\"ż\",\"ℨ\":\"ℨ\",\"ζ\":\"ζ\",\"𝔷\":\"𝔷\",\"ж\":\"ж\",\"⇝\":\"⇝\",\"𝕫\":\"𝕫\",\"𝓏\":\"𝓏\",\"‍\":\"‍\",\"‌\":\"‌\"},characters:{\"Æ\":\"Æ\",\"&\":\"&\",\"Á\":\"Á\",\"Ă\":\"Ă\",\"Â\":\"Â\",\"А\":\"А\",\"𝔄\":\"𝔄\",\"À\":\"À\",\"Α\":\"Α\",\"Ā\":\"Ā\",\"⩓\":\"⩓\",\"Ą\":\"Ą\",\"𝔸\":\"𝔸\",\"⁡\":\"⁡\",\"Å\":\"Å\",\"𝒜\":\"𝒜\",\"≔\":\"≔\",\"Ã\":\"Ã\",\"Ä\":\"Ä\",\"∖\":\"∖\",\"⫧\":\"⫧\",\"⌆\":\"⌆\",\"Б\":\"Б\",\"∵\":\"∵\",\"ℬ\":\"ℬ\",\"Β\":\"Β\",\"𝔅\":\"𝔅\",\"𝔹\":\"𝔹\",\"˘\":\"˘\",\"≎\":\"≎\",\"Ч\":\"Ч\",\"©\":\"©\",\"Ć\":\"Ć\",\"⋒\":\"⋒\",\"ⅅ\":\"ⅅ\",\"ℭ\":\"ℭ\",\"Č\":\"Č\",\"Ç\":\"Ç\",\"Ĉ\":\"Ĉ\",\"∰\":\"∰\",\"Ċ\":\"Ċ\",\"¸\":\"¸\",\"·\":\"·\",\"Χ\":\"Χ\",\"⊙\":\"⊙\",\"⊖\":\"⊖\",\"⊕\":\"⊕\",\"⊗\":\"⊗\",\"∲\":\"∲\",\"”\":\"”\",\"’\":\"’\",\"∷\":\"∷\",\"⩴\":\"⩴\",\"≡\":\"≡\",\"∯\":\"∯\",\"∮\":\"∮\",\"ℂ\":\"ℂ\",\"∐\":\"∐\",\"∳\":\"∳\",\"⨯\":\"⨯\",\"𝒞\":\"𝒞\",\"⋓\":\"⋓\",\"≍\":\"≍\",\"⤑\":\"⤑\",\"Ђ\":\"Ђ\",\"Ѕ\":\"Ѕ\",\"Џ\":\"Џ\",\"‡\":\"‡\",\"↡\":\"↡\",\"⫤\":\"⫤\",\"Ď\":\"Ď\",\"Д\":\"Д\",\"∇\":\"∇\",\"Δ\":\"Δ\",\"𝔇\":\"𝔇\",\"´\":\"´\",\"˙\":\"˙\",\"˝\":\"˝\",\"`\":\"`\",\"˜\":\"˜\",\"⋄\":\"⋄\",\"ⅆ\":\"ⅆ\",\"𝔻\":\"𝔻\",\"¨\":\"¨\",\"⃜\":\"⃜\",\"≐\":\"≐\",\"⇓\":\"⇓\",\"⇐\":\"⇐\",\"⇔\":\"⇔\",\"⟸\":\"⟸\",\"⟺\":\"⟺\",\"⟹\":\"⟹\",\"⇒\":\"⇒\",\"⊨\":\"⊨\",\"⇑\":\"⇑\",\"⇕\":\"⇕\",\"∥\":\"∥\",\"↓\":\"↓\",\"⤓\":\"⤓\",\"⇵\":\"⇵\",\"̑\":\"̑\",\"⥐\":\"⥐\",\"⥞\":\"⥞\",\"↽\":\"↽\",\"⥖\":\"⥖\",\"⥟\":\"⥟\",\"⇁\":\"⇁\",\"⥗\":\"⥗\",\"⊤\":\"⊤\",\"↧\":\"↧\",\"𝒟\":\"𝒟\",\"Đ\":\"Đ\",\"Ŋ\":\"Ŋ\",\"Ð\":\"Ð\",\"É\":\"É\",\"Ě\":\"Ě\",\"Ê\":\"Ê\",\"Э\":\"Э\",\"Ė\":\"Ė\",\"𝔈\":\"𝔈\",\"È\":\"È\",\"∈\":\"∈\",\"Ē\":\"Ē\",\"◻\":\"◻\",\"▫\":\"▫\",\"Ę\":\"Ę\",\"𝔼\":\"𝔼\",\"Ε\":\"Ε\",\"⩵\":\"⩵\",\"≂\":\"≂\",\"⇌\":\"⇌\",\"ℰ\":\"ℰ\",\"⩳\":\"⩳\",\"Η\":\"Η\",\"Ë\":\"Ë\",\"∃\":\"∃\",\"ⅇ\":\"ⅇ\",\"Ф\":\"Ф\",\"𝔉\":\"𝔉\",\"◼\":\"◼\",\"▪\":\"▪\",\"𝔽\":\"𝔽\",\"∀\":\"∀\",\"ℱ\":\"ℱ\",\"Ѓ\":\"Ѓ\",\">\":\">\",\"Γ\":\"Γ\",\"Ϝ\":\"Ϝ\",\"Ğ\":\"Ğ\",\"Ģ\":\"Ģ\",\"Ĝ\":\"Ĝ\",\"Г\":\"Г\",\"Ġ\":\"Ġ\",\"𝔊\":\"𝔊\",\"⋙\":\"⋙\",\"𝔾\":\"𝔾\",\"≥\":\"≥\",\"⋛\":\"⋛\",\"≧\":\"≧\",\"⪢\":\"⪢\",\"≷\":\"≷\",\"⩾\":\"⩾\",\"≳\":\"≳\",\"𝒢\":\"𝒢\",\"≫\":\"≫\",\"Ъ\":\"Ъ\",\"ˇ\":\"ˇ\",\"^\":\"^\",\"Ĥ\":\"Ĥ\",\"ℌ\":\"ℌ\",\"ℋ\":\"ℋ\",\"ℍ\":\"ℍ\",\"─\":\"─\",\"Ħ\":\"Ħ\",\"≏\":\"≏\",\"Е\":\"Е\",\"IJ\":\"IJ\",\"Ё\":\"Ё\",\"Í\":\"Í\",\"Î\":\"Î\",\"И\":\"И\",\"İ\":\"İ\",\"ℑ\":\"ℑ\",\"Ì\":\"Ì\",\"Ī\":\"Ī\",\"ⅈ\":\"ⅈ\",\"∬\":\"∬\",\"∫\":\"∫\",\"⋂\":\"⋂\",\"⁣\":\"⁣\",\"⁢\":\"⁢\",\"Į\":\"Į\",\"𝕀\":\"𝕀\",\"Ι\":\"Ι\",\"ℐ\":\"ℐ\",\"Ĩ\":\"Ĩ\",\"І\":\"І\",\"Ï\":\"Ï\",\"Ĵ\":\"Ĵ\",\"Й\":\"Й\",\"𝔍\":\"𝔍\",\"𝕁\":\"𝕁\",\"𝒥\":\"𝒥\",\"Ј\":\"Ј\",\"Є\":\"Є\",\"Х\":\"Х\",\"Ќ\":\"Ќ\",\"Κ\":\"Κ\",\"Ķ\":\"Ķ\",\"К\":\"К\",\"𝔎\":\"𝔎\",\"𝕂\":\"𝕂\",\"𝒦\":\"𝒦\",\"Љ\":\"Љ\",\"<\":\"<\",\"Ĺ\":\"Ĺ\",\"Λ\":\"Λ\",\"⟪\":\"⟪\",\"ℒ\":\"ℒ\",\"↞\":\"↞\",\"Ľ\":\"Ľ\",\"Ļ\":\"Ļ\",\"Л\":\"Л\",\"⟨\":\"⟨\",\"←\":\"←\",\"⇤\":\"⇤\",\"⇆\":\"⇆\",\"⌈\":\"⌈\",\"⟦\":\"⟦\",\"⥡\":\"⥡\",\"⇃\":\"⇃\",\"⥙\":\"⥙\",\"⌊\":\"⌊\",\"↔\":\"↔\",\"⥎\":\"⥎\",\"⊣\":\"⊣\",\"↤\":\"↤\",\"⥚\":\"⥚\",\"⊲\":\"⊲\",\"⧏\":\"⧏\",\"⊴\":\"⊴\",\"⥑\":\"⥑\",\"⥠\":\"⥠\",\"↿\":\"↿\",\"⥘\":\"⥘\",\"↼\":\"↼\",\"⥒\":\"⥒\",\"⋚\":\"⋚\",\"≦\":\"≦\",\"≶\":\"≶\",\"⪡\":\"⪡\",\"⩽\":\"⩽\",\"≲\":\"≲\",\"𝔏\":\"𝔏\",\"⋘\":\"⋘\",\"⇚\":\"⇚\",\"Ŀ\":\"Ŀ\",\"⟵\":\"⟵\",\"⟷\":\"⟷\",\"⟶\":\"⟶\",\"𝕃\":\"𝕃\",\"↙\":\"↙\",\"↘\":\"↘\",\"↰\":\"↰\",\"Ł\":\"Ł\",\"≪\":\"≪\",\"⤅\":\"⤅\",\"М\":\"М\",\" \":\" \",\"ℳ\":\"ℳ\",\"𝔐\":\"𝔐\",\"∓\":\"∓\",\"𝕄\":\"𝕄\",\"Μ\":\"Μ\",\"Њ\":\"Њ\",\"Ń\":\"Ń\",\"Ň\":\"Ň\",\"Ņ\":\"Ņ\",\"Н\":\"Н\",\"​\":\"​\",\"\\n\":\" \",\"𝔑\":\"𝔑\",\"⁠\":\"⁠\",\" \":\" \",\"ℕ\":\"ℕ\",\"⫬\":\"⫬\",\"≢\":\"≢\",\"≭\":\"≭\",\"∦\":\"∦\",\"∉\":\"∉\",\"≠\":\"≠\",\"≂̸\":\"≂̸\",\"∄\":\"∄\",\"≯\":\"≯\",\"≱\":\"≱\",\"≧̸\":\"≧̸\",\"≫̸\":\"≫̸\",\"≹\":\"≹\",\"⩾̸\":\"⩾̸\",\"≵\":\"≵\",\"≎̸\":\"≎̸\",\"≏̸\":\"≏̸\",\"⋪\":\"⋪\",\"⧏̸\":\"⧏̸\",\"⋬\":\"⋬\",\"≮\":\"≮\",\"≰\":\"≰\",\"≸\":\"≸\",\"≪̸\":\"≪̸\",\"⩽̸\":\"⩽̸\",\"≴\":\"≴\",\"⪢̸\":\"⪢̸\",\"⪡̸\":\"⪡̸\",\"⊀\":\"⊀\",\"⪯̸\":\"⪯̸\",\"⋠\":\"⋠\",\"∌\":\"∌\",\"⋫\":\"⋫\",\"⧐̸\":\"⧐̸\",\"⋭\":\"⋭\",\"⊏̸\":\"⊏̸\",\"⋢\":\"⋢\",\"⊐̸\":\"⊐̸\",\"⋣\":\"⋣\",\"⊂⃒\":\"⊂⃒\",\"⊈\":\"⊈\",\"⊁\":\"⊁\",\"⪰̸\":\"⪰̸\",\"⋡\":\"⋡\",\"≿̸\":\"≿̸\",\"⊃⃒\":\"⊃⃒\",\"⊉\":\"⊉\",\"≁\":\"≁\",\"≄\":\"≄\",\"≇\":\"≇\",\"≉\":\"≉\",\"∤\":\"∤\",\"𝒩\":\"𝒩\",\"Ñ\":\"Ñ\",\"Ν\":\"Ν\",\"Œ\":\"Œ\",\"Ó\":\"Ó\",\"Ô\":\"Ô\",\"О\":\"О\",\"Ő\":\"Ő\",\"𝔒\":\"𝔒\",\"Ò\":\"Ò\",\"Ō\":\"Ō\",\"Ω\":\"Ω\",\"Ο\":\"Ο\",\"𝕆\":\"𝕆\",\"“\":\"“\",\"‘\":\"‘\",\"⩔\":\"⩔\",\"𝒪\":\"𝒪\",\"Ø\":\"Ø\",\"Õ\":\"Õ\",\"⨷\":\"⨷\",\"Ö\":\"Ö\",\"‾\":\"‾\",\"⏞\":\"⏞\",\"⎴\":\"⎴\",\"⏜\":\"⏜\",\"∂\":\"∂\",\"П\":\"П\",\"𝔓\":\"𝔓\",\"Φ\":\"Φ\",\"Π\":\"Π\",\"±\":\"±\",\"ℙ\":\"ℙ\",\"⪻\":\"⪻\",\"≺\":\"≺\",\"⪯\":\"⪯\",\"≼\":\"≼\",\"≾\":\"≾\",\"″\":\"″\",\"∏\":\"∏\",\"∝\":\"∝\",\"𝒫\":\"𝒫\",\"Ψ\":\"Ψ\",'\"':\""\",\"𝔔\":\"𝔔\",\"ℚ\":\"ℚ\",\"𝒬\":\"𝒬\",\"⤐\":\"⤐\",\"®\":\"®\",\"Ŕ\":\"Ŕ\",\"⟫\":\"⟫\",\"↠\":\"↠\",\"⤖\":\"⤖\",\"Ř\":\"Ř\",\"Ŗ\":\"Ŗ\",\"Р\":\"Р\",\"ℜ\":\"ℜ\",\"∋\":\"∋\",\"⇋\":\"⇋\",\"⥯\":\"⥯\",\"Ρ\":\"Ρ\",\"⟩\":\"⟩\",\"→\":\"→\",\"⇥\":\"⇥\",\"⇄\":\"⇄\",\"⌉\":\"⌉\",\"⟧\":\"⟧\",\"⥝\":\"⥝\",\"⇂\":\"⇂\",\"⥕\":\"⥕\",\"⌋\":\"⌋\",\"⊢\":\"⊢\",\"↦\":\"↦\",\"⥛\":\"⥛\",\"⊳\":\"⊳\",\"⧐\":\"⧐\",\"⊵\":\"⊵\",\"⥏\":\"⥏\",\"⥜\":\"⥜\",\"↾\":\"↾\",\"⥔\":\"⥔\",\"⇀\":\"⇀\",\"⥓\":\"⥓\",\"ℝ\":\"ℝ\",\"⥰\":\"⥰\",\"⇛\":\"⇛\",\"ℛ\":\"ℛ\",\"↱\":\"↱\",\"⧴\":\"⧴\",\"Щ\":\"Щ\",\"Ш\":\"Ш\",\"Ь\":\"Ь\",\"Ś\":\"Ś\",\"⪼\":\"⪼\",\"Š\":\"Š\",\"Ş\":\"Ş\",\"Ŝ\":\"Ŝ\",\"С\":\"С\",\"𝔖\":\"𝔖\",\"↑\":\"↑\",\"Σ\":\"Σ\",\"∘\":\"∘\",\"𝕊\":\"𝕊\",\"√\":\"√\",\"□\":\"□\",\"⊓\":\"⊓\",\"⊏\":\"⊏\",\"⊑\":\"⊑\",\"⊐\":\"⊐\",\"⊒\":\"⊒\",\"⊔\":\"⊔\",\"𝒮\":\"𝒮\",\"⋆\":\"⋆\",\"⋐\":\"⋐\",\"⊆\":\"⊆\",\"≻\":\"≻\",\"⪰\":\"⪰\",\"≽\":\"≽\",\"≿\":\"≿\",\"∑\":\"∑\",\"⋑\":\"⋑\",\"⊃\":\"⊃\",\"⊇\":\"⊇\",\"Þ\":\"Þ\",\"™\":\"™\",\"Ћ\":\"Ћ\",\"Ц\":\"Ц\",\"\\t\":\" \",\"Τ\":\"Τ\",\"Ť\":\"Ť\",\"Ţ\":\"Ţ\",\"Т\":\"Т\",\"𝔗\":\"𝔗\",\"∴\":\"∴\",\"Θ\":\"Θ\",\"  \":\"  \",\" \":\" \",\"∼\":\"∼\",\"≃\":\"≃\",\"≅\":\"≅\",\"≈\":\"≈\",\"𝕋\":\"𝕋\",\"⃛\":\"⃛\",\"𝒯\":\"𝒯\",\"Ŧ\":\"Ŧ\",\"Ú\":\"Ú\",\"↟\":\"↟\",\"⥉\":\"⥉\",\"Ў\":\"Ў\",\"Ŭ\":\"Ŭ\",\"Û\":\"Û\",\"У\":\"У\",\"Ű\":\"Ű\",\"𝔘\":\"𝔘\",\"Ù\":\"Ù\",\"Ū\":\"Ū\",_:\"_\",\"⏟\":\"⏟\",\"⎵\":\"⎵\",\"⏝\":\"⏝\",\"⋃\":\"⋃\",\"⊎\":\"⊎\",\"Ų\":\"Ų\",\"𝕌\":\"𝕌\",\"⤒\":\"⤒\",\"⇅\":\"⇅\",\"↕\":\"↕\",\"⥮\":\"⥮\",\"⊥\":\"⊥\",\"↥\":\"↥\",\"↖\":\"↖\",\"↗\":\"↗\",\"ϒ\":\"ϒ\",\"Υ\":\"Υ\",\"Ů\":\"Ů\",\"𝒰\":\"𝒰\",\"Ũ\":\"Ũ\",\"Ü\":\"Ü\",\"⊫\":\"⊫\",\"⫫\":\"⫫\",\"В\":\"В\",\"⊩\":\"⊩\",\"⫦\":\"⫦\",\"⋁\":\"⋁\",\"‖\":\"‖\",\"∣\":\"∣\",\"|\":\"|\",\"❘\":\"❘\",\"≀\":\"≀\",\" \":\" \",\"𝔙\":\"𝔙\",\"𝕍\":\"𝕍\",\"𝒱\":\"𝒱\",\"⊪\":\"⊪\",\"Ŵ\":\"Ŵ\",\"⋀\":\"⋀\",\"𝔚\":\"𝔚\",\"𝕎\":\"𝕎\",\"𝒲\":\"𝒲\",\"𝔛\":\"𝔛\",\"Ξ\":\"Ξ\",\"𝕏\":\"𝕏\",\"𝒳\":\"𝒳\",\"Я\":\"Я\",\"Ї\":\"Ї\",\"Ю\":\"Ю\",\"Ý\":\"Ý\",\"Ŷ\":\"Ŷ\",\"Ы\":\"Ы\",\"𝔜\":\"𝔜\",\"𝕐\":\"𝕐\",\"𝒴\":\"𝒴\",\"Ÿ\":\"Ÿ\",\"Ж\":\"Ж\",\"Ź\":\"Ź\",\"Ž\":\"Ž\",\"З\":\"З\",\"Ż\":\"Ż\",\"Ζ\":\"Ζ\",\"ℨ\":\"ℨ\",\"ℤ\":\"ℤ\",\"𝒵\":\"𝒵\",\"á\":\"á\",\"ă\":\"ă\",\"∾\":\"∾\",\"∾̳\":\"∾̳\",\"∿\":\"∿\",\"â\":\"â\",\"а\":\"а\",\"æ\":\"æ\",\"𝔞\":\"𝔞\",\"à\":\"à\",\"ℵ\":\"ℵ\",\"α\":\"α\",\"ā\":\"ā\",\"⨿\":\"⨿\",\"∧\":\"∧\",\"⩕\":\"⩕\",\"⩜\":\"⩜\",\"⩘\":\"⩘\",\"⩚\":\"⩚\",\"∠\":\"∠\",\"⦤\":\"⦤\",\"∡\":\"∡\",\"⦨\":\"⦨\",\"⦩\":\"⦩\",\"⦪\":\"⦪\",\"⦫\":\"⦫\",\"⦬\":\"⦬\",\"⦭\":\"⦭\",\"⦮\":\"⦮\",\"⦯\":\"⦯\",\"∟\":\"∟\",\"⊾\":\"⊾\",\"⦝\":\"⦝\",\"∢\":\"∢\",\"⍼\":\"⍼\",\"ą\":\"ą\",\"𝕒\":\"𝕒\",\"⩰\":\"⩰\",\"⩯\":\"⩯\",\"≊\":\"≊\",\"≋\":\"≋\",\"'\":\"'\",\"å\":\"å\",\"𝒶\":\"𝒶\",\"*\":\"*\",\"ã\":\"ã\",\"ä\":\"ä\",\"⨑\":\"⨑\",\"⫭\":\"⫭\",\"≌\":\"≌\",\"϶\":\"϶\",\"‵\":\"‵\",\"∽\":\"∽\",\"⋍\":\"⋍\",\"⊽\":\"⊽\",\"⌅\":\"⌅\",\"⎶\":\"⎶\",\"б\":\"б\",\"„\":\"„\",\"⦰\":\"⦰\",\"β\":\"β\",\"ℶ\":\"ℶ\",\"≬\":\"≬\",\"𝔟\":\"𝔟\",\"◯\":\"◯\",\"⨀\":\"⨀\",\"⨁\":\"⨁\",\"⨂\":\"⨂\",\"⨆\":\"⨆\",\"★\":\"★\",\"▽\":\"▽\",\"△\":\"△\",\"⨄\":\"⨄\",\"⤍\":\"⤍\",\"⧫\":\"⧫\",\"▴\":\"▴\",\"▾\":\"▾\",\"◂\":\"◂\",\"▸\":\"▸\",\"␣\":\"␣\",\"▒\":\"▒\",\"░\":\"░\",\"▓\":\"▓\",\"█\":\"█\",\"=⃥\":\"=⃥\",\"≡⃥\":\"≡⃥\",\"⌐\":\"⌐\",\"𝕓\":\"𝕓\",\"⋈\":\"⋈\",\"╗\":\"╗\",\"╔\":\"╔\",\"╖\":\"╖\",\"╓\":\"╓\",\"═\":\"═\",\"╦\":\"╦\",\"╩\":\"╩\",\"╤\":\"╤\",\"╧\":\"╧\",\"╝\":\"╝\",\"╚\":\"╚\",\"╜\":\"╜\",\"╙\":\"╙\",\"║\":\"║\",\"╬\":\"╬\",\"╣\":\"╣\",\"╠\":\"╠\",\"╫\":\"╫\",\"╢\":\"╢\",\"╟\":\"╟\",\"⧉\":\"⧉\",\"╕\":\"╕\",\"╒\":\"╒\",\"┐\":\"┐\",\"┌\":\"┌\",\"╥\":\"╥\",\"╨\":\"╨\",\"┬\":\"┬\",\"┴\":\"┴\",\"⊟\":\"⊟\",\"⊞\":\"⊞\",\"⊠\":\"⊠\",\"╛\":\"╛\",\"╘\":\"╘\",\"┘\":\"┘\",\"└\":\"└\",\"│\":\"│\",\"╪\":\"╪\",\"╡\":\"╡\",\"╞\":\"╞\",\"┼\":\"┼\",\"┤\":\"┤\",\"├\":\"├\",\"¦\":\"¦\",\"𝒷\":\"𝒷\",\"⁏\":\"⁏\",\"\\\\\":\"\\",\"⧅\":\"⧅\",\"⟈\":\"⟈\",\"•\":\"•\",\"⪮\":\"⪮\",\"ć\":\"ć\",\"∩\":\"∩\",\"⩄\":\"⩄\",\"⩉\":\"⩉\",\"⩋\":\"⩋\",\"⩇\":\"⩇\",\"⩀\":\"⩀\",\"∩︀\":\"∩︀\",\"⁁\":\"⁁\",\"⩍\":\"⩍\",\"č\":\"č\",\"ç\":\"ç\",\"ĉ\":\"ĉ\",\"⩌\":\"⩌\",\"⩐\":\"⩐\",\"ċ\":\"ċ\",\"⦲\":\"⦲\",\"¢\":\"¢\",\"𝔠\":\"𝔠\",\"ч\":\"ч\",\"✓\":\"✓\",\"χ\":\"χ\",\"○\":\"○\",\"⧃\":\"⧃\",\"ˆ\":\"ˆ\",\"≗\":\"≗\",\"↺\":\"↺\",\"↻\":\"↻\",\"Ⓢ\":\"Ⓢ\",\"⊛\":\"⊛\",\"⊚\":\"⊚\",\"⊝\":\"⊝\",\"⨐\":\"⨐\",\"⫯\":\"⫯\",\"⧂\":\"⧂\",\"♣\":\"♣\",\":\":\":\",\",\":\",\",\"@\":\"@\",\"∁\":\"∁\",\"⩭\":\"⩭\",\"𝕔\":\"𝕔\",\"℗\":\"℗\",\"↵\":\"↵\",\"✗\":\"✗\",\"𝒸\":\"𝒸\",\"⫏\":\"⫏\",\"⫑\":\"⫑\",\"⫐\":\"⫐\",\"⫒\":\"⫒\",\"⋯\":\"⋯\",\"⤸\":\"⤸\",\"⤵\":\"⤵\",\"⋞\":\"⋞\",\"⋟\":\"⋟\",\"↶\":\"↶\",\"⤽\":\"⤽\",\"∪\":\"∪\",\"⩈\":\"⩈\",\"⩆\":\"⩆\",\"⩊\":\"⩊\",\"⊍\":\"⊍\",\"⩅\":\"⩅\",\"∪︀\":\"∪︀\",\"↷\":\"↷\",\"⤼\":\"⤼\",\"⋎\":\"⋎\",\"⋏\":\"⋏\",\"¤\":\"¤\",\"∱\":\"∱\",\"⌭\":\"⌭\",\"⥥\":\"⥥\",\"†\":\"†\",\"ℸ\":\"ℸ\",\"‐\":\"‐\",\"⤏\":\"⤏\",\"ď\":\"ď\",\"д\":\"д\",\"⇊\":\"⇊\",\"⩷\":\"⩷\",\"°\":\"°\",\"δ\":\"δ\",\"⦱\":\"⦱\",\"⥿\":\"⥿\",\"𝔡\":\"𝔡\",\"♦\":\"♦\",\"ϝ\":\"ϝ\",\"⋲\":\"⋲\",\"÷\":\"÷\",\"⋇\":\"⋇\",\"ђ\":\"ђ\",\"⌞\":\"⌞\",\"⌍\":\"⌍\",$:\"$\",\"𝕕\":\"𝕕\",\"≑\":\"≑\",\"∸\":\"∸\",\"∔\":\"∔\",\"⊡\":\"⊡\",\"⌟\":\"⌟\",\"⌌\":\"⌌\",\"𝒹\":\"𝒹\",\"ѕ\":\"ѕ\",\"⧶\":\"⧶\",\"đ\":\"đ\",\"⋱\":\"⋱\",\"▿\":\"▿\",\"⦦\":\"⦦\",\"џ\":\"џ\",\"⟿\":\"⟿\",\"é\":\"é\",\"⩮\":\"⩮\",\"ě\":\"ě\",\"≖\":\"≖\",\"ê\":\"ê\",\"≕\":\"≕\",\"э\":\"э\",\"ė\":\"ė\",\"≒\":\"≒\",\"𝔢\":\"𝔢\",\"⪚\":\"⪚\",\"è\":\"è\",\"⪖\":\"⪖\",\"⪘\":\"⪘\",\"⪙\":\"⪙\",\"⏧\":\"⏧\",\"ℓ\":\"ℓ\",\"⪕\":\"⪕\",\"⪗\":\"⪗\",\"ē\":\"ē\",\"∅\":\"∅\",\" \":\" \",\" \":\" \",\" \":\" \",\"ŋ\":\"ŋ\",\" \":\" \",\"ę\":\"ę\",\"𝕖\":\"𝕖\",\"⋕\":\"⋕\",\"⧣\":\"⧣\",\"⩱\":\"⩱\",\"ε\":\"ε\",\"ϵ\":\"ϵ\",\"=\":\"=\",\"≟\":\"≟\",\"⩸\":\"⩸\",\"⧥\":\"⧥\",\"≓\":\"≓\",\"⥱\":\"⥱\",\"ℯ\":\"ℯ\",\"η\":\"η\",\"ð\":\"ð\",\"ë\":\"ë\",\"€\":\"€\",\"!\":\"!\",\"ф\":\"ф\",\"♀\":\"♀\",\"ffi\":\"ffi\",\"ff\":\"ff\",\"ffl\":\"ffl\",\"𝔣\":\"𝔣\",\"fi\":\"fi\",fj:\"fj\",\"♭\":\"♭\",\"fl\":\"fl\",\"▱\":\"▱\",\"ƒ\":\"ƒ\",\"𝕗\":\"𝕗\",\"⋔\":\"⋔\",\"⫙\":\"⫙\",\"⨍\":\"⨍\",\"½\":\"½\",\"⅓\":\"⅓\",\"¼\":\"¼\",\"⅕\":\"⅕\",\"⅙\":\"⅙\",\"⅛\":\"⅛\",\"⅔\":\"⅔\",\"⅖\":\"⅖\",\"¾\":\"¾\",\"⅗\":\"⅗\",\"⅜\":\"⅜\",\"⅘\":\"⅘\",\"⅚\":\"⅚\",\"⅝\":\"⅝\",\"⅞\":\"⅞\",\"⁄\":\"⁄\",\"⌢\":\"⌢\",\"𝒻\":\"𝒻\",\"⪌\":\"⪌\",\"ǵ\":\"ǵ\",\"γ\":\"γ\",\"⪆\":\"⪆\",\"ğ\":\"ğ\",\"ĝ\":\"ĝ\",\"г\":\"г\",\"ġ\":\"ġ\",\"⪩\":\"⪩\",\"⪀\":\"⪀\",\"⪂\":\"⪂\",\"⪄\":\"⪄\",\"⋛︀\":\"⋛︀\",\"⪔\":\"⪔\",\"𝔤\":\"𝔤\",\"ℷ\":\"ℷ\",\"ѓ\":\"ѓ\",\"⪒\":\"⪒\",\"⪥\":\"⪥\",\"⪤\":\"⪤\",\"≩\":\"≩\",\"⪊\":\"⪊\",\"⪈\":\"⪈\",\"⋧\":\"⋧\",\"𝕘\":\"𝕘\",\"ℊ\":\"ℊ\",\"⪎\":\"⪎\",\"⪐\":\"⪐\",\"⪧\":\"⪧\",\"⩺\":\"⩺\",\"⋗\":\"⋗\",\"⦕\":\"⦕\",\"⩼\":\"⩼\",\"⥸\":\"⥸\",\"≩︀\":\"≩︀\",\"ъ\":\"ъ\",\"⥈\":\"⥈\",\"↭\":\"↭\",\"ℏ\":\"ℏ\",\"ĥ\":\"ĥ\",\"♥\":\"♥\",\"…\":\"…\",\"⊹\":\"⊹\",\"𝔥\":\"𝔥\",\"⤥\":\"⤥\",\"⤦\":\"⤦\",\"⇿\":\"⇿\",\"∻\":\"∻\",\"↩\":\"↩\",\"↪\":\"↪\",\"𝕙\":\"𝕙\",\"―\":\"―\",\"𝒽\":\"𝒽\",\"ħ\":\"ħ\",\"⁃\":\"⁃\",\"í\":\"í\",\"î\":\"î\",\"и\":\"и\",\"е\":\"е\",\"¡\":\"¡\",\"𝔦\":\"𝔦\",\"ì\":\"ì\",\"⨌\":\"⨌\",\"∭\":\"∭\",\"⧜\":\"⧜\",\"℩\":\"℩\",\"ij\":\"ij\",\"ī\":\"ī\",\"ı\":\"ı\",\"⊷\":\"⊷\",\"Ƶ\":\"Ƶ\",\"℅\":\"℅\",\"∞\":\"∞\",\"⧝\":\"⧝\",\"⊺\":\"⊺\",\"⨗\":\"⨗\",\"⨼\":\"⨼\",\"ё\":\"ё\",\"į\":\"į\",\"𝕚\":\"𝕚\",\"ι\":\"ι\",\"¿\":\"¿\",\"𝒾\":\"𝒾\",\"⋹\":\"⋹\",\"⋵\":\"⋵\",\"⋴\":\"⋴\",\"⋳\":\"⋳\",\"ĩ\":\"ĩ\",\"і\":\"і\",\"ï\":\"ï\",\"ĵ\":\"ĵ\",\"й\":\"й\",\"𝔧\":\"𝔧\",\"ȷ\":\"ȷ\",\"𝕛\":\"𝕛\",\"𝒿\":\"𝒿\",\"ј\":\"ј\",\"є\":\"є\",\"κ\":\"κ\",\"ϰ\":\"ϰ\",\"ķ\":\"ķ\",\"к\":\"к\",\"𝔨\":\"𝔨\",\"ĸ\":\"ĸ\",\"х\":\"х\",\"ќ\":\"ќ\",\"𝕜\":\"𝕜\",\"𝓀\":\"𝓀\",\"⤛\":\"⤛\",\"⤎\":\"⤎\",\"⪋\":\"⪋\",\"⥢\":\"⥢\",\"ĺ\":\"ĺ\",\"⦴\":\"⦴\",\"λ\":\"λ\",\"⦑\":\"⦑\",\"⪅\":\"⪅\",\"«\":\"«\",\"⤟\":\"⤟\",\"⤝\":\"⤝\",\"↫\":\"↫\",\"⤹\":\"⤹\",\"⥳\":\"⥳\",\"↢\":\"↢\",\"⪫\":\"⪫\",\"⤙\":\"⤙\",\"⪭\":\"⪭\",\"⪭︀\":\"⪭︀\",\"⤌\":\"⤌\",\"❲\":\"❲\",\"{\":\"{\",\"[\":\"[\",\"⦋\":\"⦋\",\"⦏\":\"⦏\",\"⦍\":\"⦍\",\"ľ\":\"ľ\",\"ļ\":\"ļ\",\"л\":\"л\",\"⤶\":\"⤶\",\"⥧\":\"⥧\",\"⥋\":\"⥋\",\"↲\":\"↲\",\"≤\":\"≤\",\"⇇\":\"⇇\",\"⋋\":\"⋋\",\"⪨\":\"⪨\",\"⩿\":\"⩿\",\"⪁\":\"⪁\",\"⪃\":\"⪃\",\"⋚︀\":\"⋚︀\",\"⪓\":\"⪓\",\"⋖\":\"⋖\",\"⥼\":\"⥼\",\"𝔩\":\"𝔩\",\"⪑\":\"⪑\",\"⥪\":\"⥪\",\"▄\":\"▄\",\"љ\":\"љ\",\"⥫\":\"⥫\",\"◺\":\"◺\",\"ŀ\":\"ŀ\",\"⎰\":\"⎰\",\"≨\":\"≨\",\"⪉\":\"⪉\",\"⪇\":\"⪇\",\"⋦\":\"⋦\",\"⟬\":\"⟬\",\"⇽\":\"⇽\",\"⟼\":\"⟼\",\"↬\":\"↬\",\"⦅\":\"⦅\",\"𝕝\":\"𝕝\",\"⨭\":\"⨭\",\"⨴\":\"⨴\",\"∗\":\"∗\",\"◊\":\"◊\",\"(\":\"(\",\"⦓\":\"⦓\",\"⥭\":\"⥭\",\"‎\":\"‎\",\"⊿\":\"⊿\",\"‹\":\"‹\",\"𝓁\":\"𝓁\",\"⪍\":\"⪍\",\"⪏\":\"⪏\",\"‚\":\"‚\",\"ł\":\"ł\",\"⪦\":\"⪦\",\"⩹\":\"⩹\",\"⋉\":\"⋉\",\"⥶\":\"⥶\",\"⩻\":\"⩻\",\"⦖\":\"⦖\",\"◃\":\"◃\",\"⥊\":\"⥊\",\"⥦\":\"⥦\",\"≨︀\":\"≨︀\",\"∺\":\"∺\",\"¯\":\"¯\",\"♂\":\"♂\",\"✠\":\"✠\",\"▮\":\"▮\",\"⨩\":\"⨩\",\"м\":\"м\",\"—\":\"—\",\"𝔪\":\"𝔪\",\"℧\":\"℧\",\"µ\":\"µ\",\"⫰\":\"⫰\",\"−\":\"−\",\"⨪\":\"⨪\",\"⫛\":\"⫛\",\"⊧\":\"⊧\",\"𝕞\":\"𝕞\",\"𝓂\":\"𝓂\",\"μ\":\"μ\",\"⊸\":\"⊸\",\"⋙̸\":\"⋙̸\",\"≫⃒\":\"≫⃒\",\"⇍\":\"⇍\",\"⇎\":\"⇎\",\"⋘̸\":\"⋘̸\",\"≪⃒\":\"≪⃒\",\"⇏\":\"⇏\",\"⊯\":\"⊯\",\"⊮\":\"⊮\",\"ń\":\"ń\",\"∠⃒\":\"∠⃒\",\"⩰̸\":\"⩰̸\",\"≋̸\":\"≋̸\",\"ʼn\":\"ʼn\",\"♮\":\"♮\",\"⩃\":\"⩃\",\"ň\":\"ň\",\"ņ\":\"ņ\",\"⩭̸\":\"⩭̸\",\"⩂\":\"⩂\",\"н\":\"н\",\"–\":\"–\",\"⇗\":\"⇗\",\"⤤\":\"⤤\",\"≐̸\":\"≐̸\",\"⤨\":\"⤨\",\"𝔫\":\"𝔫\",\"↮\":\"↮\",\"⫲\":\"⫲\",\"⋼\":\"⋼\",\"⋺\":\"⋺\",\"њ\":\"њ\",\"≦̸\":\"≦̸\",\"↚\":\"↚\",\"‥\":\"‥\",\"𝕟\":\"𝕟\",\"¬\":\"¬\",\"⋹̸\":\"⋹̸\",\"⋵̸\":\"⋵̸\",\"⋷\":\"⋷\",\"⋶\":\"⋶\",\"⋾\":\"⋾\",\"⋽\":\"⋽\",\"⫽⃥\":\"⫽⃥\",\"∂̸\":\"∂̸\",\"⨔\":\"⨔\",\"↛\":\"↛\",\"⤳̸\":\"⤳̸\",\"↝̸\":\"↝̸\",\"𝓃\":\"𝓃\",\"⊄\":\"⊄\",\"⫅̸\":\"⫅̸\",\"⊅\":\"⊅\",\"⫆̸\":\"⫆̸\",\"ñ\":\"ñ\",\"ν\":\"ν\",\"#\":\"#\",\"№\":\"№\",\" \":\" \",\"⊭\":\"⊭\",\"⤄\":\"⤄\",\"≍⃒\":\"≍⃒\",\"⊬\":\"⊬\",\"≥⃒\":\"≥⃒\",\">⃒\":\">⃒\",\"⧞\":\"⧞\",\"⤂\":\"⤂\",\"≤⃒\":\"≤⃒\",\"<⃒\":\"<⃒\",\"⊴⃒\":\"⊴⃒\",\"⤃\":\"⤃\",\"⊵⃒\":\"⊵⃒\",\"∼⃒\":\"∼⃒\",\"⇖\":\"⇖\",\"⤣\":\"⤣\",\"⤧\":\"⤧\",\"ó\":\"ó\",\"ô\":\"ô\",\"о\":\"о\",\"ő\":\"ő\",\"⨸\":\"⨸\",\"⦼\":\"⦼\",\"œ\":\"œ\",\"⦿\":\"⦿\",\"𝔬\":\"𝔬\",\"˛\":\"˛\",\"ò\":\"ò\",\"⧁\":\"⧁\",\"⦵\":\"⦵\",\"⦾\":\"⦾\",\"⦻\":\"⦻\",\"⧀\":\"⧀\",\"ō\":\"ō\",\"ω\":\"ω\",\"ο\":\"ο\",\"⦶\":\"⦶\",\"𝕠\":\"𝕠\",\"⦷\":\"⦷\",\"⦹\":\"⦹\",\"∨\":\"∨\",\"⩝\":\"⩝\",\"ℴ\":\"ℴ\",\"ª\":\"ª\",\"º\":\"º\",\"⊶\":\"⊶\",\"⩖\":\"⩖\",\"⩗\":\"⩗\",\"⩛\":\"⩛\",\"ø\":\"ø\",\"⊘\":\"⊘\",\"õ\":\"õ\",\"⨶\":\"⨶\",\"ö\":\"ö\",\"⌽\":\"⌽\",\"¶\":\"¶\",\"⫳\":\"⫳\",\"⫽\":\"⫽\",\"п\":\"п\",\"%\":\"%\",\".\":\".\",\"‰\":\"‰\",\"‱\":\"‱\",\"𝔭\":\"𝔭\",\"φ\":\"φ\",\"ϕ\":\"ϕ\",\"☎\":\"☎\",\"π\":\"π\",\"ϖ\":\"ϖ\",\"ℎ\":\"ℎ\",\"+\":\"+\",\"⨣\":\"⨣\",\"⨢\":\"⨢\",\"⨥\":\"⨥\",\"⩲\":\"⩲\",\"⨦\":\"⨦\",\"⨧\":\"⨧\",\"⨕\":\"⨕\",\"𝕡\":\"𝕡\",\"£\":\"£\",\"⪳\":\"⪳\",\"⪷\":\"⪷\",\"⪹\":\"⪹\",\"⪵\":\"⪵\",\"⋨\":\"⋨\",\"′\":\"′\",\"⌮\":\"⌮\",\"⌒\":\"⌒\",\"⌓\":\"⌓\",\"⊰\":\"⊰\",\"𝓅\":\"𝓅\",\"ψ\":\"ψ\",\" \":\" \",\"𝔮\":\"𝔮\",\"𝕢\":\"𝕢\",\"⁗\":\"⁗\",\"𝓆\":\"𝓆\",\"⨖\":\"⨖\",\"?\":\"?\",\"⤜\":\"⤜\",\"⥤\":\"⥤\",\"∽̱\":\"∽̱\",\"ŕ\":\"ŕ\",\"⦳\":\"⦳\",\"⦒\":\"⦒\",\"⦥\":\"⦥\",\"»\":\"»\",\"⥵\":\"⥵\",\"⤠\":\"⤠\",\"⤳\":\"⤳\",\"⤞\":\"⤞\",\"⥅\":\"⥅\",\"⥴\":\"⥴\",\"↣\":\"↣\",\"↝\":\"↝\",\"⤚\":\"⤚\",\"∶\":\"∶\",\"❳\":\"❳\",\"}\":\"}\",\"]\":\"]\",\"⦌\":\"⦌\",\"⦎\":\"⦎\",\"⦐\":\"⦐\",\"ř\":\"ř\",\"ŗ\":\"ŗ\",\"р\":\"р\",\"⤷\":\"⤷\",\"⥩\":\"⥩\",\"↳\":\"↳\",\"▭\":\"▭\",\"⥽\":\"⥽\",\"𝔯\":\"𝔯\",\"⥬\":\"⥬\",\"ρ\":\"ρ\",\"ϱ\":\"ϱ\",\"⇉\":\"⇉\",\"⋌\":\"⋌\",\"˚\":\"˚\",\"‏\":\"‏\",\"⎱\":\"⎱\",\"⫮\":\"⫮\",\"⟭\":\"⟭\",\"⇾\":\"⇾\",\"⦆\":\"⦆\",\"𝕣\":\"𝕣\",\"⨮\":\"⨮\",\"⨵\":\"⨵\",\")\":\")\",\"⦔\":\"⦔\",\"⨒\":\"⨒\",\"›\":\"›\",\"𝓇\":\"𝓇\",\"⋊\":\"⋊\",\"▹\":\"▹\",\"⧎\":\"⧎\",\"⥨\":\"⥨\",\"℞\":\"℞\",\"ś\":\"ś\",\"⪴\":\"⪴\",\"⪸\":\"⪸\",\"š\":\"š\",\"ş\":\"ş\",\"ŝ\":\"ŝ\",\"⪶\":\"⪶\",\"⪺\":\"⪺\",\"⋩\":\"⋩\",\"⨓\":\"⨓\",\"с\":\"с\",\"⋅\":\"⋅\",\"⩦\":\"⩦\",\"⇘\":\"⇘\",\"§\":\"§\",\";\":\";\",\"⤩\":\"⤩\",\"✶\":\"✶\",\"𝔰\":\"𝔰\",\"♯\":\"♯\",\"щ\":\"щ\",\"ш\":\"ш\",\"­\":\"­\",\"σ\":\"σ\",\"ς\":\"ς\",\"⩪\":\"⩪\",\"⪞\":\"⪞\",\"⪠\":\"⪠\",\"⪝\":\"⪝\",\"⪟\":\"⪟\",\"≆\":\"≆\",\"⨤\":\"⨤\",\"⥲\":\"⥲\",\"⨳\":\"⨳\",\"⧤\":\"⧤\",\"⌣\":\"⌣\",\"⪪\":\"⪪\",\"⪬\":\"⪬\",\"⪬︀\":\"⪬︀\",\"ь\":\"ь\",\"/\":\"/\",\"⧄\":\"⧄\",\"⌿\":\"⌿\",\"𝕤\":\"𝕤\",\"♠\":\"♠\",\"⊓︀\":\"⊓︀\",\"⊔︀\":\"⊔︀\",\"𝓈\":\"𝓈\",\"☆\":\"☆\",\"⊂\":\"⊂\",\"⫅\":\"⫅\",\"⪽\":\"⪽\",\"⫃\":\"⫃\",\"⫁\":\"⫁\",\"⫋\":\"⫋\",\"⊊\":\"⊊\",\"⪿\":\"⪿\",\"⥹\":\"⥹\",\"⫇\":\"⫇\",\"⫕\":\"⫕\",\"⫓\":\"⫓\",\"♪\":\"♪\",\"¹\":\"¹\",\"²\":\"²\",\"³\":\"³\",\"⫆\":\"⫆\",\"⪾\":\"⪾\",\"⫘\":\"⫘\",\"⫄\":\"⫄\",\"⟉\":\"⟉\",\"⫗\":\"⫗\",\"⥻\":\"⥻\",\"⫂\":\"⫂\",\"⫌\":\"⫌\",\"⊋\":\"⊋\",\"⫀\":\"⫀\",\"⫈\":\"⫈\",\"⫔\":\"⫔\",\"⫖\":\"⫖\",\"⇙\":\"⇙\",\"⤪\":\"⤪\",\"ß\":\"ß\",\"⌖\":\"⌖\",\"τ\":\"τ\",\"ť\":\"ť\",\"ţ\":\"ţ\",\"т\":\"т\",\"⌕\":\"⌕\",\"𝔱\":\"𝔱\",\"θ\":\"θ\",\"ϑ\":\"ϑ\",\"þ\":\"þ\",\"×\":\"×\",\"⨱\":\"⨱\",\"⨰\":\"⨰\",\"⌶\":\"⌶\",\"⫱\":\"⫱\",\"𝕥\":\"𝕥\",\"⫚\":\"⫚\",\"‴\":\"‴\",\"▵\":\"▵\",\"≜\":\"≜\",\"◬\":\"◬\",\"⨺\":\"⨺\",\"⨹\":\"⨹\",\"⧍\":\"⧍\",\"⨻\":\"⨻\",\"⏢\":\"⏢\",\"𝓉\":\"𝓉\",\"ц\":\"ц\",\"ћ\":\"ћ\",\"ŧ\":\"ŧ\",\"⥣\":\"⥣\",\"ú\":\"ú\",\"ў\":\"ў\",\"ŭ\":\"ŭ\",\"û\":\"û\",\"у\":\"у\",\"ű\":\"ű\",\"⥾\":\"⥾\",\"𝔲\":\"𝔲\",\"ù\":\"ù\",\"▀\":\"▀\",\"⌜\":\"⌜\",\"⌏\":\"⌏\",\"◸\":\"◸\",\"ū\":\"ū\",\"ų\":\"ų\",\"𝕦\":\"𝕦\",\"υ\":\"υ\",\"⇈\":\"⇈\",\"⌝\":\"⌝\",\"⌎\":\"⌎\",\"ů\":\"ů\",\"◹\":\"◹\",\"𝓊\":\"𝓊\",\"⋰\":\"⋰\",\"ũ\":\"ũ\",\"ü\":\"ü\",\"⦧\":\"⦧\",\"⫨\":\"⫨\",\"⫩\":\"⫩\",\"⦜\":\"⦜\",\"⊊︀\":\"⊊︀\",\"⫋︀\":\"⫋︀\",\"⊋︀\":\"⊋︀\",\"⫌︀\":\"⫌︀\",\"в\":\"в\",\"⊻\":\"⊻\",\"≚\":\"≚\",\"⋮\":\"⋮\",\"𝔳\":\"𝔳\",\"𝕧\":\"𝕧\",\"𝓋\":\"𝓋\",\"⦚\":\"⦚\",\"ŵ\":\"ŵ\",\"⩟\":\"⩟\",\"≙\":\"≙\",\"℘\":\"℘\",\"𝔴\":\"𝔴\",\"𝕨\":\"𝕨\",\"𝓌\":\"𝓌\",\"𝔵\":\"𝔵\",\"ξ\":\"ξ\",\"⋻\":\"⋻\",\"𝕩\":\"𝕩\",\"𝓍\":\"𝓍\",\"ý\":\"ý\",\"я\":\"я\",\"ŷ\":\"ŷ\",\"ы\":\"ы\",\"¥\":\"¥\",\"𝔶\":\"𝔶\",\"ї\":\"ї\",\"𝕪\":\"𝕪\",\"𝓎\":\"𝓎\",\"ю\":\"ю\",\"ÿ\":\"ÿ\",\"ź\":\"ź\",\"ž\":\"ž\",\"з\":\"з\",\"ż\":\"ż\",\"ζ\":\"ζ\",\"𝔷\":\"𝔷\",\"ж\":\"ж\",\"⇝\":\"⇝\",\"𝕫\":\"𝕫\",\"𝓏\":\"𝓏\",\"‍\":\"‍\",\"‌\":\"‌\"}}};\n//# sourceMappingURL=./named-references.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.numericUnicodeMap={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};\n//# sourceMappingURL=./numeric-unicode-map.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.fromCodePoint=String.fromCodePoint||function(astralCodePoint){return String.fromCharCode(Math.floor((astralCodePoint-65536)/1024)+55296,(astralCodePoint-65536)%1024+56320)};exports.getCodePoint=String.prototype.codePointAt?function(input,position){return input.codePointAt(position)}:function(input,position){return(input.charCodeAt(position)-55296)*1024+input.charCodeAt(position+1)-56320+65536};exports.highSurrogateFrom=55296;exports.highSurrogateTo=56319;\n//# sourceMappingURL=./surrogate-pairs.js.map","import React, { ReactElement } from 'react';\nimport { RenderHTMLProps } from './shared-types';\nimport RenderHTMLDebug from './RenderHTMLDebug';\nimport TRenderEngineProvider from './TRenderEngineProvider';\nimport RenderHTMLConfigProvider from './RenderHTMLConfigProvider';\nimport RenderHTMLSource from './RenderHTMLSource';\n\n/**\n * Render HTML text in native views!\n *\n * @remarks If your application uses many instances of this component, you\n * should share the render engine across those instances via the\n * {@link TRenderEngineProvider} and {@link RenderHTMLConfigProvider}\n * components, and render the HTML with {@link RenderHTMLSource} instead. That\n * should significantly increase performance.\n *\n * @warning It should never be a child of a React Native `Text` element, as the\n * layout will break.\n *\n * @public\n */\nexport default function RenderHTML(props: RenderHTMLProps): ReactElement {\n const {\n source,\n onHTMLLoaded,\n onTTreeChange,\n onDocumentMetadataLoaded,\n contentWidth,\n ...otherProps\n } = props;\n return (\n \n \n \n {React.createElement(RenderHTMLSource, {\n source,\n onHTMLLoaded,\n onTTreeChange,\n onDocumentMetadataLoaded,\n contentWidth\n })}\n \n \n \n );\n}\n","import React, { Fragment, PropsWithChildren } from 'react';\nimport debugMessage from './debugMessages';\nimport { RenderHTMLProps } from './shared-types';\n\nconst RenderHTMLDebug = function RenderHTMLDebug(\n props: PropsWithChildren\n) {\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n if (typeof props.contentWidth !== 'number') {\n console.warn(debugMessage.contentWidth);\n }\n if ('html' in props) {\n console.warn(debugMessage.outdatedHtmlProp);\n }\n if ('uri' in props) {\n console.warn(debugMessage.outdatedUriProp);\n }\n if ('listsPrefixesRenderers' in props) {\n console.warn(debugMessage.outdatedListPrefixRenderersProps);\n }\n if ('imagesInitialDimensions' in props) {\n console.warn(debugMessage.outdatedImagesDimensions);\n }\n if ('onLinkPress' in props) {\n console.warn(debugMessage.outdatedOnLinkPressProp);\n }\n if ('enableExperimentalPercentWidth' in props) {\n console.warn(debugMessage.outdatedEnableExperimentalPercentWidth);\n }\n if ('ignoreNodesFunction' in props) {\n console.warn(debugMessage.outdatedIgnoreNodesFunction);\n }\n if ('alterNode' in props) {\n console.warn(debugMessage.outdatedAlterNode);\n }\n if ('alterChildren' in props) {\n console.warn(debugMessage.outdatedAlterChildren);\n }\n if ('alterData' in props) {\n console.warn(debugMessage.outdatedAlterData);\n }\n if ('computeImagesMaxWidth' in props) {\n console.warn(debugMessage.outdatedComputeImagesMaxWidth);\n }\n if ('triggerTREInvalidationPropNames' in props) {\n console.warn(debugMessage.outdatedTriggerTREInvalidation);\n }\n if (Array.isArray(props.allowedStyles)) {\n props.allowedStyles.forEach((s) => {\n if (s.indexOf('-') > -1) {\n console.warn(\n `Style property '${s}' of 'allowedStyles' prop array must be camelCased.`\n );\n }\n });\n }\n if (Array.isArray(props.ignoredStyles)) {\n props.ignoredStyles.forEach((s) => {\n if (s.indexOf('-') > -1) {\n console.warn(\n `Style property '${s}' of 'ignoredStyles' prop array must be camelCased.`\n );\n }\n });\n }\n }\n return {props.children};\n};\n\nexport default RenderHTMLDebug;\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","import { useMemo } from 'react';\nimport { TRenderEngineConfig } from '../shared-types';\nimport buildTREFromConfig from '../helpers/buildTREFromConfig';\nimport useProfiler from './useProfiler';\n\n/**\n * @internal\n */\nexport default function useTRenderEngine({\n allowedStyles,\n baseStyle,\n classesStyles,\n customHTMLElementModels,\n dangerouslyDisableHoisting,\n dangerouslyDisableWhitespaceCollapsing,\n domVisitors,\n emSize,\n enableCSSInlineProcessing,\n enableUserAgentStyles,\n fallbackFonts,\n htmlParserOptions,\n idsStyles,\n ignoreDomNode,\n ignoredDomTags,\n ignoredStyles,\n selectDomRoot,\n setMarkersForTNode,\n systemFonts,\n tagsStyles\n}: TRenderEngineConfig) {\n const profile = useProfiler({ name: 'TRenderEngineProvider' });\n return useMemo(() => {\n typeof __DEV__ === 'boolean' && __DEV__ && profile();\n return buildTREFromConfig({\n allowedStyles,\n baseStyle,\n classesStyles,\n customHTMLElementModels,\n dangerouslyDisableHoisting,\n dangerouslyDisableWhitespaceCollapsing,\n domVisitors,\n emSize,\n enableCSSInlineProcessing,\n enableUserAgentStyles,\n fallbackFonts,\n htmlParserOptions,\n idsStyles,\n ignoreDomNode,\n ignoredDomTags,\n ignoredStyles,\n selectDomRoot,\n setMarkersForTNode,\n systemFonts,\n tagsStyles\n });\n }, [\n profile,\n allowedStyles,\n baseStyle,\n classesStyles,\n customHTMLElementModels,\n dangerouslyDisableHoisting,\n dangerouslyDisableWhitespaceCollapsing,\n domVisitors,\n emSize,\n enableCSSInlineProcessing,\n enableUserAgentStyles,\n fallbackFonts,\n htmlParserOptions,\n idsStyles,\n ignoreDomNode,\n ignoredDomTags,\n ignoredStyles,\n selectDomRoot,\n setMarkersForTNode,\n systemFonts,\n tagsStyles\n ]);\n}\n","import { collapse } from './flow/collapse';\nimport { hoist } from './flow/hoist';\nimport { translateDocument } from './flow/translate';\nimport { ParserOptions as HTMLParserOptions } from 'htmlparser2';\nimport omit from 'ramda/src/omit';\nimport {\n CSSProcessorConfig,\n defaultCSSProcessorConfig\n} from '@native-html/css-processor';\nimport parseDocument from './dom/parseDocument';\nimport { StylesConfig } from './styles/types';\nimport { TStylesMerger } from './styles/TStylesMerger';\nimport { defaultStylesConfig } from './styles/defaults';\nimport { TStyles } from './styles/TStyles';\nimport HTMLModelRegistry from './model/HTMLModelRegistry';\nimport { HTMLModelRecord, TagName } from './model/model-types';\nimport { DefaultHTMLElementModelsStatic } from './model/defaultHTMLElementModels';\nimport { DataFlowParams } from './flow/types';\nimport {\n Document,\n Element,\n Node,\n NodeWithChildren,\n isDomElement\n} from './dom/dom-utils';\nimport { SetMarkersForTNode, TDocument } from './tree/tree-types';\nimport { DomHandlerOptions, DomVisitorCallbacks } from './dom/DomHandler';\n\nexport interface TRenderEngineOptions {\n /**\n * Customization for CSS inline processing.\n */\n readonly cssProcessorConfig?: Partial;\n /**\n * Options for htmlparser2 library parser.\n */\n readonly htmlParserOptions?: Readonly;\n /**\n * Various configuration for styling.\n */\n readonly stylesConfig?: StylesConfig;\n /**\n * Customize supported tags in the engine.\n *\n * @remarks If you need to add new tags, always use lowercase names.\n */\n readonly customizeHTMLModels?: (\n defaultHTMLElementModels: DefaultHTMLElementModelsStatic\n ) => HTMLModelRecord;\n /**\n * Remove line breaks around special east-asian characters such as defined here:\n * https://www.w3.org/TR/2020/WD-css-text-3-20200429/#line-break-transform\n *\n * @defaultValue false\n */\n readonly removeLineBreaksAroundEastAsianDiscardSet?: boolean;\n /**\n * A list of tags which should not be included in the DOM.\n */\n readonly ignoredDomTags?: string[];\n\n /**\n * An object which callbacks will be invoked when a DOM element or text node\n * has been parsed and its children attached.\n *\n * @remark Each callback is applied during parsing, thus with very little\n * overhead. However, it means that one node next siblings won't be\n * available. If you need some siblings logic, apply this logic to the\n * children of this node.\n */\n readonly domVisitors?: DomVisitorCallbacks;\n\n /**\n * Ignore specific DOM nodes.\n *\n * **Warning**: when this function is invoked, the node has not yet been\n * attached to its parent or siblings. Use the second argument (`parent`)\n * if you need to perform logic based on parent.\n *\n * @remarks The function is applied during parsing, thus with very little\n * overhead. However, it means that one node next siblings won't be\n * available.\n *\n * @returns `true` if this node should not be included in the DOM, anything\n * else otherwise.\n */\n readonly ignoreDomNode?: (\n node: Node,\n parent: NodeWithChildren\n ) => boolean | void | unknown;\n\n /**\n * Select the DOM root before TTree generation. For example, you could\n * iterate over children until you reach an article element and return this\n * element.\n *\n * @remarks Applied after DOM parsing, before normalization and TTree\n * construction. Before normalization implies that a body will be added in\n * the tree **after** selecting root.\n */\n readonly selectDomRoot?: (node: NodeWithChildren) => any;\n\n /**\n * Customize markers logic by extracting markers from TNode properties such\n * as classes, ids, attributes, tagName ...\n *\n * @remarks If you are using JavaScript, you can use module augmentation and\n * declaration merging to add properties to the {@link Markers} shape.\n */\n readonly setMarkersForTNode?: SetMarkersForTNode;\n\n /**\n * Disable hoisting. Note that your layout might break!\n */\n readonly dangerouslyDisableHoisting?: boolean;\n /**\n * Disable whitespace collapsing. Especially useful if your html is\n * being pre-processed server-side with a minifier.\n */\n readonly dangerouslyDisableWhitespaceCollapsing?: boolean;\n}\n\nfunction createStylesConfig(\n options?: TRenderEngineOptions\n): Required {\n const enableUserAgentStyles =\n typeof options?.stylesConfig?.enableUserAgentStyles === 'boolean'\n ? options.stylesConfig.enableUserAgentStyles\n : defaultStylesConfig.enableUserAgentStyles;\n const baseStyle = {\n ...(enableUserAgentStyles\n ? defaultStylesConfig.baseStyle\n : omit(['fontSize'], defaultStylesConfig.baseStyle)),\n ...options?.stylesConfig?.baseStyle\n };\n return {\n ...defaultStylesConfig,\n ...options?.stylesConfig,\n baseStyle\n };\n}\n\n/**\n * The Transient Render Engine.\n *\n * @public\n */\nexport class TRenderEngine {\n private htmlParserOptions: Readonly;\n private dataFlowParams: DataFlowParams;\n private hoistingEnabled: boolean;\n private whitespaceCollapsingEnabled: boolean;\n private selectDomRoot: TRenderEngineOptions['selectDomRoot'];\n constructor(options?: TRenderEngineOptions) {\n const stylesConfig = createStylesConfig(options);\n this.hoistingEnabled = !(options?.dangerouslyDisableHoisting ?? false);\n this.whitespaceCollapsingEnabled = !(\n options?.dangerouslyDisableWhitespaceCollapsing ?? false\n );\n const modelRegistry = new HTMLModelRegistry(options?.customizeHTMLModels);\n const userSelectedFontSize =\n options?.cssProcessorConfig?.rootFontSize ||\n stylesConfig.baseStyle?.fontSize;\n // TODO log a warning when type is string\n const stylesMerger = new TStylesMerger(stylesConfig, modelRegistry, {\n ...defaultCSSProcessorConfig,\n ...options?.cssProcessorConfig,\n rootFontSize:\n typeof userSelectedFontSize === 'number' ? userSelectedFontSize : 14\n });\n this.htmlParserOptions = {\n decodeEntities: true,\n lowerCaseTags: true,\n ignoredTags: options?.ignoredDomTags,\n ignoreNode: options?.ignoreDomNode,\n visitors: options?.domVisitors,\n ...options?.htmlParserOptions\n };\n this.dataFlowParams = {\n stylesMerger,\n modelRegistry,\n setMarkersForTNode: options?.setMarkersForTNode,\n baseStyles: new TStyles(\n stylesMerger.compileStyleDeclaration(stylesConfig.baseStyle)\n ),\n removeLineBreaksAroundEastAsianDiscardSet:\n options?.removeLineBreaksAroundEastAsianDiscardSet || false\n };\n this.selectDomRoot = options?.selectDomRoot;\n }\n\n private normalizeDocument(document: Document) {\n let body: Element | undefined;\n let head: Element | undefined;\n for (const child of document.children) {\n if (body && head) {\n break;\n }\n if (isDomElement(child) && child.tagName === 'body') {\n body = child;\n }\n if (isDomElement(child) && child.tagName === 'head') {\n head = child;\n }\n }\n //@ts-ignore\n if (!body && !head) {\n body = new Element('body', {});\n body.childNodes = document.children;\n document.children.forEach((c) => {\n c.parent = body as Element;\n c.parentNode = body as Element;\n });\n body.parent = document;\n body.parentNode = document;\n document.childNodes = [body];\n }\n return document;\n }\n\n parseDocument(html: string) {\n let document = parseDocument(html, this.htmlParserOptions);\n if (this.selectDomRoot) {\n const selected = this.selectDomRoot(document) as Document;\n if (selected && selected !== document) {\n document.childNodes = [selected];\n selected.parent = document;\n }\n }\n for (const child of document.children) {\n if (isDomElement(child) && child.tagName === 'html') {\n document = child;\n break;\n }\n }\n return this.normalizeDocument(document);\n }\n\n buildTTreeFromDoc(document: Document | Element): TDocument {\n const tdoc = translateDocument(document, this.dataFlowParams);\n const hoistedTDoc = this.hoistingEnabled ? hoist(tdoc) : tdoc;\n const collapsedTDoc = this.whitespaceCollapsingEnabled\n ? collapse(hoistedTDoc)\n : tdoc;\n return collapsedTDoc as unknown as TDocument;\n }\n\n buildTTree(html: string): TDocument {\n return this.buildTTreeFromDoc(this.parseDocument(html));\n }\n\n getHTMLElementsModels() {\n return this.dataFlowParams.modelRegistry.modelRecords;\n }\n}\n","import { TNodeImpl } from '../tree/tree-types';\n\nexport function collapse(root: TNodeImpl): TNodeImpl {\n root.collapse();\n root.trimLeft();\n root.trimRight();\n return root;\n}\n","import TBlockCtor, { TBlockImpl } from '../tree/TBlockCtor';\nimport { TNodeImpl } from '../tree/tree-types';\nimport { TPhrasingCtor } from '../tree/TPhrasingCtor';\nimport { TTextCtor } from '../tree/TTextCtor';\n\n/**\n * Wrap text nodes around TPhrasing nodes.\n * @param tnode The parent node of all elements to group.\n */\nfunction groupText(tnode: TBlockImpl): TNodeImpl {\n let newChildren: TNodeImpl[] = [];\n const wrapperInit = {\n elementModel: null,\n context: tnode.init.context,\n // We need to merge styles here to make sure\n // some React Native styles working only for the uppermost Text element\n // such as \"textAlign\" are preserved.\n parentStyles: tnode.styles,\n parent: null\n };\n let wrapper = new TPhrasingCtor(wrapperInit);\n let wrapperChildren: TNodeImpl[] = [];\n for (const child of tnode.children) {\n if (child instanceof TTextCtor || child instanceof TPhrasingCtor) {\n wrapperChildren.push(child);\n } else {\n if (wrapperChildren.length) {\n newChildren.push(wrapper);\n wrapper.bindChildren(wrapperChildren);\n wrapper = new TPhrasingCtor(wrapperInit);\n wrapperChildren = [];\n }\n newChildren.push(child);\n }\n }\n if (wrapperChildren.length) {\n wrapper.bindChildren(wrapperChildren);\n newChildren.push(wrapper);\n }\n tnode.bindChildren(newChildren);\n return tnode;\n}\n\nfunction hoistNode(tnode: TNodeImpl): TNodeImpl {\n if (tnode instanceof TTextCtor) {\n return tnode;\n }\n tnode.bindChildren(tnode.children.map(hoistNode));\n if (tnode instanceof TPhrasingCtor) {\n for (const cnode of tnode.children) {\n if (cnode instanceof TBlockCtor) {\n const newNode = new TBlockCtor(tnode.cloneInitParams());\n newNode.bindChildren(tnode.children);\n const output = groupText(newNode);\n return output;\n }\n }\n } else if (tnode instanceof TBlockCtor) {\n if (tnode.children.length > 0) {\n const output = groupText(tnode);\n return output;\n }\n }\n return tnode;\n}\n\nexport function hoist(tree: TNodeImpl): TNodeImpl {\n return hoistNode(tree);\n}\n","import { CSSProcessorConfig } from './config';\nimport { CSSInlineParseRun } from './CSSInlineParseRun';\nimport { CSSNativeParseRun } from './CSSNativeParseRun';\nimport { CSSProcessedProps } from './CSSProcessedProps';\nimport { CSSPropertiesValidationRegistry } from './CSSPropertiesValidationRegistry';\nimport { defaultCSSProcessorConfig } from './default';\nimport {\n ExtraNativeShortStyle,\n ExtraNativeTextStyle,\n ExtraNativeUntranslatedLongStyles,\n ExtraNativeViewStyle\n} from './native-types';\nimport {\n WebBlockRetainProperties,\n WebTextFlowProperties\n} from './processor-types';\n\n// https://www.w3.org/TR/CSS22/\n// https://www.w3.org/TR/css3-cascade/\n// https://www.w3.org/TR/css-cascade-4/\n// https://www.w3.org/TR/css-text-3/\n// https://www.w3.org/TR/css3-values/\n// https://www.w3.org/TR/css-values-4/\n\n/**\n * All those styles that result from processing inline styles.\n */\nexport type CSSFlattenProcessedTypes =\n CSSProcessedProps['native']['text']['flow'] &\n CSSProcessedProps['native']['block']['flow'] &\n CSSProcessedProps['native']['text']['retain'] &\n CSSProcessedProps['native']['block']['retain'];\n\n/**\n * These properties can be set to any of the supoprted CSS sizes, including em,\n * rem units and special values such as large, larger for `fontSize`, thin,\n * medium for `borderWidth`, before passed to {@link CSSProcessor.compileStyleDeclaration}.\n */\nexport type MixedSizeCSSPropertiesKeys =\n | 'fontSize'\n | 'borderWidth'\n | 'letterSpacing'\n | 'bottom'\n | 'left'\n | 'top'\n | 'right'\n | 'width'\n | 'height'\n | 'flexBasis'\n | 'borderRadius'\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderWidth'\n | 'borderBottomWidth'\n | 'borderLeftWidth'\n | 'borderRightWidth'\n | 'marginBottom'\n | 'marginLeft'\n | 'marginRight'\n | 'marginTop'\n | 'margin'\n | 'marginHorizontal'\n | 'marginVertical'\n | 'maxWidth'\n | 'maxHeight'\n | 'minWidth'\n | 'minHeight'\n | 'padding'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingTop'\n | 'paddingHorizontal'\n | 'paddingVertical';\n\n/**\n * A Style object that can contain mixins of a subset of ViewStyle, TextStyle,\n * and special style entries such as \"whiteSpace\", \"listStyleType\".\n *\n * @remarks Also note that special lengths,\n * such as \"em\", \"rem\" units, and special values, such as \"%\" for fontSize, and\n * keyword values ('larger', 'smaller' for fontSize, 'thick', 'thin', 'medium'\n * for border*Width) will be handled as per CSS specifications on units.\n * Another special use case is fontFamily, which can be a list of font names as\n * per the CSS standard. The translated font will be selected with\n * {@link CSSProcessorConfig.isFontSupported}.\n */\nexport type MixedStyleDeclaration = Omit<\n CSSFlattenProcessedTypes,\n MixedSizeCSSPropertiesKeys\n> &\n WebTextFlowProperties &\n WebBlockRetainProperties &\n ExtraNativeTextStyle &\n ExtraNativeViewStyle &\n ExtraNativeShortStyle &\n ExtraNativeUntranslatedLongStyles &\n {\n [k in MixedSizeCSSPropertiesKeys]?: number | string;\n };\n\nexport class CSSProcessor {\n public readonly registry: CSSPropertiesValidationRegistry;\n constructor(userConfig?: Partial) {\n const config = {\n ...defaultCSSProcessorConfig,\n ...userConfig\n };\n this.registry = new CSSPropertiesValidationRegistry(config);\n }\n\n /**\n *\n * Incoming style declaration:\n * - For native styles: any RN compatible style declaration + special units\n * (font-size: medium) + relative units (smaller, larger, em, rem and perhaps vw)\n *\n * @param declaration\n */\n compileStyleDeclaration(\n declaration: MixedStyleDeclaration\n ): CSSProcessedProps {\n const parseRun = new CSSNativeParseRun(declaration, this.registry);\n return parseRun.exec();\n }\n\n compileInlineCSS(inlineCSS: string): CSSProcessedProps {\n const parseRun = new CSSInlineParseRun(inlineCSS, this.registry);\n return parseRun.exec();\n }\n}\n","import { getPropertyName } from 'css-to-react-native';\nimport { CSSParseRun } from './CSSParseRun';\nimport { MixedStyleDeclaration } from './CSSProcessor';\nimport { CSSPropertiesValidationRegistry } from './CSSPropertiesValidationRegistry';\nimport { ValidatorsType } from './makepropertiesValidators';\nimport { CSSProperties } from './processor-types';\nimport { ShortMergeRequest } from './ShortMergeRequest';\nimport { LongCSSPropertyValidator } from './validators/LongCSSPropertyValidator';\n\ntype CSSRawPropertiesList = [string, any][];\n\nexport class CSSInlineParseRun extends CSSParseRun {\n private rules: CSSRawPropertiesList;\n\n constructor(inlineCSS: string, registry: CSSPropertiesValidationRegistry) {\n super(registry);\n this.rules = this.parseInlineCSS(inlineCSS);\n this.normalizeProp = this.normalizeProp.bind(this);\n this.reduceProps = this.reduceProps.bind(this);\n }\n\n private parseInlineCSS(inlineCSS: string): CSSRawPropertiesList {\n return inlineCSS\n .split(';')\n .map((prop) => prop.split(':'))\n .reduce((acc, prop) => {\n if (prop.length === 2) {\n return [...acc, [prop[0].trim(), prop[1].trim()]];\n }\n return acc;\n }, []);\n }\n\n normalizeProp(\n rule: CSSRawPropertiesList[number],\n strict = false\n ): null | [keyof ValidatorsType, any] {\n const rawName = rule[0];\n const rawValue = rule[1];\n const camelCaseName = getPropertyName(rawName);\n if (!this.validationMap.shouldRegisterInlineProperty(camelCaseName)) {\n return null;\n }\n const validator = this.validationMap.getValidatorForProperty(camelCaseName);\n const normalizedValue = validator.normalizeInlineCSSValue(rawValue);\n if (normalizedValue === null) {\n if (strict) {\n throw new TypeError();\n }\n return null;\n }\n return [camelCaseName, normalizedValue];\n }\n\n reduceProps(\n reg: CSSProperties,\n rule: null | [keyof ValidatorsType, Exclude]\n ): CSSProperties {\n if (!rule) {\n return reg;\n }\n const [camelCaseName, normalizedValue] = rule;\n if (normalizedValue instanceof ShortMergeRequest) {\n try {\n return normalizedValue\n .map((r) => this.normalizeProp(r, true))\n .reduce(this.reduceProps, reg);\n } catch (e) {\n return reg;\n }\n }\n return {\n ...reg,\n [camelCaseName]: normalizedValue\n };\n }\n\n fillProcessedProps() {\n const rawTransformed = this.rules\n .map((r) => this.normalizeProp(r))\n .reduce(this.reduceProps, {});\n (Object.keys(rawTransformed) as Array).forEach(\n (camelCaseName) => {\n const value = rawTransformed[camelCaseName];\n const validator = this.validationMap.getValidatorForProperty(\n camelCaseName\n ) as LongCSSPropertyValidator;\n const normalizedValue = validator.normalizeInlineCSSValue(value);\n this.processedProps.withProperty(\n camelCaseName as keyof MixedStyleDeclaration,\n normalizedValue,\n validator\n );\n }\n );\n }\n}\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\nvar uLower = \"u\".charCodeAt(0);\nvar uUpper = \"U\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar isUnicodeRange = /^[a-f0-9?-]+$/i;\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next,\n quote,\n prev,\n token,\n escape,\n escapePos,\n whitespacePos,\n parenthesesOpenPos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n prev.sourceEndIndex += token.length;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash &&\n value.charCodeAt(next + 1) !== star &&\n (!parent ||\n (parent && parent.type === \"function\" && parent.value !== \"calc\")))\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n token.sourceEndIndex = token.unclosed ? next : next + 1;\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n next = value.indexOf(\"*/\", pos);\n\n token = {\n type: \"comment\",\n sourceIndex: pos,\n sourceEndIndex: next + 2\n };\n\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n token.sourceEndIndex = next;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Operation within calc\n } else if (\n (code === slash || code === star) &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\"\n ) {\n token = value[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token\n });\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: whitespacePos + 1,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n sourceEndIndex: next,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n token.sourceEndIndex = next;\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n token.sourceEndIndex = token.unclosed ? next : pos;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n token.sourceEndIndex = pos + 1;\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n parent.sourceEndIndex += after.length;\n after = \"\";\n balanced -= 1;\n stack[stack.length - 1].sourceEndIndex = pos;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === star &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === slash &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else if (\n (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&\n plus === token.charCodeAt(1) &&\n isUnicodeRange.test(token.slice(2))\n ) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n stack[pos].sourceEndIndex = value.length;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes, custom);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\n// Check if three code points would start a number\n// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number\nfunction likeNumber(value) {\n var code = value.charCodeAt(0);\n var nextCode;\n\n if (code === plus || code === minus) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n var nextNextCode = value.charCodeAt(2);\n\n if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code === dot) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code >= 48 && code <= 57) {\n return true;\n }\n\n return false;\n}\n\n// Consume a number\n// https://www.w3.org/TR/css-syntax-3/#consume-number\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var code;\n var nextCode;\n var nextNextCode;\n\n if (length === 0 || !likeNumber(value)) {\n return false;\n }\n\n code = value.charCodeAt(pos);\n\n if (code === plus || code === minus) {\n pos++;\n }\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n\n if (code === dot && nextCode >= 48 && nextCode <= 57) {\n pos += 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n nextNextCode = value.charCodeAt(pos + 2);\n\n if (\n (code === exp || code === EXP) &&\n ((nextCode >= 48 && nextCode <= 57) ||\n ((nextCode === plus || nextCode === minus) &&\n nextNextCode >= 48 &&\n nextNextCode <= 57))\n ) {\n pos += nextCode === plus || nextCode === minus ? 3 : 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n return {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n };\n};\n","'use strict';\n\nmodule.exports = function (obj) {\n\tif (typeof obj === 'string') { return camelCase(obj); }\n\treturn walk(obj);\n};\n\nfunction walk(obj) {\n\tif (!obj || typeof obj !== 'object') { return obj; }\n\tif (isDate(obj) || isRegex(obj)) { return obj; }\n\tif (isArray(obj)) { return map(obj, walk); }\n\treturn reduce(objectKeys(obj), function (acc, key) {\n\t\tvar camel = camelCase(key);\n\t\tacc[camel] = walk(obj[key]);\n\t\treturn acc;\n\t}, {});\n}\n\nfunction camelCase(str) {\n\treturn str.replace(/[_.-](\\w|$)/g, function (_, x) {\n\t\treturn x.toUpperCase();\n\t});\n}\n\nvar isArray = Array.isArray || function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nvar isDate = function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar isRegex = function (obj) {\n\treturn Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar objectKeys = Object.keys || function (obj) {\n\tvar keys = [];\n\tfor (var key in obj) {\n\t\tif (has.call(obj, key)) { keys.push(key); }\n\t}\n\treturn keys;\n};\n\nfunction map(xs, f) {\n\tif (xs.map) { return xs.map(f); }\n\tvar res = [];\n\tfor (var i = 0; i < xs.length; i++) {\n\t\tres.push(f(xs[i], i));\n\t}\n\treturn res;\n}\n\nfunction reduce(xs, f, acc) {\n\tif (xs.reduce) { return xs.reduce(f, acc); }\n\tfor (var i = 0; i < xs.length; i++) {\n\t\tacc = f(acc, xs[i], i);\n\t}\n\treturn acc;\n}\n","'use strict'\n\nmodule.exports = require('./colors.json')\n","import { CSSParseRun } from './CSSParseRun';\nimport { MixedStyleDeclaration } from './CSSProcessor';\nimport { CSSPropertiesValidationRegistry } from './CSSPropertiesValidationRegistry';\nimport { lookupRecord } from './helpers';\nimport {\n ExtraNativeTextStyle,\n NativeDirectionalStyleKeys,\n ExtraNativeLongViewStyleKeys\n} from './native-types';\nimport { CSSPropertySpecs } from './processor-types';\nimport { ShortMergeRequest } from './ShortMergeRequest';\n\nconst nativeDirectionalStyleKeys: Record =\n {\n borderBottomEndRadius: 'block',\n borderBottomStartRadius: 'block',\n borderEndColor: 'block',\n borderEndWidth: 'block',\n borderStartColor: 'block',\n borderStartWidth: 'block',\n borderTopEndRadius: 'block',\n borderTopStartRadius: 'block',\n end: 'block',\n marginEnd: 'block',\n marginStart: 'block',\n paddingEnd: 'block',\n paddingStart: 'block',\n start: 'block'\n };\n\nconst extraLongViewStyles: Record = {\n elevation: 'block',\n overflow: 'block',\n overlayColor: 'block',\n resizeMode: 'block',\n rotation: 'block',\n scaleX: 'block',\n scaleY: 'block',\n shadowColor: 'block',\n shadowOffset: 'block',\n shadowOpacity: 'block',\n shadowRadius: 'block',\n testID: 'block',\n tintColor: 'block',\n transformMatrix: 'block',\n translateX: 'block',\n translateY: 'block'\n};\n\nconst extraTextStyles: Record = {\n includeFontPadding: 'text',\n textAlignVertical: 'text',\n textShadowColor: 'text',\n textShadowOffset: 'text',\n textShadowRadius: 'text',\n writingDirection: 'text'\n};\n\nconst extraStylesRegistry = {\n ...extraTextStyles,\n ...extraLongViewStyles\n};\n\nexport class CSSNativeParseRun extends CSSParseRun {\n private declaration: MixedStyleDeclaration;\n\n constructor(\n declaration: MixedStyleDeclaration,\n registry: CSSPropertiesValidationRegistry\n ) {\n super(registry);\n this.declaration = declaration;\n }\n\n private fillProp(\n key: K,\n value: any\n ): void {\n const validator = this.validationMap.getValidatorForProperty(key);\n if (validator) {\n const normalizedValue = validator.normalizeNativeValue(value);\n if (normalizedValue instanceof ShortMergeRequest) {\n normalizedValue.forEach(([innerKey, innerValue]) => {\n this.fillProp(innerKey as any, innerValue);\n });\n } else {\n // assume longhand merge\n this.processedProps.withProperty(\n key,\n normalizedValue,\n validator as CSSPropertySpecs\n );\n }\n } else if (lookupRecord(extraStylesRegistry, key)) {\n this.processedProps.withProperty(key, value, {\n compatCategory: 'native',\n displayCategory: extraStylesRegistry[key],\n propagationCategory: 'retain'\n });\n } else if (lookupRecord(nativeDirectionalStyleKeys, key)) {\n console.warn(\n `Native style property \"${key}\" is a directional style property. These are not yet supported.`\n );\n } else {\n console.warn(\n `Native style property \"${key}\" is not supported and has been ignored.`\n );\n }\n }\n\n protected fillProcessedProps(): void {\n const declaration = this.declaration;\n for (const key of Object.keys(declaration) as Array<\n keyof MixedStyleDeclaration\n >) {\n this.fillProp(key, this.declaration[key]);\n }\n }\n}\n","import { CSSProcessorConfig, CSSPropertyNameList } from './config';\nimport makepropertiesValidators, {\n ValidatorsType\n} from './makepropertiesValidators';\nimport { GenericCSSPropertyValidator } from './validators/GenericPropertyValidator';\n\nfunction makeRegistry(list: CSSPropertyNameList) {\n const registry = {} as any;\n list.forEach((prop) => {\n registry[prop] = true;\n });\n return registry;\n}\n\nexport class CSSPropertiesValidationRegistry {\n public readonly validators: Readonly;\n public readonly ignoredPropertiesRegistry: Partial>;\n public readonly allowedPropertiesRegistry: Partial<\n Record\n > | null;\n\n constructor(config: CSSProcessorConfig) {\n this.validators = makepropertiesValidators(config);\n this.ignoredPropertiesRegistry = makeRegistry(\n config.inlinePropertiesBlacklist\n );\n this.allowedPropertiesRegistry = config.inlinePropertiesWhitelist\n ? makeRegistry(config.inlinePropertiesWhitelist)\n : null;\n }\n\n private isInlinePropertyAllowed(name: string) {\n if (this.allowedPropertiesRegistry) {\n return !!this.allowedPropertiesRegistry[name];\n }\n return !this.ignoredPropertiesRegistry[name];\n }\n\n shouldRegisterInlineProperty(name: string): name is keyof ValidatorsType {\n return (\n this.isInlinePropertyAllowed(name) &&\n !!this.validators[name as keyof ValidatorsType]\n );\n }\n\n getValidatorForProperty(\n name: T\n ): T extends keyof ValidatorsType ? GenericCSSPropertyValidator : null {\n return (this.validators[name as keyof ValidatorsType] as any) || null;\n }\n}\n","import { CSSProcessorConfig } from './config';\nimport { LongFontFamilyPropertyValidator } from './validators/LongFontFamilyPropertyValidator';\nimport { LongFloatNumberCSSPropertyValidator } from './validators/LongFloatNumberCSSPropertyValidator';\nimport { LongBorderWidthCSSPropertyValidator } from './validators/LongBorderWidthCSSPropertyValidator';\nimport { LongFontSizeCSSValidator } from './validators/LongFontSizeCSSValidator';\nimport { LongSizeCSSPropertyValidator } from './validators/LongSizeCSSPropertyValidator';\nimport { LongAspectRatioPropertyValidator } from './validators/LongAspectRatioPropertyValidator';\nimport { LongEnumerationListCSSPropertyValidator } from './validators/LongEnumerationListCSSPropertyValidator';\nimport { LongBorderStyleCSSPropertyValidator } from './validators/LongBorderStyleCSSPropertyValidator';\nimport { LongEnumerationCSSPropertyValidator } from './validators/LongEnumerationCSSPropertyValidator';\nimport { LongColorCSSPropertyValidator } from './validators/LongColorCSSPropertyValidator';\nimport { ShortFontCSSValidator } from './validators/ShortFontCSSValidator';\nimport { ShortCSSToReactNativeValidator } from './validators/ShortCSSToReactNativeValidator';\nimport { ShortFlexCSSPropertyValidator } from './validators/ShortFlexCSSPropertyValidator';\nimport { LongCSSToReactNativeValidator } from './validators/LongCSSToReactNativeValidator';\nimport { ShortCardinalCSSpropertyValidator } from './validators/ShortCardinalCSSPropertyValidator';\nimport { ShortDualNativepropertyValidator } from './validators/ShortDualNativePropertyValidator';\nimport { LongForgivingCSSPropertyValidator } from './validators/LongForgivingCSSPropertyValidator';\nimport { LongNonPercentSizeCSSPropertyValidator } from './validators/LongNonPercentSizeCSSPropertyValidator';\n\nconst nativeTranslatableBlockFlowModel = {\n inheritable: true,\n native: true,\n translatable: true,\n display: 'block'\n} as const;\n\nconst nativeTranslatableBlockRetainModel = {\n inheritable: false,\n native: true,\n translatable: true,\n display: 'block'\n} as const;\n\nconst nativeUntranslatableBlockRetainModel = {\n inheritable: false,\n native: true,\n translatable: false,\n display: 'block'\n} as const;\n\nconst nativeTranslatableTextFlowModel = {\n inheritable: true,\n native: true,\n translatable: true,\n display: 'text'\n} as const;\n\nconst nativeTranslatableTextRetainModel = {\n inheritable: false,\n native: true,\n translatable: true,\n display: 'text'\n} as const;\n\nconst webTextFlowModel = {\n inheritable: true,\n native: false,\n translatable: false,\n display: 'text'\n} as const;\n\nconst webBlockRetainModel = {\n inheritable: false,\n native: false,\n translatable: false,\n display: 'block'\n} as const;\n\nexport type ValidatorsType = ReturnType;\n\nexport default function makepropertiesValidators(config: CSSProcessorConfig) {\n return {\n background: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'background'\n }),\n border: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'border'\n }),\n borderRadius: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'borderRadius'\n },\n {\n top: 'borderTopLeftRadius',\n right: 'borderTopRightRadius',\n bottom: 'borderBottomRightRadius',\n left: 'borderBottomLeftRadius'\n }\n ),\n borderColor: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'borderColor'\n },\n {\n top: 'borderTopColor',\n right: 'borderRightColor',\n bottom: 'borderBottomColor',\n left: 'borderLeftColor'\n }\n ),\n borderStyle: new LongBorderStyleCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'borderStyle'\n },\n ['solid', 'dotted', 'dashed']\n ),\n borderWidth: new ShortCardinalCSSpropertyValidator(\n {\n config,\n propertyName: 'borderWidth',\n model: nativeTranslatableBlockRetainModel\n },\n {\n top: 'borderTopWidth',\n right: 'borderRightWidth',\n bottom: 'borderBottomWidth',\n left: 'borderLeftWidth'\n }\n ),\n flex: new ShortFlexCSSPropertyValidator({\n config,\n propertyName: 'flex',\n model: nativeTranslatableBlockRetainModel\n }),\n flexFlow: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'flexFlow'\n }),\n font: new ShortFontCSSValidator({\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'font'\n }),\n margin: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'margin'\n },\n {\n top: 'marginTop',\n right: 'marginRight',\n bottom: 'marginBottom',\n left: 'marginLeft'\n }\n ),\n objectFit: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: webBlockRetainModel,\n propertyName: 'objectFit'\n },\n ['fill', 'contain', 'cover', 'none', 'scale-down']\n ),\n padding: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'padding'\n },\n {\n top: 'paddingTop',\n right: 'paddingRight',\n bottom: 'paddingBottom',\n left: 'paddingLeft'\n }\n ),\n marginHorizontal: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'marginHorizontal'\n },\n ['marginLeft', 'marginRight']\n ),\n marginVertical: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'marginVertical'\n },\n ['marginTop', 'marginBottom']\n ),\n paddingHorizontal: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'paddingHorizontal'\n },\n ['paddingLeft', 'paddingRight']\n ),\n paddingVertical: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'paddingVertical'\n },\n ['paddingTop', 'paddingBottom']\n ),\n textDecoration: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableTextRetainModel,\n propertyName: 'textDecoration'\n }),\n textDecorationColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'textDecorationColor',\n model: nativeTranslatableTextRetainModel\n }),\n textDecorationLine: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextRetainModel,\n propertyName: 'textDecorationLine'\n },\n ['none', 'underline', 'line-through', 'underline line-through'] // 'overline' not supported by RN\n ),\n textDecorationStyle: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextRetainModel,\n propertyName: 'textDecorationStyle'\n },\n ['solid', 'double', 'dotted', 'dashed'] // 'wavy' unsupported\n ),\n color: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'color',\n model: nativeTranslatableTextFlowModel\n }),\n fontFamily: new LongFontFamilyPropertyValidator({\n config,\n propertyName: 'fontFamily',\n model: nativeTranslatableTextFlowModel\n }),\n fontSize: new LongFontSizeCSSValidator({\n config,\n propertyName: 'fontSize',\n model: nativeTranslatableTextFlowModel\n }),\n fontStyle: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'fontStyle'\n },\n ['normal', 'italic'] // 'oblique' not supported\n ),\n fontVariant: new LongEnumerationListCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'fontVariant'\n },\n [\n 'small-caps',\n 'oldstyle-nums',\n 'lining-nums',\n 'tabular-nums',\n 'proportional-nums'\n ]\n ),\n fontWeight: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'fontWeight'\n },\n [\n 'normal',\n 'bold',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900'\n ]\n ),\n letterSpacing: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'letterSpacing',\n model: nativeTranslatableTextFlowModel\n }),\n // TODO handle unitless heights\n lineHeight: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'lineHeight',\n model: nativeTranslatableTextFlowModel\n }),\n textAlign: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'textAlign'\n },\n ['auto', 'left', 'right', 'center', 'justify']\n ),\n textTransform: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'textTransform'\n },\n ['none', 'capitalize', 'uppercase', 'lowercase']\n ),\n whiteSpace: new LongEnumerationCSSPropertyValidator(\n { config, model: webTextFlowModel, propertyName: 'whiteSpace' },\n ['normal', 'pre']\n ),\n listStyleType: new LongForgivingCSSPropertyValidator({\n config,\n model: webTextFlowModel,\n propertyName: 'listStyleType'\n }),\n userSelect: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: webTextFlowModel,\n propertyName: 'userSelect'\n },\n ['auto', 'text', 'none', 'contain', 'all']\n ),\n alignContent: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'alignContent'\n },\n [\n 'flex-start',\n 'flex-end',\n 'center',\n 'stretch',\n 'space-between',\n 'space-around'\n ]\n ),\n alignItems: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'alignItems'\n },\n ['flex-start', 'flex-end', 'center', 'stretch', 'baseline']\n ),\n alignSelf: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'alignSelf'\n },\n ['auto', 'flex-start', 'flex-end', 'center', 'stretch', 'baseline']\n ),\n aspectRatio: new LongAspectRatioPropertyValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'aspectRatio'\n }),\n bottom: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'bottom',\n model: nativeTranslatableBlockRetainModel\n }),\n display: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'display'\n },\n ['flex', 'none']\n ),\n flexBasis: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'flexBasis',\n model: nativeTranslatableBlockRetainModel\n }),\n flexDirection: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'flexDirection'\n },\n ['row', 'column', 'row-reverse', 'column-reverse']\n ),\n flexGrow: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'flexGrow',\n model: nativeTranslatableBlockRetainModel\n }),\n flexShrink: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'flexShrink',\n model: nativeTranslatableBlockRetainModel\n }),\n flexWrap: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'flexWrap'\n },\n ['wrap', 'nowrap', 'wrap-reverse']\n ),\n justifyContent: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'justifyContent'\n },\n [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly'\n ]\n ),\n left: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'left',\n model: nativeTranslatableBlockRetainModel\n }),\n position: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeUntranslatableBlockRetainModel,\n propertyName: 'position'\n },\n ['absolute', 'relative']\n ),\n right: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'right',\n model: nativeTranslatableBlockRetainModel\n }),\n top: new LongSizeCSSPropertyValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'top'\n }),\n backfaceVisibility: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'backfaceVisibility'\n },\n ['visible', 'hidden']\n ),\n backgroundColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'backgroundColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderBottomColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomLeftRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderBottomLeftRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomRightRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderBottomRightRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderBottomWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n borderLeftColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderLeftColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderLeftWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderLeftWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n borderRightColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderRightColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderRightWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderRightWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderTopColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopLeftRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderTopLeftRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopRightRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderTopRightRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderTopWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n height: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'height',\n model: nativeTranslatableBlockRetainModel\n }),\n marginBottom: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginBottom',\n model: nativeTranslatableBlockRetainModel\n }),\n marginLeft: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginLeft',\n model: nativeTranslatableBlockRetainModel\n }),\n marginRight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginRight',\n model: nativeTranslatableBlockRetainModel\n }),\n marginTop: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginTop',\n model: nativeTranslatableBlockRetainModel\n }),\n maxHeight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'maxHeight',\n model: nativeTranslatableBlockRetainModel\n }),\n maxWidth: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'maxWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n minHeight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'minHeight',\n model: nativeTranslatableBlockRetainModel\n }),\n minWidth: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'minWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n opacity: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'opacity',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingBottom: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingBottom',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingLeft: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingLeft',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingRight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingRight',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingTop: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingTop',\n model: nativeTranslatableBlockRetainModel\n }),\n transform: new LongCSSToReactNativeValidator({\n config,\n propertyName: 'transform',\n model: nativeTranslatableBlockRetainModel\n }),\n width: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'width',\n model: nativeTranslatableBlockRetainModel\n }),\n zIndex: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'zIndex',\n model: nativeTranslatableBlockRetainModel\n }),\n direction: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockFlowModel,\n propertyName: 'direction'\n },\n ['auto', 'ltr', 'rtl']\n )\n };\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport normalizeFontName from './normalizeFontName';\nimport { CSSPropertyModel } from './types';\n\nconst SEPARATOR_REGEX = /,\\s*/;\n\nexport class LongFontFamilyPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): string | null {\n const values = value.split(SEPARATOR_REGEX);\n for (const font of values) {\n const normalizedFont = normalizeFontName(font);\n const isFontSupported =\n normalizedFont.length && this.config.isFontSupported(normalizedFont);\n if (isFontSupported) {\n return typeof isFontSupported === 'string'\n ? isFontSupported\n : normalizedFont;\n }\n }\n return null;\n }\n normalizeNativeValue(value: string) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nexport class LongFloatNumberCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): number | null {\n const normalizedVal = Number(value);\n if (Number.isNaN(normalizedVal)) {\n return null;\n }\n return normalizedVal;\n }\n\n normalizeNativeValue(v: string | number): number | null {\n return this.normalizeInlineCSSValue(v);\n }\n}\n","import { lookupRecord } from '../helpers';\nimport { LongNonPercentSizeCSSPropertyValidator } from './LongNonPercentSizeCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nexport class LongBorderWidthCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongNonPercentSizeCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string) {\n if (lookupRecord(this.config.absoluteBorderWidthsPixelMap, value)) {\n return this.config.absoluteBorderWidthsPixelMap[value];\n }\n return super.normalizeRawInlineCSSValue(value);\n }\n\n normalizeNativeValue(value: string | number) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","import { CSSLengthUnit } from '../config';\nimport { lookupRecord } from '../helpers';\nimport { LongSizeCSSPropertyValidator } from './LongSizeCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nexport class LongFontSizeCSSValidator<\n C extends CSSPropertyModel\n> extends LongSizeCSSPropertyValidator {\n protected computeSize(value: number, unit: CSSLengthUnit) {\n if (unit === '%') {\n return this.computeEmSize(value / 100);\n }\n return super.computeSize(value, unit);\n }\n\n normalizeRawInlineCSSValue(value: string) {\n if (lookupRecord(this.config.absoluteFontSizesPixelMap, value)) {\n return this.config.absoluteFontSizesPixelMap[value];\n }\n if (lookupRecord(this.config.relativeFontSizesCoefficientMap, value)) {\n return this.computeEmSize(\n this.config.relativeFontSizesCoefficientMap[value]\n );\n }\n return super.normalizeRawInlineCSSValue(value);\n }\n\n normalizeNativeValue(value: string | number) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nconst ASPECT_RATIO_REGEX = /^(\\d+)\\/(\\d+)$/;\n\nexport class LongAspectRatioPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): number | null {\n const match = ASPECT_RATIO_REGEX.exec(value);\n if (match) {\n const ratio = Number(match[1]) / Number(match[2]);\n return Number.isFinite(ratio) ? ratio : null;\n }\n const fallback = Number(value);\n return Number.isNaN(fallback) ? null : fallback;\n }\n\n normalizeNativeValue(value: string | number): number | null {\n return typeof value !== 'string'\n ? value\n : this.normalizeRawInlineCSSValue(value);\n }\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport { CSSPropertyValidatorParams, CSSPropertyModel } from './types';\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class LongEnumerationListCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n public readonly allowedList: ReadonlyArray;\n constructor(params: CSSPropertyValidatorParams, allowedList: string[]) {\n super(params);\n this.allowedList = allowedList;\n }\n\n normalizeRawInlineCSSValue(value: string): string[] | null {\n const input = value.split(WHITESPACE_REGEX);\n const values: string[] = [];\n for (const item of input) {\n if (this.allowedList.indexOf(item) !== -1) {\n values.push(item);\n }\n }\n return values.length > 0 ? values : null;\n }\n}\n","import { LongEnumerationCSSPropertyValidator } from './LongEnumerationCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class LongBorderStyleCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongEnumerationCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): string | null {\n const normalizedVal = this.pickFirst(value);\n return normalizedVal\n ? super.normalizeRawInlineCSSValue(normalizedVal)\n : null;\n }\n\n normalizeNativeValue(value: string) {\n return this.pickFirst(value);\n }\n\n pickFirst(value: string) {\n const values = value.split(WHITESPACE_REGEX);\n return values[0] || null;\n }\n}\n","import { LongForgivingCSSPropertyValidator } from './LongForgivingCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nconst COLOR_REGEX = /^(rgb|rgba|hsl|hsla)\\([\\d,%. ]+\\)|[#]?\\w+$/;\n\nexport class LongColorCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongForgivingCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): string | null {\n return value.match(COLOR_REGEX) ? value : null;\n }\n}\n","import { ShortCSSToReactNativeValidator } from './ShortCSSToReactNativeValidator';\nimport normalizeFontName from './normalizeFontName';\nimport { CSSPropertyModel } from './types';\nimport { ShortMergeRequest } from '../ShortMergeRequest';\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class ShortFontCSSValidator<\n C extends CSSPropertyModel\n> extends ShortCSSToReactNativeValidator {\n normalizeInlineCSSValue(value: string): ShortMergeRequest | null {\n // A 'font' declaration may end with a list of multiple font families.\n // We must check support for this list before processing.\n const resp = value.split(',');\n let fontFamily = null;\n if (resp.length === 1) {\n return super.normalizeInlineCSSValue(resp[0]);\n }\n const base = resp.splice(0, 1)[0];\n for (const font of resp) {\n const normalizedFont = normalizeFontName(font);\n const isFontSupported = this.config.isFontSupported(normalizedFont);\n if (isFontSupported) {\n fontFamily =\n typeof isFontSupported === 'string'\n ? isFontSupported\n : normalizedFont;\n break;\n }\n }\n return super.normalizeInlineCSSValue(\n base.split(WHITESPACE_REGEX).slice(0, -1).join(' ') +\n ' ' +\n (fontFamily || 'system')\n );\n }\n}\n","import { ShortMergeRequest } from '../ShortMergeRequest';\nimport expandCSSToRN from './expandCSSToRN';\nimport { ShortCSSPropertyValidator } from './ShortCSSPropertyValidator';\nimport { CSSPropertyValidatorParams, CSSPropertyModel } from './types';\n\n/**\n * Flex shorthand property in CSS and React Native differ significantly. This\n * validator must therefore expand this shorthand in a way consistent with the\n * specs for both platforms (native and CSS).\n */\nexport class ShortFlexCSSPropertyValidator extends ShortCSSPropertyValidator<\n CSSPropertyModel,\n number\n> {\n constructor(params: CSSPropertyValidatorParams) {\n super({ ...params, propertyName: 'flex' });\n }\n\n normalizeInlineCSSValue(value: string) {\n return new ShortMergeRequest(expandCSSToRN(this.propertyName, value));\n }\n\n /**\n * In React Native, \"flex\" is not a shorthand property, although it looks\n * like one. There is not always a tuple of (flexGrow, flexShrink,\n * flexBasis) that maps exactly to one single \"flex\" value.\n *\n * For this very reason, it is ill-advised to use \"flex\" shorthand property.\n * Use the longhand equivalent when that is possible.\n *\n * @param value\n */\n normalizeNativeValue(value: number) {\n return value;\n }\n}\n","import { CSSPropertyModel } from './types';\nimport { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport expandCSSToRN from './expandCSSToRN';\n\nexport class LongCSSToReactNativeValidator<\n C extends CSSPropertyModel = any\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string) {\n const expanded = expandCSSToRN(this.propertyName, value);\n if (expanded) {\n return expanded[this.propertyName];\n }\n return null;\n }\n}\n","import { ShortMergeRequest } from '../ShortMergeRequest';\nimport { ShortCSSPropertyValidator } from './ShortCSSPropertyValidator';\nimport { CSSPropertyModel, ShortCSSPropertyValidatorParams } from './types';\n\nexport type Directions = {\n top: string;\n bottom: string;\n left: string;\n right: string;\n};\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class ShortCardinalCSSpropertyValidator<\n C extends CSSPropertyModel = any\n> extends ShortCSSPropertyValidator {\n public directions: Readonly;\n constructor(\n params: ShortCSSPropertyValidatorParams,\n /**\n * Top, Right, Bottom, Left\n */\n directions: Readonly\n ) {\n super(params);\n this.directions = directions;\n }\n\n normalizeInlineCSSValue(value: string | number) {\n if (typeof value === 'number') {\n return new ShortMergeRequest({\n [this.directions.top]: value,\n [this.directions.right]: value,\n [this.directions.bottom]: value,\n [this.directions.left]: value\n });\n }\n const values = value.split(WHITESPACE_REGEX);\n if (values.length === 4) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[1],\n [this.directions.bottom]: values[2],\n [this.directions.left]: values[3]\n });\n }\n if (values.length === 3) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[1],\n [this.directions.bottom]: values[2],\n [this.directions.left]: values[1]\n });\n }\n if (values.length === 2) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[1],\n [this.directions.bottom]: values[0],\n [this.directions.left]: values[1]\n });\n }\n if (values.length === 1) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[0],\n [this.directions.bottom]: values[0],\n [this.directions.left]: values[0]\n });\n }\n return null;\n }\n\n normalizeNativeValue(value: string | number) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","import { ShortMergeRequest } from '../ShortMergeRequest';\nimport { ShortCSSPropertyValidator } from './ShortCSSPropertyValidator';\nimport { CSSPropertyModel, ShortCSSPropertyValidatorParams } from './types';\n\nexport class ShortDualNativepropertyValidator<\n C extends CSSPropertyModel = any\n> extends ShortCSSPropertyValidator {\n public directions: [string, string];\n constructor(\n params: ShortCSSPropertyValidatorParams,\n /**\n * First direction, second direction.\n */\n directions: [string, string]\n ) {\n super(params);\n this.directions = directions;\n }\n\n // These properties are only available for native styles.\n normalizeInlineCSSValue() {\n return null;\n }\n\n normalizeNativeValue(value: string | number) {\n return new ShortMergeRequest({\n [this.directions[0]]: value,\n [this.directions[1]]: value\n });\n }\n}\n","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nmodule.exports = isNil;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\n\nvar not =\n/*#__PURE__*/\n_curry1(function not(a) {\n return !a;\n});\n\nmodule.exports = not;","function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\n\nmodule.exports = _pipe;","var _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n\nvar _reduce =\n/*#__PURE__*/\nrequire(\"./internal/_reduce\");\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nmodule.exports = reduce;","var _isArrayLike =\n/*#__PURE__*/\nrequire(\"./_isArrayLike\");\n\nvar _xwrap =\n/*#__PURE__*/\nrequire(\"./_xwrap\");\n\nvar bind =\n/*#__PURE__*/\nrequire(\"../bind\");\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\nmodule.exports = _reduce;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./_curry1\");\n\nvar _isArray =\n/*#__PURE__*/\nrequire(\"./_isArray\");\n\nvar _isString =\n/*#__PURE__*/\nrequire(\"./_isString\");\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nmodule.exports = _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\n\nmodule.exports = _xwrap;","var _arity =\n/*#__PURE__*/\nrequire(\"./internal/_arity\");\n\nvar _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nmodule.exports = bind;","var _checkForMethod =\n/*#__PURE__*/\nrequire(\"./internal/_checkForMethod\");\n\nvar _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar slice =\n/*#__PURE__*/\nrequire(\"./slice\");\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nmodule.exports = tail;","var _checkForMethod =\n/*#__PURE__*/\nrequire(\"./internal/_checkForMethod\");\n\nvar _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nmodule.exports = slice;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _isString =\n/*#__PURE__*/\nrequire(\"./internal/_isString\");\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nmodule.exports = reverse;","import { Markers } from './tree-types';\n\nconst markersPrototype: Markers = {\n anchor: false,\n edits: 'none',\n lang: 'en',\n olNestLevel: -1,\n ulNestLevel: -1,\n direction: 'ltr',\n extend(this: Markers) {\n return Object.create(this);\n },\n toString() {\n let print = 'Markers {\\n';\n for (const key in this) {\n //@ts-ignore\n const val = this[key];\n if (typeof val !== 'function') {\n print += ` ${key}: ${JSON.stringify(val)}\\n`;\n }\n }\n return print + '}';\n }\n};\n\nexport default markersPrototype;\n","import { TNode, TNodePrintOptions } from './tree-types';\n\nfunction printTableStyles(styles: Record) {\n const entries = Object.entries(styles);\n return entries.reduce((prev, [name, val]) => {\n return `${prev}${prev ? ',' : ''} ${name}: ${JSON.stringify(val)}`;\n }, '');\n}\n\nfunction tnodePropertiesString(\n tnode: TNode,\n { withNodeIndex, withStyles }: TNodePrintOptions\n) {\n const tagPrint = tnode.tagName ? `tagName=\"${tnode.tagName}\"` : 'anonymous';\n const unregisteredPrint = tnode.isUnregistered ? 'unregistered' : null;\n const indexPrint = withNodeIndex ? `nodeIndex={${tnode.nodeIndex}}` : null;\n const idPrint = tnode.id ? `id=${tnode.id}` : null;\n const classesPrint = tnode.classes?.length\n ? `classes={[${tnode.classes.join(', ')}]}`\n : null;\n const dataPrint =\n tnode.type === 'text' ? `data=${JSON.stringify(tnode.data)}` : null;\n const anchorPrint =\n typeof tnode.attributes.href === 'string'\n ? `href=${JSON.stringify(tnode.attributes.href)}`\n : null;\n const srcPrint =\n typeof tnode.attributes.src === 'string'\n ? `src=${JSON.stringify(tnode.attributes.src)}`\n : null;\n const pstyles = withStyles ? printTableStyles(tnode.getNativeStyles()) : null;\n const nativeStylesPrint = pstyles ? `nativeStyles={{${pstyles} }}` : null;\n const oStyles = withStyles ? printTableStyles(tnode.getWebStyles()) : null;\n const webStylesPrint = oStyles ? `webStyles={{${oStyles}}}` : null;\n const detailsPrint = [\n tagPrint,\n unregisteredPrint,\n indexPrint,\n idPrint,\n classesPrint,\n dataPrint,\n anchorPrint,\n srcPrint,\n nativeStylesPrint,\n webStylesPrint\n ]\n .filter((p) => p !== null)\n .join(' ');\n return `<${tnode.displayName} ${detailsPrint}`;\n}\n\ninterface TNodePrintState {\n parentLeftPrefix: string;\n isChild: boolean;\n isLast: boolean;\n}\n\nexport default function tnodeSnapshot(\n tnode: TNode,\n params: Partial & TNodePrintOptions\n): string {\n const {\n parentLeftPrefix = '',\n isChild = false,\n isLast = true,\n withStyles,\n withNodeIndex\n } = params;\n const prefix = isChild ? ' ' : '';\n const totalPrefixLeft = parentLeftPrefix + prefix;\n const childrenPrint = tnode.children\n .map((c, i) =>\n tnodeSnapshot(c, {\n parentLeftPrefix: parentLeftPrefix + ''.padStart(prefix.length, ' '),\n isChild: true,\n isLast: i === tnode.children.length - 1,\n withStyles,\n withNodeIndex\n })\n )\n .join('');\n return `${totalPrefixLeft}${tnodePropertiesString(tnode, {\n withStyles,\n withNodeIndex\n })}${\n childrenPrint\n ? `>\\n${childrenPrint}\\n${totalPrefixLeft}`\n : ' />'\n }${isLast ? '' : '\\n'}`;\n}\n","// TODO, when React Native supports unicode regexes,\n// we should use `p{Zs}` instead of [ \\t] to comply\n// with the CSS3 Text Module standard. https://www.w3.org/TR/css-text-3/#spaces\nconst COLLAPSIBLE_AROUND_SEGMENT_BREAK_REGEX = /[ \\t]*[\\r\\n\\f]+[ \\t]*/g;\nconst CONSECUTIVE_SEGMENT_BREAKS_REGEX = /[\\r\\n\\f]+/g;\nconst ZERO_WIDTH_SPACES_AROUND_SEGMENT_BREAKS_REGEX =\n /(\\u200b\\n\\u200b?|\\u200b?\\n\\u200b)/g;\nconst SPACE_DISCARDING_CHARSET_REGEX =\n /([\\u2E80-\\u2EFF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uF900-\\uFAFF\\uFE10-\\uFE1F\\uFE30-\\uFE4F\\uFE50-\\uFE6F\\uFF00-\\uFFEF])\\n([\\u2E80-\\u2EFF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uF900-\\uFAFF\\uFE10-\\uFE1F\\uFE30-\\uFE4F\\uFE50-\\uFE6F\\uFF00-\\uFFEF])/g;\nconst SEGMENT_BREAK_REGEX = /\\n/g;\nconst SUBSEQUENT_WHITESPACE_REGEX = /[ \\t]+/g;\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#white-space-phase-1\nexport function removeCollapsibleAroundSegmentBreak(data: string): string {\n return data.replace(COLLAPSIBLE_AROUND_SEGMENT_BREAK_REGEX, '\\n');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#line-break-transform\nexport function removeConsecutiveSegmentBreaks(data: string): string {\n return data.replace(CONSECUTIVE_SEGMENT_BREAKS_REGEX, '\\n');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20200429/#line-break-transform\n// In the latest version (https://www.w3.org/TR/2020/WD-css-text-3-20201119/),\n// the behavior is considered at UA discretion.\nexport function normalizeZeroWidthWhitespaces(data: string): string {\n return data.replace(ZERO_WIDTH_SPACES_AROUND_SEGMENT_BREAKS_REGEX, '\\u200b');\n}\n\n// Partial implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20200429/#line-break-transform\n//\n// Because RN Javascript runtime doesn't support String.fromCharCode, we don't support space discarding\n// for character ranges above U+FFFF\n//\n// In the latest version (https://www.w3.org/TR/2020/WD-css-text-3-20201119/),\n// the behavior is considered at UA discretion.\nexport function removeLineBreaksAroundEastAsianDiscardSet(\n data: string\n): string {\n return data.replace(SPACE_DISCARDING_CHARSET_REGEX, '$1$2');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#white-space-phase-2\n// (A.1)\nexport function replaceSegmentBreaks(data: string): string {\n return data.replace(SEGMENT_BREAK_REGEX, ' ');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#white-space-phase-2\n// (A.4)\nexport function normalizeWhitespaces(data: string): string {\n return data.replace(SUBSEQUENT_WHITESPACE_REGEX, ' ');\n}\n","import { TNodeImpl, TNodeInit } from '../tree/tree-types';\nimport { Document } from 'domhandler';\nimport { TTextCtor } from '../tree/TTextCtor';\nimport { TPhrasingCtor } from '../tree/TPhrasingCtor';\nimport { TBlockCtor } from '../tree/TBlockCtor';\nimport { TDocumentCtor, TDocumentImpl } from '../tree/TDocumentImpl';\nimport { isDomElement, isDomText, Element, Node, Text } from '../dom/dom-utils';\nimport { TStyles } from '../styles/TStyles';\n\nimport { TEmptyCtor } from '../tree/TEmptyCtor';\nimport { DataFlowParams } from './types';\n\nexport function mapNodeList({\n nodeList,\n parent,\n parentStyles,\n params\n}: {\n nodeList: Node[];\n parentStyles?: TStyles;\n parent: TNodeImpl | null;\n params: DataFlowParams;\n}): TNodeImpl[] {\n const nextMap: TNodeImpl[] = [];\n for (const i in nodeList) {\n const child = nodeList[i];\n const translated = translateNode({\n node: child,\n parentStyles,\n params,\n nodeIndex: Number(i),\n parent\n });\n if (translated) {\n nextMap.push(translated);\n }\n }\n return nextMap;\n}\n\nexport function bindChildren(\n node: TNodeImpl,\n children: Node[],\n params: DataFlowParams\n) {\n if (!node.elementModel || !node.elementModel.isOpaque) {\n node.bindChildren(\n mapNodeList({\n nodeList: children,\n parent: node,\n params\n })\n );\n }\n}\n\nfunction translateElement({\n node,\n nodeIndex,\n params,\n parent,\n parentStyles\n}: TranslateParams): TNodeImpl | null {\n const tagName = node.tagName;\n const sharedProps: Omit = {\n nodeIndex,\n parentStyles,\n context: params,\n domNode: node,\n parent\n };\n const elementModel = params.modelRegistry.getElementModelFromTagName(tagName);\n if (!elementModel) {\n return new TEmptyCtor({\n ...sharedProps,\n isUnregistered: true,\n elementModel,\n domNode: node\n });\n }\n if (elementModel.isTranslatableTextual()) {\n if (node.children.length === 1) {\n const child = node.children[0] as Node;\n if (isDomText(child)) {\n return new TTextCtor({\n ...sharedProps,\n elementModel,\n textNode: child,\n domNode: node\n });\n }\n } else if (node.children.length === 0) {\n return new TTextCtor({\n ...sharedProps,\n elementModel,\n domNode: node,\n textNode: new Text('')\n });\n }\n const phrasing = new TPhrasingCtor({\n ...sharedProps,\n domNode: node,\n elementModel\n });\n bindChildren(phrasing, node.children, params);\n return phrasing;\n }\n if (elementModel.isTranslatableBlock()) {\n const block = new TBlockCtor({\n ...sharedProps,\n elementModel,\n parentStyles,\n domNode: node\n });\n bindChildren(block, node.children, params);\n return block;\n }\n return new TEmptyCtor({\n ...sharedProps,\n isUnregistered: false,\n elementModel,\n domNode: node\n });\n}\n\ninterface TranslateParams {\n node: T;\n params: DataFlowParams;\n parent: TNodeImpl | null;\n parentStyles?: TStyles;\n nodeIndex?: number;\n}\n\nexport function translateNode({\n node,\n parentStyles,\n params,\n nodeIndex,\n parent\n}: TranslateParams): TNodeImpl | null {\n if (isDomText(node)) {\n return new TTextCtor({\n textNode: node,\n context: params,\n parentStyles,\n domNode: null,\n elementModel: null,\n nodeIndex,\n parent\n });\n }\n if (isDomElement(node)) {\n return translateElement({\n node,\n parentStyles,\n params,\n nodeIndex,\n parent\n });\n }\n return null;\n}\n\nexport function translateDocument(\n document: Document,\n params: DataFlowParams\n): TDocumentImpl {\n const tdoc = new TDocumentCtor({\n context: params,\n styles: params.baseStyles,\n domNode: document as any\n });\n bindChildren(tdoc, document.children, params);\n tdoc.parseChildren();\n return tdoc;\n}\n","import { GenericTNodeCtor, Mutable } from './TNodeCtor';\nimport HTMLElementModel from '../model/HTMLElementModel';\nimport { isDomElement, isDomText } from '../dom/dom-utils';\nimport { TEmptyImpl } from './TEmptyCtor';\nimport { TNodeInit, TNodeImpl, DocumentContext } from './tree-types';\nimport TBlockImpl from './TBlockCtor';\n\nexport type TDocumentInit = Omit;\n\nexport interface TDocumentImpl extends TNodeImpl {\n readonly context: Readonly;\n /**\n * Iterate over children and extract meta-information into context field.\n * Replace children with a single-element array containing the body.\n */\n parseChildren(): void;\n}\n\nconst defaultContextBase: DocumentContext = Object.freeze({\n baseHref: 'about:blank',\n baseTarget: '_self',\n charset: 'utf-8',\n title: '',\n lang: 'en',\n dir: 'ltr',\n links: [],\n meta: []\n});\n\nfunction getDefaultDocumentContext(): DocumentContext {\n return Object.assign({}, defaultContextBase, { links: [], meta: [] });\n}\n\nfunction extractContextFromHead(head: TEmptyImpl, lang?: string, dir?: string) {\n const context = getDefaultDocumentContext();\n if (lang) {\n context.lang = lang;\n }\n if (dir) {\n context.dir = 'rtl';\n }\n const domNode = head.domNode;\n const children = domNode.children;\n children.filter(isDomElement).forEach((child) => {\n if (child.tagName === 'meta') {\n if (child.attribs.name) {\n context.meta.push(child.attribs as any);\n } else if (child.attribs.charset) {\n context.charset = child.attribs.charset.toLowerCase();\n }\n } else if (child.tagName === 'link') {\n context.links.push(child.attribs);\n } else if (child.tagName === 'title') {\n for (const titleChild of child.children.filter(isDomText)) {\n context.title = titleChild.data.trim();\n break;\n }\n } else if (child.tagName === 'base') {\n context.baseHref = child.attribs.href || context.baseHref;\n context.baseTarget = (child.attribs.target as any) || context.baseTarget;\n }\n });\n return context;\n}\n\nconst htmlModel = HTMLElementModel.fromNativeModel({\n tagName: 'html' as any,\n category: 'grouping'\n});\n\nconst TDocumentCtor = function TDocument(\n this: Mutable,\n init: TDocumentInit\n) {\n this.initialize(init as TNodeInit);\n} as Function as GenericTNodeCtor;\n\nTDocumentCtor.prototype = Object.create(TBlockImpl.prototype);\n\nObject.defineProperty(TDocumentCtor.prototype, 'tagName', {\n value: 'html',\n writable: false\n});\n\nObject.defineProperty(TDocumentCtor.prototype, 'type', {\n value: 'document',\n writable: false\n});\n\nObject.defineProperty(TDocumentCtor.prototype, 'displayName', {\n value: 'TDocument',\n writable: false\n});\n\nObject.defineProperty(TDocumentCtor.prototype, 'elementModel', {\n value: htmlModel,\n writable: false\n});\n\nTDocumentCtor.prototype.parseChildren = function parseChildren(\n this: Mutable\n) {\n let head: TEmptyImpl | undefined;\n for (const child of this.children) {\n if (child.tagName === 'head') {\n head = child as unknown as TEmptyImpl;\n break;\n }\n }\n this.context = Object.freeze(\n head\n ? extractContextFromHead(\n head,\n this.attributes!.lang,\n this.attributes!.dir\n )\n : {\n ...getDefaultDocumentContext(),\n lang: this.attributes!.lang,\n dir: this.attributes!.dir as any\n }\n );\n};\n\nexport { TDocumentCtor };\n\nexport default TDocumentCtor;\n","import HTMLContentModel from '../model/HTMLContentModel';\nimport { Element } from '../dom/dom-utils';\nimport { TNodeImpl, TNodeInit } from './tree-types';\nimport TNodeCtor, { GenericTNodeCtor, Mutable } from './TNodeCtor';\n\nexport interface TEmptyImpl extends TNodeImpl {\n readonly domNode: Element;\n}\n\nexport interface TEmptyInit extends TNodeInit {\n domNode: Element;\n}\n\nconst TEmptyCtor = function TEmpty(\n this: Mutable,\n init: TEmptyInit\n) {\n this.initialize(init);\n} as Function as GenericTNodeCtor;\n\n//@ts-ignore\nTEmptyCtor.prototype = new TNodeCtor('empty', 'TEmpty');\n\nTEmptyCtor.prototype.matchContentModel = function matchContentModel(\n contentModel: HTMLContentModel\n) {\n return contentModel === HTMLContentModel.none;\n};\n\nexport default TEmptyCtor;\n\nexport { TEmptyCtor };\n","import { Document } from 'domhandler';\nimport { Parser, ParserOptions } from 'htmlparser2';\nimport DomHandler, { DomHandlerOptions } from './DomHandler';\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nexport default function parseDocument(\n data: string,\n options: ParserOptions & DomHandlerOptions = {}\n): Document {\n const handler = new DomHandler(options);\n new Parser(handler, options).end(data);\n return handler.root;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RssHandler = exports.DefaultHandler = exports.DomUtils = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DomHandler = exports.Parser = void 0;\nvar Parser_1 = require(\"./Parser\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_1.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param cb A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCb An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(cb, options, elementCb) {\n var handler = new domhandler_1.DomHandler(cb, options, elementCb);\n return new Parser_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_1 = require(\"./Tokenizer\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_1).default; } });\nvar ElementType = __importStar(require(\"domelementtype\"));\nexports.ElementType = ElementType;\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\n__exportStar(require(\"./FeedHandler\"), exports);\nexports.DomUtils = __importStar(require(\"domutils\"));\nvar FeedHandler_1 = require(\"./FeedHandler\");\nObject.defineProperty(exports, \"RssHandler\", { enumerable: true, get: function () { return FeedHandler_1.FeedHandler; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTML = exports.determineBranch = exports.JUMP_OFFSET_BASE = exports.BinTrieFlags = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_1 = __importDefault(require(\"./generated/decode-data-html\"));\nexports.htmlDecodeTree = decode_data_html_1.default;\nvar decode_data_xml_1 = __importDefault(require(\"./generated/decode-data-xml\"));\nexports.xmlDecodeTree = decode_data_xml_1.default;\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"HAS_VALUE\"] = 32768] = \"HAS_VALUE\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 32512] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"MULTI_BYTE\"] = 128] = \"MULTI_BYTE\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nexports.JUMP_OFFSET_BASE = 48 /* ZERO */ - 1;\nfunction getDecoder(decodeTree) {\n return function decodeHTMLBinary(str, strict) {\n var ret = \"\";\n var lastIdx = 0;\n var strIdx = 0;\n while ((strIdx = str.indexOf(\"&\", strIdx)) >= 0) {\n ret += str.slice(lastIdx, strIdx);\n lastIdx = strIdx;\n // Skip the \"&\"\n strIdx += 1;\n // If we have a numeric entity, handle this separately.\n if (str.charCodeAt(strIdx) === 35 /* NUM */) {\n // Skip the leading \"&#\". For hex entities, also skip the leading \"x\".\n var start = strIdx + 1;\n var base = 10;\n var cp = str.charCodeAt(start);\n if ((cp | 32 /* To_LOWER_BIT */) === 120 /* LOWER_X */) {\n base = 16;\n strIdx += 1;\n start += 1;\n }\n while (((cp = str.charCodeAt(++strIdx)) >= 48 /* ZERO */ &&\n cp <= 57 /* NINE */) ||\n (base === 16 &&\n (cp | 32 /* To_LOWER_BIT */) >= 97 /* LOWER_A */ &&\n (cp | 32 /* To_LOWER_BIT */) <= 102 /* LOWER_F */))\n ;\n if (start !== strIdx) {\n var entity = str.substring(start, strIdx);\n var parsed = parseInt(entity, base);\n if (str.charCodeAt(strIdx) === 59 /* SEMI */) {\n strIdx += 1;\n }\n else if (strict) {\n continue;\n }\n ret += decode_codepoint_1.default(parsed);\n lastIdx = strIdx;\n }\n continue;\n }\n var result = null;\n var excess = 1;\n var treeIdx = 0;\n var current = decodeTree[treeIdx];\n for (; strIdx < str.length; strIdx++, excess++) {\n treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx));\n if (treeIdx < 0)\n break;\n current = decodeTree[treeIdx];\n // If the branch is a value, store it and continue\n if (current & BinTrieFlags.HAS_VALUE) {\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (strict && str.charCodeAt(strIdx) !== 59 /* SEMI */) {\n // No need to consider multi-byte values, as the legacy entity is always a single byte\n treeIdx += 1;\n }\n else {\n // If this is a surrogate pair, combine the higher bits from the node with the next byte\n result =\n current & BinTrieFlags.MULTI_BYTE\n ? String.fromCharCode(decodeTree[++treeIdx], decodeTree[++treeIdx])\n : String.fromCharCode(decodeTree[++treeIdx]);\n excess = 0;\n }\n }\n }\n if (result != null) {\n ret += result;\n lastIdx = strIdx - excess + 1;\n }\n }\n return ret + str.slice(lastIdx);\n };\n}\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n if (current <= 128) {\n return char === current ? nodeIdx : -1;\n }\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 8;\n if (branchCount === 0) {\n return -1;\n }\n if (branchCount === 1) {\n return char === decodeTree[nodeIdx] ? nodeIdx + 1 : -1;\n }\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n if (jumpOffset) {\n var value = char - exports.JUMP_OFFSET_BASE - jumpOffset;\n return value < 0 || value > branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_1.default);\nfunction decodeHTML(str) {\n return htmlDecoder(str, false);\n}\nexports.decodeHTML = decodeHTML;\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, true);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\nfunction decodeXML(str) {\n return xmlDecoder(str, true);\n}\nexports.decodeXML = decodeXML;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Generated using scripts/write-decode-map.ts\n// prettier-ignore\nexports.default = new Uint16Array([14866, 60, 237, 340, 721, 1312, 1562, 1654, 1838, 1957, 2183, 2239, 2301, 2958, 3037, 3893, 4123, 4298, 4330, 4801, 5191, 5395, 5752, 5903, 5943, 5972, 6050, 0, 0, 0, 0, 0, 0, 6135, 6565, 7422, 8183, 8738, 9242, 9503, 9938, 10189, 10573, 10637, 10715, 11950, 12246, 13539, 13950, 14445, 14533, 15364, 16514, 16980, 17390, 17763, 17849, 18036, 18125, 4096, 69, 77, 97, 98, 99, 102, 103, 108, 109, 110, 111, 112, 114, 115, 116, 117, 92, 100, 106, 115, 122, 137, 142, 151, 157, 163, 167, 182, 196, 204, 220, 229, 108, 105, 103, 33024, 198, 59, 32768, 198, 80, 33024, 38, 59, 32768, 38, 99, 117, 116, 101, 33024, 193, 59, 32768, 193, 114, 101, 118, 101, 59, 32768, 258, 512, 105, 121, 127, 134, 114, 99, 33024, 194, 59, 32768, 194, 59, 32768, 1040, 114, 59, 32896, 55349, 56580, 114, 97, 118, 101, 33024, 192, 59, 32768, 192, 112, 104, 97, 59, 32768, 913, 97, 99, 114, 59, 32768, 256, 100, 59, 32768, 10835, 512, 103, 112, 172, 177, 111, 110, 59, 32768, 260, 102, 59, 32896, 55349, 56632, 112, 108, 121, 70, 117, 110, 99, 116, 105, 111, 110, 59, 32768, 8289, 105, 110, 103, 33024, 197, 59, 32768, 197, 512, 99, 115, 209, 214, 114, 59, 32896, 55349, 56476, 105, 103, 110, 59, 32768, 8788, 105, 108, 100, 101, 33024, 195, 59, 32768, 195, 109, 108, 33024, 196, 59, 32768, 196, 2048, 97, 99, 101, 102, 111, 114, 115, 117, 253, 278, 282, 310, 315, 321, 327, 332, 512, 99, 114, 258, 267, 107, 115, 108, 97, 115, 104, 59, 32768, 8726, 583, 271, 274, 59, 32768, 10983, 101, 100, 59, 32768, 8966, 121, 59, 32768, 1041, 768, 99, 114, 116, 289, 296, 306, 97, 117, 115, 101, 59, 32768, 8757, 110, 111, 117, 108, 108, 105, 115, 59, 32768, 8492, 97, 59, 32768, 914, 114, 59, 32896, 55349, 56581, 112, 102, 59, 32896, 55349, 56633, 101, 118, 101, 59, 32768, 728, 99, 114, 59, 32768, 8492, 109, 112, 101, 113, 59, 32768, 8782, 3584, 72, 79, 97, 99, 100, 101, 102, 104, 105, 108, 111, 114, 115, 117, 368, 373, 380, 426, 461, 466, 487, 491, 495, 533, 593, 695, 701, 707, 99, 121, 59, 32768, 1063, 80, 89, 33024, 169, 59, 32768, 169, 768, 99, 112, 121, 387, 393, 419, 117, 116, 101, 59, 32768, 262, 512, 59, 105, 398, 400, 32768, 8914, 116, 97, 108, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 32768, 8517, 108, 101, 121, 115, 59, 32768, 8493, 1024, 97, 101, 105, 111, 435, 441, 449, 454, 114, 111, 110, 59, 32768, 268, 100, 105, 108, 33024, 199, 59, 32768, 199, 114, 99, 59, 32768, 264, 110, 105, 110, 116, 59, 32768, 8752, 111, 116, 59, 32768, 266, 512, 100, 110, 471, 478, 105, 108, 108, 97, 59, 32768, 184, 116, 101, 114, 68, 111, 116, 59, 32768, 183, 114, 59, 32768, 8493, 105, 59, 32768, 935, 114, 99, 108, 101, 1024, 68, 77, 80, 84, 508, 513, 520, 526, 111, 116, 59, 32768, 8857, 105, 110, 117, 115, 59, 32768, 8854, 108, 117, 115, 59, 32768, 8853, 105, 109, 101, 115, 59, 32768, 8855, 111, 512, 99, 115, 539, 562, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8754, 101, 67, 117, 114, 108, 121, 512, 68, 81, 573, 586, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 32768, 8221, 117, 111, 116, 101, 59, 32768, 8217, 1024, 108, 110, 112, 117, 602, 614, 648, 664, 111, 110, 512, 59, 101, 609, 611, 32768, 8759, 59, 32768, 10868, 768, 103, 105, 116, 621, 629, 634, 114, 117, 101, 110, 116, 59, 32768, 8801, 110, 116, 59, 32768, 8751, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8750, 512, 102, 114, 653, 656, 59, 32768, 8450, 111, 100, 117, 99, 116, 59, 32768, 8720, 110, 116, 101, 114, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8755, 111, 115, 115, 59, 32768, 10799, 99, 114, 59, 32896, 55349, 56478, 112, 512, 59, 67, 713, 715, 32768, 8915, 97, 112, 59, 32768, 8781, 2816, 68, 74, 83, 90, 97, 99, 101, 102, 105, 111, 115, 743, 758, 763, 768, 773, 795, 809, 821, 826, 910, 1295, 512, 59, 111, 748, 750, 32768, 8517, 116, 114, 97, 104, 100, 59, 32768, 10513, 99, 121, 59, 32768, 1026, 99, 121, 59, 32768, 1029, 99, 121, 59, 32768, 1039, 768, 103, 114, 115, 780, 786, 790, 103, 101, 114, 59, 32768, 8225, 114, 59, 32768, 8609, 104, 118, 59, 32768, 10980, 512, 97, 121, 800, 806, 114, 111, 110, 59, 32768, 270, 59, 32768, 1044, 108, 512, 59, 116, 815, 817, 32768, 8711, 97, 59, 32768, 916, 114, 59, 32896, 55349, 56583, 512, 97, 102, 831, 897, 512, 99, 109, 836, 891, 114, 105, 116, 105, 99, 97, 108, 1024, 65, 68, 71, 84, 852, 859, 877, 884, 99, 117, 116, 101, 59, 32768, 180, 111, 581, 864, 867, 59, 32768, 729, 98, 108, 101, 65, 99, 117, 116, 101, 59, 32768, 733, 114, 97, 118, 101, 59, 32768, 96, 105, 108, 100, 101, 59, 32768, 732, 111, 110, 100, 59, 32768, 8900, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 32768, 8518, 2113, 920, 0, 0, 0, 925, 946, 0, 1139, 102, 59, 32896, 55349, 56635, 768, 59, 68, 69, 931, 933, 938, 32768, 168, 111, 116, 59, 32768, 8412, 113, 117, 97, 108, 59, 32768, 8784, 98, 108, 101, 1536, 67, 68, 76, 82, 85, 86, 961, 978, 996, 1080, 1101, 1125, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8751, 111, 1093, 985, 0, 0, 988, 59, 32768, 168, 110, 65, 114, 114, 111, 119, 59, 32768, 8659, 512, 101, 111, 1001, 1034, 102, 116, 768, 65, 82, 84, 1010, 1017, 1029, 114, 114, 111, 119, 59, 32768, 8656, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8660, 101, 101, 59, 32768, 10980, 110, 103, 512, 76, 82, 1041, 1068, 101, 102, 116, 512, 65, 82, 1049, 1056, 114, 114, 111, 119, 59, 32768, 10232, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10234, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10233, 105, 103, 104, 116, 512, 65, 84, 1089, 1096, 114, 114, 111, 119, 59, 32768, 8658, 101, 101, 59, 32768, 8872, 112, 1042, 1108, 0, 0, 1115, 114, 114, 111, 119, 59, 32768, 8657, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8661, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 32768, 8741, 110, 1536, 65, 66, 76, 82, 84, 97, 1152, 1179, 1186, 1236, 1272, 1288, 114, 114, 111, 119, 768, 59, 66, 85, 1163, 1165, 1170, 32768, 8595, 97, 114, 59, 32768, 10515, 112, 65, 114, 114, 111, 119, 59, 32768, 8693, 114, 101, 118, 101, 59, 32768, 785, 101, 102, 116, 1315, 1196, 0, 1209, 0, 1220, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 32768, 10576, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10590, 101, 99, 116, 111, 114, 512, 59, 66, 1229, 1231, 32768, 8637, 97, 114, 59, 32768, 10582, 105, 103, 104, 116, 805, 1245, 0, 1256, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10591, 101, 99, 116, 111, 114, 512, 59, 66, 1265, 1267, 32768, 8641, 97, 114, 59, 32768, 10583, 101, 101, 512, 59, 65, 1279, 1281, 32768, 8868, 114, 114, 111, 119, 59, 32768, 8615, 114, 114, 111, 119, 59, 32768, 8659, 512, 99, 116, 1300, 1305, 114, 59, 32896, 55349, 56479, 114, 111, 107, 59, 32768, 272, 4096, 78, 84, 97, 99, 100, 102, 103, 108, 109, 111, 112, 113, 115, 116, 117, 120, 1344, 1348, 1354, 1363, 1386, 1391, 1396, 1405, 1413, 1460, 1475, 1483, 1514, 1527, 1531, 1538, 71, 59, 32768, 330, 72, 33024, 208, 59, 32768, 208, 99, 117, 116, 101, 33024, 201, 59, 32768, 201, 768, 97, 105, 121, 1370, 1376, 1383, 114, 111, 110, 59, 32768, 282, 114, 99, 33024, 202, 59, 32768, 202, 59, 32768, 1069, 111, 116, 59, 32768, 278, 114, 59, 32896, 55349, 56584, 114, 97, 118, 101, 33024, 200, 59, 32768, 200, 101, 109, 101, 110, 116, 59, 32768, 8712, 512, 97, 112, 1418, 1423, 99, 114, 59, 32768, 274, 116, 121, 1060, 1431, 0, 0, 1444, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9723, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9643, 512, 103, 112, 1465, 1470, 111, 110, 59, 32768, 280, 102, 59, 32896, 55349, 56636, 115, 105, 108, 111, 110, 59, 32768, 917, 117, 512, 97, 105, 1489, 1504, 108, 512, 59, 84, 1495, 1497, 32768, 10869, 105, 108, 100, 101, 59, 32768, 8770, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 8652, 512, 99, 105, 1519, 1523, 114, 59, 32768, 8496, 109, 59, 32768, 10867, 97, 59, 32768, 919, 109, 108, 33024, 203, 59, 32768, 203, 512, 105, 112, 1543, 1549, 115, 116, 115, 59, 32768, 8707, 111, 110, 101, 110, 116, 105, 97, 108, 69, 59, 32768, 8519, 1280, 99, 102, 105, 111, 115, 1572, 1576, 1581, 1620, 1648, 121, 59, 32768, 1060, 114, 59, 32896, 55349, 56585, 108, 108, 101, 100, 1060, 1591, 0, 0, 1604, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9724, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9642, 1601, 1628, 0, 1633, 0, 0, 1639, 102, 59, 32896, 55349, 56637, 65, 108, 108, 59, 32768, 8704, 114, 105, 101, 114, 116, 114, 102, 59, 32768, 8497, 99, 114, 59, 32768, 8497, 3072, 74, 84, 97, 98, 99, 100, 102, 103, 111, 114, 115, 116, 1678, 1683, 1688, 1701, 1708, 1729, 1734, 1739, 1742, 1748, 1828, 1834, 99, 121, 59, 32768, 1027, 33024, 62, 59, 32768, 62, 109, 109, 97, 512, 59, 100, 1696, 1698, 32768, 915, 59, 32768, 988, 114, 101, 118, 101, 59, 32768, 286, 768, 101, 105, 121, 1715, 1721, 1726, 100, 105, 108, 59, 32768, 290, 114, 99, 59, 32768, 284, 59, 32768, 1043, 111, 116, 59, 32768, 288, 114, 59, 32896, 55349, 56586, 59, 32768, 8921, 112, 102, 59, 32896, 55349, 56638, 101, 97, 116, 101, 114, 1536, 69, 70, 71, 76, 83, 84, 1766, 1783, 1794, 1803, 1809, 1821, 113, 117, 97, 108, 512, 59, 76, 1775, 1777, 32768, 8805, 101, 115, 115, 59, 32768, 8923, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8807, 114, 101, 97, 116, 101, 114, 59, 32768, 10914, 101, 115, 115, 59, 32768, 8823, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 10878, 105, 108, 100, 101, 59, 32768, 8819, 99, 114, 59, 32896, 55349, 56482, 59, 32768, 8811, 2048, 65, 97, 99, 102, 105, 111, 115, 117, 1854, 1861, 1874, 1880, 1884, 1897, 1919, 1934, 82, 68, 99, 121, 59, 32768, 1066, 512, 99, 116, 1866, 1871, 101, 107, 59, 32768, 711, 59, 32768, 94, 105, 114, 99, 59, 32768, 292, 114, 59, 32768, 8460, 108, 98, 101, 114, 116, 83, 112, 97, 99, 101, 59, 32768, 8459, 833, 1902, 0, 1906, 102, 59, 32768, 8461, 105, 122, 111, 110, 116, 97, 108, 76, 105, 110, 101, 59, 32768, 9472, 512, 99, 116, 1924, 1928, 114, 59, 32768, 8459, 114, 111, 107, 59, 32768, 294, 109, 112, 533, 1940, 1950, 111, 119, 110, 72, 117, 109, 112, 59, 32768, 8782, 113, 117, 97, 108, 59, 32768, 8783, 3584, 69, 74, 79, 97, 99, 100, 102, 103, 109, 110, 111, 115, 116, 117, 1985, 1990, 1996, 2001, 2010, 2025, 2030, 2034, 2043, 2077, 2134, 2155, 2160, 2167, 99, 121, 59, 32768, 1045, 108, 105, 103, 59, 32768, 306, 99, 121, 59, 32768, 1025, 99, 117, 116, 101, 33024, 205, 59, 32768, 205, 512, 105, 121, 2015, 2022, 114, 99, 33024, 206, 59, 32768, 206, 59, 32768, 1048, 111, 116, 59, 32768, 304, 114, 59, 32768, 8465, 114, 97, 118, 101, 33024, 204, 59, 32768, 204, 768, 59, 97, 112, 2050, 2052, 2070, 32768, 8465, 512, 99, 103, 2057, 2061, 114, 59, 32768, 298, 105, 110, 97, 114, 121, 73, 59, 32768, 8520, 108, 105, 101, 115, 59, 32768, 8658, 837, 2082, 0, 2110, 512, 59, 101, 2086, 2088, 32768, 8748, 512, 103, 114, 2093, 2099, 114, 97, 108, 59, 32768, 8747, 115, 101, 99, 116, 105, 111, 110, 59, 32768, 8898, 105, 115, 105, 98, 108, 101, 512, 67, 84, 2120, 2127, 111, 109, 109, 97, 59, 32768, 8291, 105, 109, 101, 115, 59, 32768, 8290, 768, 103, 112, 116, 2141, 2146, 2151, 111, 110, 59, 32768, 302, 102, 59, 32896, 55349, 56640, 97, 59, 32768, 921, 99, 114, 59, 32768, 8464, 105, 108, 100, 101, 59, 32768, 296, 828, 2172, 0, 2177, 99, 121, 59, 32768, 1030, 108, 33024, 207, 59, 32768, 207, 1280, 99, 102, 111, 115, 117, 2193, 2206, 2211, 2217, 2232, 512, 105, 121, 2198, 2203, 114, 99, 59, 32768, 308, 59, 32768, 1049, 114, 59, 32896, 55349, 56589, 112, 102, 59, 32896, 55349, 56641, 820, 2222, 0, 2227, 114, 59, 32896, 55349, 56485, 114, 99, 121, 59, 32768, 1032, 107, 99, 121, 59, 32768, 1028, 1792, 72, 74, 97, 99, 102, 111, 115, 2253, 2258, 2263, 2269, 2283, 2288, 2294, 99, 121, 59, 32768, 1061, 99, 121, 59, 32768, 1036, 112, 112, 97, 59, 32768, 922, 512, 101, 121, 2274, 2280, 100, 105, 108, 59, 32768, 310, 59, 32768, 1050, 114, 59, 32896, 55349, 56590, 112, 102, 59, 32896, 55349, 56642, 99, 114, 59, 32896, 55349, 56486, 2816, 74, 84, 97, 99, 101, 102, 108, 109, 111, 115, 116, 2323, 2328, 2333, 2374, 2396, 2775, 2780, 2797, 2804, 2934, 2954, 99, 121, 59, 32768, 1033, 33024, 60, 59, 32768, 60, 1280, 99, 109, 110, 112, 114, 2344, 2350, 2356, 2360, 2370, 117, 116, 101, 59, 32768, 313, 98, 100, 97, 59, 32768, 923, 103, 59, 32768, 10218, 108, 97, 99, 101, 116, 114, 102, 59, 32768, 8466, 114, 59, 32768, 8606, 768, 97, 101, 121, 2381, 2387, 2393, 114, 111, 110, 59, 32768, 317, 100, 105, 108, 59, 32768, 315, 59, 32768, 1051, 512, 102, 115, 2401, 2702, 116, 2560, 65, 67, 68, 70, 82, 84, 85, 86, 97, 114, 2423, 2470, 2479, 2530, 2537, 2561, 2618, 2666, 2683, 2690, 512, 110, 114, 2428, 2441, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10216, 114, 111, 119, 768, 59, 66, 82, 2451, 2453, 2458, 32768, 8592, 97, 114, 59, 32768, 8676, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8646, 101, 105, 108, 105, 110, 103, 59, 32768, 8968, 111, 838, 2485, 0, 2498, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10214, 110, 805, 2503, 0, 2514, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10593, 101, 99, 116, 111, 114, 512, 59, 66, 2523, 2525, 32768, 8643, 97, 114, 59, 32768, 10585, 108, 111, 111, 114, 59, 32768, 8970, 105, 103, 104, 116, 512, 65, 86, 2546, 2553, 114, 114, 111, 119, 59, 32768, 8596, 101, 99, 116, 111, 114, 59, 32768, 10574, 512, 101, 114, 2566, 2591, 101, 768, 59, 65, 86, 2574, 2576, 2583, 32768, 8867, 114, 114, 111, 119, 59, 32768, 8612, 101, 99, 116, 111, 114, 59, 32768, 10586, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 2604, 2606, 2611, 32768, 8882, 97, 114, 59, 32768, 10703, 113, 117, 97, 108, 59, 32768, 8884, 112, 768, 68, 84, 86, 2626, 2638, 2649, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 32768, 10577, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10592, 101, 99, 116, 111, 114, 512, 59, 66, 2659, 2661, 32768, 8639, 97, 114, 59, 32768, 10584, 101, 99, 116, 111, 114, 512, 59, 66, 2676, 2678, 32768, 8636, 97, 114, 59, 32768, 10578, 114, 114, 111, 119, 59, 32768, 8656, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8660, 115, 1536, 69, 70, 71, 76, 83, 84, 2716, 2730, 2741, 2750, 2756, 2768, 113, 117, 97, 108, 71, 114, 101, 97, 116, 101, 114, 59, 32768, 8922, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8806, 114, 101, 97, 116, 101, 114, 59, 32768, 8822, 101, 115, 115, 59, 32768, 10913, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 10877, 105, 108, 100, 101, 59, 32768, 8818, 114, 59, 32896, 55349, 56591, 512, 59, 101, 2785, 2787, 32768, 8920, 102, 116, 97, 114, 114, 111, 119, 59, 32768, 8666, 105, 100, 111, 116, 59, 32768, 319, 768, 110, 112, 119, 2811, 2899, 2904, 103, 1024, 76, 82, 108, 114, 2821, 2848, 2860, 2887, 101, 102, 116, 512, 65, 82, 2829, 2836, 114, 114, 111, 119, 59, 32768, 10229, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10231, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10230, 101, 102, 116, 512, 97, 114, 2868, 2875, 114, 114, 111, 119, 59, 32768, 10232, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10234, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10233, 102, 59, 32896, 55349, 56643, 101, 114, 512, 76, 82, 2911, 2922, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8601, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8600, 768, 99, 104, 116, 2941, 2945, 2948, 114, 59, 32768, 8466, 59, 32768, 8624, 114, 111, 107, 59, 32768, 321, 59, 32768, 8810, 2048, 97, 99, 101, 102, 105, 111, 115, 117, 2974, 2978, 2982, 3007, 3012, 3022, 3028, 3033, 112, 59, 32768, 10501, 121, 59, 32768, 1052, 512, 100, 108, 2987, 2998, 105, 117, 109, 83, 112, 97, 99, 101, 59, 32768, 8287, 108, 105, 110, 116, 114, 102, 59, 32768, 8499, 114, 59, 32896, 55349, 56592, 110, 117, 115, 80, 108, 117, 115, 59, 32768, 8723, 112, 102, 59, 32896, 55349, 56644, 99, 114, 59, 32768, 8499, 59, 32768, 924, 2304, 74, 97, 99, 101, 102, 111, 115, 116, 117, 3055, 3060, 3067, 3089, 3201, 3206, 3874, 3880, 3889, 99, 121, 59, 32768, 1034, 99, 117, 116, 101, 59, 32768, 323, 768, 97, 101, 121, 3074, 3080, 3086, 114, 111, 110, 59, 32768, 327, 100, 105, 108, 59, 32768, 325, 59, 32768, 1053, 768, 103, 115, 119, 3096, 3160, 3194, 97, 116, 105, 118, 101, 768, 77, 84, 86, 3108, 3121, 3145, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 59, 32768, 8203, 104, 105, 512, 99, 110, 3128, 3137, 107, 83, 112, 97, 99, 101, 59, 32768, 8203, 83, 112, 97, 99, 101, 59, 32768, 8203, 101, 114, 121, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 32768, 8203, 116, 101, 100, 512, 71, 76, 3168, 3184, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 32768, 8811, 101, 115, 115, 76, 101, 115, 115, 59, 32768, 8810, 76, 105, 110, 101, 59, 32768, 10, 114, 59, 32896, 55349, 56593, 1024, 66, 110, 112, 116, 3215, 3222, 3238, 3242, 114, 101, 97, 107, 59, 32768, 8288, 66, 114, 101, 97, 107, 105, 110, 103, 83, 112, 97, 99, 101, 59, 32768, 160, 102, 59, 32768, 8469, 3328, 59, 67, 68, 69, 71, 72, 76, 78, 80, 82, 83, 84, 86, 3269, 3271, 3293, 3312, 3352, 3430, 3455, 3551, 3589, 3625, 3678, 3821, 3861, 32768, 10988, 512, 111, 117, 3276, 3286, 110, 103, 114, 117, 101, 110, 116, 59, 32768, 8802, 112, 67, 97, 112, 59, 32768, 8813, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 32768, 8742, 768, 108, 113, 120, 3319, 3327, 3345, 101, 109, 101, 110, 116, 59, 32768, 8713, 117, 97, 108, 512, 59, 84, 3335, 3337, 32768, 8800, 105, 108, 100, 101, 59, 32896, 8770, 824, 105, 115, 116, 115, 59, 32768, 8708, 114, 101, 97, 116, 101, 114, 1792, 59, 69, 70, 71, 76, 83, 84, 3373, 3375, 3382, 3394, 3404, 3410, 3423, 32768, 8815, 113, 117, 97, 108, 59, 32768, 8817, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32896, 8807, 824, 114, 101, 97, 116, 101, 114, 59, 32896, 8811, 824, 101, 115, 115, 59, 32768, 8825, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32896, 10878, 824, 105, 108, 100, 101, 59, 32768, 8821, 117, 109, 112, 533, 3437, 3448, 111, 119, 110, 72, 117, 109, 112, 59, 32896, 8782, 824, 113, 117, 97, 108, 59, 32896, 8783, 824, 101, 512, 102, 115, 3461, 3492, 116, 84, 114, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 3477, 3479, 3485, 32768, 8938, 97, 114, 59, 32896, 10703, 824, 113, 117, 97, 108, 59, 32768, 8940, 115, 1536, 59, 69, 71, 76, 83, 84, 3506, 3508, 3515, 3524, 3531, 3544, 32768, 8814, 113, 117, 97, 108, 59, 32768, 8816, 114, 101, 97, 116, 101, 114, 59, 32768, 8824, 101, 115, 115, 59, 32896, 8810, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32896, 10877, 824, 105, 108, 100, 101, 59, 32768, 8820, 101, 115, 116, 101, 100, 512, 71, 76, 3561, 3578, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 32896, 10914, 824, 101, 115, 115, 76, 101, 115, 115, 59, 32896, 10913, 824, 114, 101, 99, 101, 100, 101, 115, 768, 59, 69, 83, 3603, 3605, 3613, 32768, 8832, 113, 117, 97, 108, 59, 32896, 10927, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8928, 512, 101, 105, 3630, 3645, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 59, 32768, 8716, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 3663, 3665, 3671, 32768, 8939, 97, 114, 59, 32896, 10704, 824, 113, 117, 97, 108, 59, 32768, 8941, 512, 113, 117, 3683, 3732, 117, 97, 114, 101, 83, 117, 512, 98, 112, 3694, 3712, 115, 101, 116, 512, 59, 69, 3702, 3705, 32896, 8847, 824, 113, 117, 97, 108, 59, 32768, 8930, 101, 114, 115, 101, 116, 512, 59, 69, 3722, 3725, 32896, 8848, 824, 113, 117, 97, 108, 59, 32768, 8931, 768, 98, 99, 112, 3739, 3757, 3801, 115, 101, 116, 512, 59, 69, 3747, 3750, 32896, 8834, 8402, 113, 117, 97, 108, 59, 32768, 8840, 99, 101, 101, 100, 115, 1024, 59, 69, 83, 84, 3771, 3773, 3781, 3793, 32768, 8833, 113, 117, 97, 108, 59, 32896, 10928, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8929, 105, 108, 100, 101, 59, 32896, 8831, 824, 101, 114, 115, 101, 116, 512, 59, 69, 3811, 3814, 32896, 8835, 8402, 113, 117, 97, 108, 59, 32768, 8841, 105, 108, 100, 101, 1024, 59, 69, 70, 84, 3834, 3836, 3843, 3854, 32768, 8769, 113, 117, 97, 108, 59, 32768, 8772, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8775, 105, 108, 100, 101, 59, 32768, 8777, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 32768, 8740, 99, 114, 59, 32896, 55349, 56489, 105, 108, 100, 101, 33024, 209, 59, 32768, 209, 59, 32768, 925, 3584, 69, 97, 99, 100, 102, 103, 109, 111, 112, 114, 115, 116, 117, 118, 3921, 3927, 3936, 3951, 3958, 3963, 3972, 3996, 4002, 4034, 4037, 4055, 4071, 4078, 108, 105, 103, 59, 32768, 338, 99, 117, 116, 101, 33024, 211, 59, 32768, 211, 512, 105, 121, 3941, 3948, 114, 99, 33024, 212, 59, 32768, 212, 59, 32768, 1054, 98, 108, 97, 99, 59, 32768, 336, 114, 59, 32896, 55349, 56594, 114, 97, 118, 101, 33024, 210, 59, 32768, 210, 768, 97, 101, 105, 3979, 3984, 3989, 99, 114, 59, 32768, 332, 103, 97, 59, 32768, 937, 99, 114, 111, 110, 59, 32768, 927, 112, 102, 59, 32896, 55349, 56646, 101, 110, 67, 117, 114, 108, 121, 512, 68, 81, 4014, 4027, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 32768, 8220, 117, 111, 116, 101, 59, 32768, 8216, 59, 32768, 10836, 512, 99, 108, 4042, 4047, 114, 59, 32896, 55349, 56490, 97, 115, 104, 33024, 216, 59, 32768, 216, 105, 573, 4060, 4067, 100, 101, 33024, 213, 59, 32768, 213, 101, 115, 59, 32768, 10807, 109, 108, 33024, 214, 59, 32768, 214, 101, 114, 512, 66, 80, 4085, 4109, 512, 97, 114, 4090, 4094, 114, 59, 32768, 8254, 97, 99, 512, 101, 107, 4101, 4104, 59, 32768, 9182, 101, 116, 59, 32768, 9140, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 32768, 9180, 2304, 97, 99, 102, 104, 105, 108, 111, 114, 115, 4141, 4150, 4154, 4159, 4163, 4166, 4176, 4198, 4284, 114, 116, 105, 97, 108, 68, 59, 32768, 8706, 121, 59, 32768, 1055, 114, 59, 32896, 55349, 56595, 105, 59, 32768, 934, 59, 32768, 928, 117, 115, 77, 105, 110, 117, 115, 59, 32768, 177, 512, 105, 112, 4181, 4194, 110, 99, 97, 114, 101, 112, 108, 97, 110, 101, 59, 32768, 8460, 102, 59, 32768, 8473, 1024, 59, 101, 105, 111, 4207, 4209, 4251, 4256, 32768, 10939, 99, 101, 100, 101, 115, 1024, 59, 69, 83, 84, 4223, 4225, 4232, 4244, 32768, 8826, 113, 117, 97, 108, 59, 32768, 10927, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8828, 105, 108, 100, 101, 59, 32768, 8830, 109, 101, 59, 32768, 8243, 512, 100, 112, 4261, 4267, 117, 99, 116, 59, 32768, 8719, 111, 114, 116, 105, 111, 110, 512, 59, 97, 4278, 4280, 32768, 8759, 108, 59, 32768, 8733, 512, 99, 105, 4289, 4294, 114, 59, 32896, 55349, 56491, 59, 32768, 936, 1024, 85, 102, 111, 115, 4306, 4313, 4318, 4323, 79, 84, 33024, 34, 59, 32768, 34, 114, 59, 32896, 55349, 56596, 112, 102, 59, 32768, 8474, 99, 114, 59, 32896, 55349, 56492, 3072, 66, 69, 97, 99, 101, 102, 104, 105, 111, 114, 115, 117, 4354, 4360, 4366, 4395, 4417, 4473, 4477, 4481, 4743, 4764, 4776, 4788, 97, 114, 114, 59, 32768, 10512, 71, 33024, 174, 59, 32768, 174, 768, 99, 110, 114, 4373, 4379, 4383, 117, 116, 101, 59, 32768, 340, 103, 59, 32768, 10219, 114, 512, 59, 116, 4389, 4391, 32768, 8608, 108, 59, 32768, 10518, 768, 97, 101, 121, 4402, 4408, 4414, 114, 111, 110, 59, 32768, 344, 100, 105, 108, 59, 32768, 342, 59, 32768, 1056, 512, 59, 118, 4422, 4424, 32768, 8476, 101, 114, 115, 101, 512, 69, 85, 4433, 4458, 512, 108, 113, 4438, 4446, 101, 109, 101, 110, 116, 59, 32768, 8715, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 8651, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 10607, 114, 59, 32768, 8476, 111, 59, 32768, 929, 103, 104, 116, 2048, 65, 67, 68, 70, 84, 85, 86, 97, 4501, 4547, 4556, 4607, 4614, 4671, 4719, 4736, 512, 110, 114, 4506, 4519, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10217, 114, 111, 119, 768, 59, 66, 76, 4529, 4531, 4536, 32768, 8594, 97, 114, 59, 32768, 8677, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8644, 101, 105, 108, 105, 110, 103, 59, 32768, 8969, 111, 838, 4562, 0, 4575, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10215, 110, 805, 4580, 0, 4591, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10589, 101, 99, 116, 111, 114, 512, 59, 66, 4600, 4602, 32768, 8642, 97, 114, 59, 32768, 10581, 108, 111, 111, 114, 59, 32768, 8971, 512, 101, 114, 4619, 4644, 101, 768, 59, 65, 86, 4627, 4629, 4636, 32768, 8866, 114, 114, 111, 119, 59, 32768, 8614, 101, 99, 116, 111, 114, 59, 32768, 10587, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 4657, 4659, 4664, 32768, 8883, 97, 114, 59, 32768, 10704, 113, 117, 97, 108, 59, 32768, 8885, 112, 768, 68, 84, 86, 4679, 4691, 4702, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 32768, 10575, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10588, 101, 99, 116, 111, 114, 512, 59, 66, 4712, 4714, 32768, 8638, 97, 114, 59, 32768, 10580, 101, 99, 116, 111, 114, 512, 59, 66, 4729, 4731, 32768, 8640, 97, 114, 59, 32768, 10579, 114, 114, 111, 119, 59, 32768, 8658, 512, 112, 117, 4748, 4752, 102, 59, 32768, 8477, 110, 100, 73, 109, 112, 108, 105, 101, 115, 59, 32768, 10608, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8667, 512, 99, 104, 4781, 4785, 114, 59, 32768, 8475, 59, 32768, 8625, 108, 101, 68, 101, 108, 97, 121, 101, 100, 59, 32768, 10740, 3328, 72, 79, 97, 99, 102, 104, 105, 109, 111, 113, 115, 116, 117, 4827, 4842, 4849, 4856, 4889, 4894, 4949, 4955, 4967, 4973, 5059, 5065, 5070, 512, 67, 99, 4832, 4838, 72, 99, 121, 59, 32768, 1065, 121, 59, 32768, 1064, 70, 84, 99, 121, 59, 32768, 1068, 99, 117, 116, 101, 59, 32768, 346, 1280, 59, 97, 101, 105, 121, 4867, 4869, 4875, 4881, 4886, 32768, 10940, 114, 111, 110, 59, 32768, 352, 100, 105, 108, 59, 32768, 350, 114, 99, 59, 32768, 348, 59, 32768, 1057, 114, 59, 32896, 55349, 56598, 111, 114, 116, 1024, 68, 76, 82, 85, 4906, 4917, 4928, 4940, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8595, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8592, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8594, 112, 65, 114, 114, 111, 119, 59, 32768, 8593, 103, 109, 97, 59, 32768, 931, 97, 108, 108, 67, 105, 114, 99, 108, 101, 59, 32768, 8728, 112, 102, 59, 32896, 55349, 56650, 1091, 4979, 0, 0, 4983, 116, 59, 32768, 8730, 97, 114, 101, 1024, 59, 73, 83, 85, 4994, 4996, 5010, 5052, 32768, 9633, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 59, 32768, 8851, 117, 512, 98, 112, 5016, 5033, 115, 101, 116, 512, 59, 69, 5024, 5026, 32768, 8847, 113, 117, 97, 108, 59, 32768, 8849, 101, 114, 115, 101, 116, 512, 59, 69, 5043, 5045, 32768, 8848, 113, 117, 97, 108, 59, 32768, 8850, 110, 105, 111, 110, 59, 32768, 8852, 99, 114, 59, 32896, 55349, 56494, 97, 114, 59, 32768, 8902, 1024, 98, 99, 109, 112, 5079, 5102, 5155, 5158, 512, 59, 115, 5084, 5086, 32768, 8912, 101, 116, 512, 59, 69, 5093, 5095, 32768, 8912, 113, 117, 97, 108, 59, 32768, 8838, 512, 99, 104, 5107, 5148, 101, 101, 100, 115, 1024, 59, 69, 83, 84, 5120, 5122, 5129, 5141, 32768, 8827, 113, 117, 97, 108, 59, 32768, 10928, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8829, 105, 108, 100, 101, 59, 32768, 8831, 84, 104, 97, 116, 59, 32768, 8715, 59, 32768, 8721, 768, 59, 101, 115, 5165, 5167, 5185, 32768, 8913, 114, 115, 101, 116, 512, 59, 69, 5176, 5178, 32768, 8835, 113, 117, 97, 108, 59, 32768, 8839, 101, 116, 59, 32768, 8913, 2816, 72, 82, 83, 97, 99, 102, 104, 105, 111, 114, 115, 5213, 5221, 5227, 5241, 5252, 5274, 5279, 5323, 5362, 5368, 5378, 79, 82, 78, 33024, 222, 59, 32768, 222, 65, 68, 69, 59, 32768, 8482, 512, 72, 99, 5232, 5237, 99, 121, 59, 32768, 1035, 121, 59, 32768, 1062, 512, 98, 117, 5246, 5249, 59, 32768, 9, 59, 32768, 932, 768, 97, 101, 121, 5259, 5265, 5271, 114, 111, 110, 59, 32768, 356, 100, 105, 108, 59, 32768, 354, 59, 32768, 1058, 114, 59, 32896, 55349, 56599, 512, 101, 105, 5284, 5300, 835, 5289, 0, 5297, 101, 102, 111, 114, 101, 59, 32768, 8756, 97, 59, 32768, 920, 512, 99, 110, 5305, 5315, 107, 83, 112, 97, 99, 101, 59, 32896, 8287, 8202, 83, 112, 97, 99, 101, 59, 32768, 8201, 108, 100, 101, 1024, 59, 69, 70, 84, 5335, 5337, 5344, 5355, 32768, 8764, 113, 117, 97, 108, 59, 32768, 8771, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8773, 105, 108, 100, 101, 59, 32768, 8776, 112, 102, 59, 32896, 55349, 56651, 105, 112, 108, 101, 68, 111, 116, 59, 32768, 8411, 512, 99, 116, 5383, 5388, 114, 59, 32896, 55349, 56495, 114, 111, 107, 59, 32768, 358, 5426, 5417, 5444, 5458, 5473, 0, 5480, 5485, 0, 0, 0, 0, 0, 5494, 5500, 5564, 5579, 0, 5726, 5732, 5738, 5745, 512, 99, 114, 5421, 5429, 117, 116, 101, 33024, 218, 59, 32768, 218, 114, 512, 59, 111, 5435, 5437, 32768, 8607, 99, 105, 114, 59, 32768, 10569, 114, 820, 5449, 0, 5453, 121, 59, 32768, 1038, 118, 101, 59, 32768, 364, 512, 105, 121, 5462, 5469, 114, 99, 33024, 219, 59, 32768, 219, 59, 32768, 1059, 98, 108, 97, 99, 59, 32768, 368, 114, 59, 32896, 55349, 56600, 114, 97, 118, 101, 33024, 217, 59, 32768, 217, 97, 99, 114, 59, 32768, 362, 512, 100, 105, 5504, 5548, 101, 114, 512, 66, 80, 5511, 5535, 512, 97, 114, 5516, 5520, 114, 59, 32768, 95, 97, 99, 512, 101, 107, 5527, 5530, 59, 32768, 9183, 101, 116, 59, 32768, 9141, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 32768, 9181, 111, 110, 512, 59, 80, 5555, 5557, 32768, 8899, 108, 117, 115, 59, 32768, 8846, 512, 103, 112, 5568, 5573, 111, 110, 59, 32768, 370, 102, 59, 32896, 55349, 56652, 2048, 65, 68, 69, 84, 97, 100, 112, 115, 5595, 5624, 5635, 5648, 5664, 5671, 5682, 5712, 114, 114, 111, 119, 768, 59, 66, 68, 5606, 5608, 5613, 32768, 8593, 97, 114, 59, 32768, 10514, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8645, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8597, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 10606, 101, 101, 512, 59, 65, 5655, 5657, 32768, 8869, 114, 114, 111, 119, 59, 32768, 8613, 114, 114, 111, 119, 59, 32768, 8657, 111, 119, 110, 97, 114, 114, 111, 119, 59, 32768, 8661, 101, 114, 512, 76, 82, 5689, 5700, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8598, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8599, 105, 512, 59, 108, 5718, 5720, 32768, 978, 111, 110, 59, 32768, 933, 105, 110, 103, 59, 32768, 366, 99, 114, 59, 32896, 55349, 56496, 105, 108, 100, 101, 59, 32768, 360, 109, 108, 33024, 220, 59, 32768, 220, 2304, 68, 98, 99, 100, 101, 102, 111, 115, 118, 5770, 5776, 5781, 5785, 5798, 5878, 5883, 5889, 5895, 97, 115, 104, 59, 32768, 8875, 97, 114, 59, 32768, 10987, 121, 59, 32768, 1042, 97, 115, 104, 512, 59, 108, 5793, 5795, 32768, 8873, 59, 32768, 10982, 512, 101, 114, 5803, 5806, 59, 32768, 8897, 768, 98, 116, 121, 5813, 5818, 5866, 97, 114, 59, 32768, 8214, 512, 59, 105, 5823, 5825, 32768, 8214, 99, 97, 108, 1024, 66, 76, 83, 84, 5837, 5842, 5848, 5859, 97, 114, 59, 32768, 8739, 105, 110, 101, 59, 32768, 124, 101, 112, 97, 114, 97, 116, 111, 114, 59, 32768, 10072, 105, 108, 100, 101, 59, 32768, 8768, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 32768, 8202, 114, 59, 32896, 55349, 56601, 112, 102, 59, 32896, 55349, 56653, 99, 114, 59, 32896, 55349, 56497, 100, 97, 115, 104, 59, 32768, 8874, 1280, 99, 101, 102, 111, 115, 5913, 5919, 5925, 5930, 5936, 105, 114, 99, 59, 32768, 372, 100, 103, 101, 59, 32768, 8896, 114, 59, 32896, 55349, 56602, 112, 102, 59, 32896, 55349, 56654, 99, 114, 59, 32896, 55349, 56498, 1024, 102, 105, 111, 115, 5951, 5956, 5959, 5965, 114, 59, 32896, 55349, 56603, 59, 32768, 926, 112, 102, 59, 32896, 55349, 56655, 99, 114, 59, 32896, 55349, 56499, 2304, 65, 73, 85, 97, 99, 102, 111, 115, 117, 5990, 5995, 6000, 6005, 6014, 6027, 6032, 6038, 6044, 99, 121, 59, 32768, 1071, 99, 121, 59, 32768, 1031, 99, 121, 59, 32768, 1070, 99, 117, 116, 101, 33024, 221, 59, 32768, 221, 512, 105, 121, 6019, 6024, 114, 99, 59, 32768, 374, 59, 32768, 1067, 114, 59, 32896, 55349, 56604, 112, 102, 59, 32896, 55349, 56656, 99, 114, 59, 32896, 55349, 56500, 109, 108, 59, 32768, 376, 2048, 72, 97, 99, 100, 101, 102, 111, 115, 6066, 6071, 6078, 6092, 6097, 6119, 6123, 6128, 99, 121, 59, 32768, 1046, 99, 117, 116, 101, 59, 32768, 377, 512, 97, 121, 6083, 6089, 114, 111, 110, 59, 32768, 381, 59, 32768, 1047, 111, 116, 59, 32768, 379, 835, 6102, 0, 6116, 111, 87, 105, 100, 116, 104, 83, 112, 97, 99, 101, 59, 32768, 8203, 97, 59, 32768, 918, 114, 59, 32768, 8488, 112, 102, 59, 32768, 8484, 99, 114, 59, 32896, 55349, 56501, 5938, 6159, 6168, 6175, 0, 6214, 6222, 6233, 0, 0, 0, 0, 6242, 6267, 6290, 6429, 6444, 0, 6495, 6503, 6531, 6540, 0, 6547, 99, 117, 116, 101, 33024, 225, 59, 32768, 225, 114, 101, 118, 101, 59, 32768, 259, 1536, 59, 69, 100, 105, 117, 121, 6187, 6189, 6193, 6196, 6203, 6210, 32768, 8766, 59, 32896, 8766, 819, 59, 32768, 8767, 114, 99, 33024, 226, 59, 32768, 226, 116, 101, 33024, 180, 59, 32768, 180, 59, 32768, 1072, 108, 105, 103, 33024, 230, 59, 32768, 230, 512, 59, 114, 6226, 6228, 32768, 8289, 59, 32896, 55349, 56606, 114, 97, 118, 101, 33024, 224, 59, 32768, 224, 512, 101, 112, 6246, 6261, 512, 102, 112, 6251, 6257, 115, 121, 109, 59, 32768, 8501, 104, 59, 32768, 8501, 104, 97, 59, 32768, 945, 512, 97, 112, 6271, 6284, 512, 99, 108, 6276, 6280, 114, 59, 32768, 257, 103, 59, 32768, 10815, 33024, 38, 59, 32768, 38, 1077, 6295, 0, 0, 6326, 1280, 59, 97, 100, 115, 118, 6305, 6307, 6312, 6315, 6322, 32768, 8743, 110, 100, 59, 32768, 10837, 59, 32768, 10844, 108, 111, 112, 101, 59, 32768, 10840, 59, 32768, 10842, 1792, 59, 101, 108, 109, 114, 115, 122, 6340, 6342, 6345, 6349, 6391, 6410, 6422, 32768, 8736, 59, 32768, 10660, 101, 59, 32768, 8736, 115, 100, 512, 59, 97, 6356, 6358, 32768, 8737, 2098, 6368, 6371, 6374, 6377, 6380, 6383, 6386, 6389, 59, 32768, 10664, 59, 32768, 10665, 59, 32768, 10666, 59, 32768, 10667, 59, 32768, 10668, 59, 32768, 10669, 59, 32768, 10670, 59, 32768, 10671, 116, 512, 59, 118, 6397, 6399, 32768, 8735, 98, 512, 59, 100, 6405, 6407, 32768, 8894, 59, 32768, 10653, 512, 112, 116, 6415, 6419, 104, 59, 32768, 8738, 59, 32768, 197, 97, 114, 114, 59, 32768, 9084, 512, 103, 112, 6433, 6438, 111, 110, 59, 32768, 261, 102, 59, 32896, 55349, 56658, 1792, 59, 69, 97, 101, 105, 111, 112, 6458, 6460, 6463, 6469, 6472, 6476, 6480, 32768, 8776, 59, 32768, 10864, 99, 105, 114, 59, 32768, 10863, 59, 32768, 8778, 100, 59, 32768, 8779, 115, 59, 32768, 39, 114, 111, 120, 512, 59, 101, 6488, 6490, 32768, 8776, 113, 59, 32768, 8778, 105, 110, 103, 33024, 229, 59, 32768, 229, 768, 99, 116, 121, 6509, 6514, 6517, 114, 59, 32896, 55349, 56502, 59, 32768, 42, 109, 112, 512, 59, 101, 6524, 6526, 32768, 8776, 113, 59, 32768, 8781, 105, 108, 100, 101, 33024, 227, 59, 32768, 227, 109, 108, 33024, 228, 59, 32768, 228, 512, 99, 105, 6551, 6559, 111, 110, 105, 110, 116, 59, 32768, 8755, 110, 116, 59, 32768, 10769, 4096, 78, 97, 98, 99, 100, 101, 102, 105, 107, 108, 110, 111, 112, 114, 115, 117, 6597, 6602, 6673, 6688, 6701, 6707, 6768, 6773, 6891, 6898, 6999, 7023, 7309, 7316, 7334, 7383, 111, 116, 59, 32768, 10989, 512, 99, 114, 6607, 6652, 107, 1024, 99, 101, 112, 115, 6617, 6623, 6632, 6639, 111, 110, 103, 59, 32768, 8780, 112, 115, 105, 108, 111, 110, 59, 32768, 1014, 114, 105, 109, 101, 59, 32768, 8245, 105, 109, 512, 59, 101, 6646, 6648, 32768, 8765, 113, 59, 32768, 8909, 583, 6656, 6661, 101, 101, 59, 32768, 8893, 101, 100, 512, 59, 103, 6667, 6669, 32768, 8965, 101, 59, 32768, 8965, 114, 107, 512, 59, 116, 6680, 6682, 32768, 9141, 98, 114, 107, 59, 32768, 9142, 512, 111, 121, 6693, 6698, 110, 103, 59, 32768, 8780, 59, 32768, 1073, 113, 117, 111, 59, 32768, 8222, 1280, 99, 109, 112, 114, 116, 6718, 6731, 6738, 6743, 6749, 97, 117, 115, 512, 59, 101, 6726, 6728, 32768, 8757, 59, 32768, 8757, 112, 116, 121, 118, 59, 32768, 10672, 115, 105, 59, 32768, 1014, 110, 111, 117, 59, 32768, 8492, 768, 97, 104, 119, 6756, 6759, 6762, 59, 32768, 946, 59, 32768, 8502, 101, 101, 110, 59, 32768, 8812, 114, 59, 32896, 55349, 56607, 103, 1792, 99, 111, 115, 116, 117, 118, 119, 6789, 6809, 6834, 6850, 6872, 6879, 6884, 768, 97, 105, 117, 6796, 6800, 6805, 112, 59, 32768, 8898, 114, 99, 59, 32768, 9711, 112, 59, 32768, 8899, 768, 100, 112, 116, 6816, 6821, 6827, 111, 116, 59, 32768, 10752, 108, 117, 115, 59, 32768, 10753, 105, 109, 101, 115, 59, 32768, 10754, 1090, 6840, 0, 0, 6846, 99, 117, 112, 59, 32768, 10758, 97, 114, 59, 32768, 9733, 114, 105, 97, 110, 103, 108, 101, 512, 100, 117, 6862, 6868, 111, 119, 110, 59, 32768, 9661, 112, 59, 32768, 9651, 112, 108, 117, 115, 59, 32768, 10756, 101, 101, 59, 32768, 8897, 101, 100, 103, 101, 59, 32768, 8896, 97, 114, 111, 119, 59, 32768, 10509, 768, 97, 107, 111, 6905, 6976, 6994, 512, 99, 110, 6910, 6972, 107, 768, 108, 115, 116, 6918, 6927, 6935, 111, 122, 101, 110, 103, 101, 59, 32768, 10731, 113, 117, 97, 114, 101, 59, 32768, 9642, 114, 105, 97, 110, 103, 108, 101, 1024, 59, 100, 108, 114, 6951, 6953, 6959, 6965, 32768, 9652, 111, 119, 110, 59, 32768, 9662, 101, 102, 116, 59, 32768, 9666, 105, 103, 104, 116, 59, 32768, 9656, 107, 59, 32768, 9251, 770, 6981, 0, 6991, 771, 6985, 0, 6988, 59, 32768, 9618, 59, 32768, 9617, 52, 59, 32768, 9619, 99, 107, 59, 32768, 9608, 512, 101, 111, 7004, 7019, 512, 59, 113, 7009, 7012, 32896, 61, 8421, 117, 105, 118, 59, 32896, 8801, 8421, 116, 59, 32768, 8976, 1024, 112, 116, 119, 120, 7032, 7037, 7049, 7055, 102, 59, 32896, 55349, 56659, 512, 59, 116, 7042, 7044, 32768, 8869, 111, 109, 59, 32768, 8869, 116, 105, 101, 59, 32768, 8904, 3072, 68, 72, 85, 86, 98, 100, 104, 109, 112, 116, 117, 118, 7080, 7101, 7126, 7147, 7182, 7187, 7208, 7233, 7240, 7246, 7253, 7274, 1024, 76, 82, 108, 114, 7089, 7092, 7095, 7098, 59, 32768, 9559, 59, 32768, 9556, 59, 32768, 9558, 59, 32768, 9555, 1280, 59, 68, 85, 100, 117, 7112, 7114, 7117, 7120, 7123, 32768, 9552, 59, 32768, 9574, 59, 32768, 9577, 59, 32768, 9572, 59, 32768, 9575, 1024, 76, 82, 108, 114, 7135, 7138, 7141, 7144, 59, 32768, 9565, 59, 32768, 9562, 59, 32768, 9564, 59, 32768, 9561, 1792, 59, 72, 76, 82, 104, 108, 114, 7162, 7164, 7167, 7170, 7173, 7176, 7179, 32768, 9553, 59, 32768, 9580, 59, 32768, 9571, 59, 32768, 9568, 59, 32768, 9579, 59, 32768, 9570, 59, 32768, 9567, 111, 120, 59, 32768, 10697, 1024, 76, 82, 108, 114, 7196, 7199, 7202, 7205, 59, 32768, 9557, 59, 32768, 9554, 59, 32768, 9488, 59, 32768, 9484, 1280, 59, 68, 85, 100, 117, 7219, 7221, 7224, 7227, 7230, 32768, 9472, 59, 32768, 9573, 59, 32768, 9576, 59, 32768, 9516, 59, 32768, 9524, 105, 110, 117, 115, 59, 32768, 8863, 108, 117, 115, 59, 32768, 8862, 105, 109, 101, 115, 59, 32768, 8864, 1024, 76, 82, 108, 114, 7262, 7265, 7268, 7271, 59, 32768, 9563, 59, 32768, 9560, 59, 32768, 9496, 59, 32768, 9492, 1792, 59, 72, 76, 82, 104, 108, 114, 7289, 7291, 7294, 7297, 7300, 7303, 7306, 32768, 9474, 59, 32768, 9578, 59, 32768, 9569, 59, 32768, 9566, 59, 32768, 9532, 59, 32768, 9508, 59, 32768, 9500, 114, 105, 109, 101, 59, 32768, 8245, 512, 101, 118, 7321, 7326, 118, 101, 59, 32768, 728, 98, 97, 114, 33024, 166, 59, 32768, 166, 1024, 99, 101, 105, 111, 7343, 7348, 7353, 7364, 114, 59, 32896, 55349, 56503, 109, 105, 59, 32768, 8271, 109, 512, 59, 101, 7359, 7361, 32768, 8765, 59, 32768, 8909, 108, 768, 59, 98, 104, 7372, 7374, 7377, 32768, 92, 59, 32768, 10693, 115, 117, 98, 59, 32768, 10184, 573, 7387, 7399, 108, 512, 59, 101, 7392, 7394, 32768, 8226, 116, 59, 32768, 8226, 112, 768, 59, 69, 101, 7406, 7408, 7411, 32768, 8782, 59, 32768, 10926, 512, 59, 113, 7416, 7418, 32768, 8783, 59, 32768, 8783, 6450, 7448, 0, 7523, 7571, 7576, 7613, 0, 7618, 7647, 0, 0, 7764, 0, 0, 7779, 0, 0, 7899, 7914, 7949, 7955, 0, 8158, 0, 8176, 768, 99, 112, 114, 7454, 7460, 7509, 117, 116, 101, 59, 32768, 263, 1536, 59, 97, 98, 99, 100, 115, 7473, 7475, 7480, 7487, 7500, 7505, 32768, 8745, 110, 100, 59, 32768, 10820, 114, 99, 117, 112, 59, 32768, 10825, 512, 97, 117, 7492, 7496, 112, 59, 32768, 10827, 112, 59, 32768, 10823, 111, 116, 59, 32768, 10816, 59, 32896, 8745, 65024, 512, 101, 111, 7514, 7518, 116, 59, 32768, 8257, 110, 59, 32768, 711, 1024, 97, 101, 105, 117, 7531, 7544, 7552, 7557, 833, 7536, 0, 7540, 115, 59, 32768, 10829, 111, 110, 59, 32768, 269, 100, 105, 108, 33024, 231, 59, 32768, 231, 114, 99, 59, 32768, 265, 112, 115, 512, 59, 115, 7564, 7566, 32768, 10828, 109, 59, 32768, 10832, 111, 116, 59, 32768, 267, 768, 100, 109, 110, 7582, 7589, 7596, 105, 108, 33024, 184, 59, 32768, 184, 112, 116, 121, 118, 59, 32768, 10674, 116, 33280, 162, 59, 101, 7603, 7605, 32768, 162, 114, 100, 111, 116, 59, 32768, 183, 114, 59, 32896, 55349, 56608, 768, 99, 101, 105, 7624, 7628, 7643, 121, 59, 32768, 1095, 99, 107, 512, 59, 109, 7635, 7637, 32768, 10003, 97, 114, 107, 59, 32768, 10003, 59, 32768, 967, 114, 1792, 59, 69, 99, 101, 102, 109, 115, 7662, 7664, 7667, 7742, 7745, 7752, 7757, 32768, 9675, 59, 32768, 10691, 768, 59, 101, 108, 7674, 7676, 7680, 32768, 710, 113, 59, 32768, 8791, 101, 1074, 7687, 0, 0, 7709, 114, 114, 111, 119, 512, 108, 114, 7695, 7701, 101, 102, 116, 59, 32768, 8634, 105, 103, 104, 116, 59, 32768, 8635, 1280, 82, 83, 97, 99, 100, 7719, 7722, 7725, 7730, 7736, 59, 32768, 174, 59, 32768, 9416, 115, 116, 59, 32768, 8859, 105, 114, 99, 59, 32768, 8858, 97, 115, 104, 59, 32768, 8861, 59, 32768, 8791, 110, 105, 110, 116, 59, 32768, 10768, 105, 100, 59, 32768, 10991, 99, 105, 114, 59, 32768, 10690, 117, 98, 115, 512, 59, 117, 7771, 7773, 32768, 9827, 105, 116, 59, 32768, 9827, 1341, 7785, 7804, 7850, 0, 7871, 111, 110, 512, 59, 101, 7791, 7793, 32768, 58, 512, 59, 113, 7798, 7800, 32768, 8788, 59, 32768, 8788, 1086, 7809, 0, 0, 7820, 97, 512, 59, 116, 7814, 7816, 32768, 44, 59, 32768, 64, 768, 59, 102, 108, 7826, 7828, 7832, 32768, 8705, 110, 59, 32768, 8728, 101, 512, 109, 120, 7838, 7844, 101, 110, 116, 59, 32768, 8705, 101, 115, 59, 32768, 8450, 824, 7854, 0, 7866, 512, 59, 100, 7858, 7860, 32768, 8773, 111, 116, 59, 32768, 10861, 110, 116, 59, 32768, 8750, 768, 102, 114, 121, 7877, 7881, 7886, 59, 32896, 55349, 56660, 111, 100, 59, 32768, 8720, 33280, 169, 59, 115, 7892, 7894, 32768, 169, 114, 59, 32768, 8471, 512, 97, 111, 7903, 7908, 114, 114, 59, 32768, 8629, 115, 115, 59, 32768, 10007, 512, 99, 117, 7918, 7923, 114, 59, 32896, 55349, 56504, 512, 98, 112, 7928, 7938, 512, 59, 101, 7933, 7935, 32768, 10959, 59, 32768, 10961, 512, 59, 101, 7943, 7945, 32768, 10960, 59, 32768, 10962, 100, 111, 116, 59, 32768, 8943, 1792, 100, 101, 108, 112, 114, 118, 119, 7969, 7983, 7996, 8009, 8057, 8147, 8152, 97, 114, 114, 512, 108, 114, 7977, 7980, 59, 32768, 10552, 59, 32768, 10549, 1089, 7989, 0, 0, 7993, 114, 59, 32768, 8926, 99, 59, 32768, 8927, 97, 114, 114, 512, 59, 112, 8004, 8006, 32768, 8630, 59, 32768, 10557, 1536, 59, 98, 99, 100, 111, 115, 8022, 8024, 8031, 8044, 8049, 8053, 32768, 8746, 114, 99, 97, 112, 59, 32768, 10824, 512, 97, 117, 8036, 8040, 112, 59, 32768, 10822, 112, 59, 32768, 10826, 111, 116, 59, 32768, 8845, 114, 59, 32768, 10821, 59, 32896, 8746, 65024, 1024, 97, 108, 114, 118, 8066, 8078, 8116, 8123, 114, 114, 512, 59, 109, 8073, 8075, 32768, 8631, 59, 32768, 10556, 121, 768, 101, 118, 119, 8086, 8104, 8109, 113, 1089, 8093, 0, 0, 8099, 114, 101, 99, 59, 32768, 8926, 117, 99, 99, 59, 32768, 8927, 101, 101, 59, 32768, 8910, 101, 100, 103, 101, 59, 32768, 8911, 101, 110, 33024, 164, 59, 32768, 164, 101, 97, 114, 114, 111, 119, 512, 108, 114, 8134, 8140, 101, 102, 116, 59, 32768, 8630, 105, 103, 104, 116, 59, 32768, 8631, 101, 101, 59, 32768, 8910, 101, 100, 59, 32768, 8911, 512, 99, 105, 8162, 8170, 111, 110, 105, 110, 116, 59, 32768, 8754, 110, 116, 59, 32768, 8753, 108, 99, 116, 121, 59, 32768, 9005, 4864, 65, 72, 97, 98, 99, 100, 101, 102, 104, 105, 106, 108, 111, 114, 115, 116, 117, 119, 122, 8221, 8226, 8231, 8267, 8282, 8296, 8327, 8351, 8366, 8379, 8466, 8471, 8487, 8621, 8647, 8676, 8697, 8712, 8720, 114, 114, 59, 32768, 8659, 97, 114, 59, 32768, 10597, 1024, 103, 108, 114, 115, 8240, 8246, 8252, 8256, 103, 101, 114, 59, 32768, 8224, 101, 116, 104, 59, 32768, 8504, 114, 59, 32768, 8595, 104, 512, 59, 118, 8262, 8264, 32768, 8208, 59, 32768, 8867, 572, 8271, 8278, 97, 114, 111, 119, 59, 32768, 10511, 97, 99, 59, 32768, 733, 512, 97, 121, 8287, 8293, 114, 111, 110, 59, 32768, 271, 59, 32768, 1076, 768, 59, 97, 111, 8303, 8305, 8320, 32768, 8518, 512, 103, 114, 8310, 8316, 103, 101, 114, 59, 32768, 8225, 114, 59, 32768, 8650, 116, 115, 101, 113, 59, 32768, 10871, 768, 103, 108, 109, 8334, 8339, 8344, 33024, 176, 59, 32768, 176, 116, 97, 59, 32768, 948, 112, 116, 121, 118, 59, 32768, 10673, 512, 105, 114, 8356, 8362, 115, 104, 116, 59, 32768, 10623, 59, 32896, 55349, 56609, 97, 114, 512, 108, 114, 8373, 8376, 59, 32768, 8643, 59, 32768, 8642, 1280, 97, 101, 103, 115, 118, 8390, 8418, 8421, 8428, 8433, 109, 768, 59, 111, 115, 8398, 8400, 8415, 32768, 8900, 110, 100, 512, 59, 115, 8407, 8409, 32768, 8900, 117, 105, 116, 59, 32768, 9830, 59, 32768, 9830, 59, 32768, 168, 97, 109, 109, 97, 59, 32768, 989, 105, 110, 59, 32768, 8946, 768, 59, 105, 111, 8440, 8442, 8461, 32768, 247, 100, 101, 33280, 247, 59, 111, 8450, 8452, 32768, 247, 110, 116, 105, 109, 101, 115, 59, 32768, 8903, 110, 120, 59, 32768, 8903, 99, 121, 59, 32768, 1106, 99, 1088, 8478, 0, 0, 8483, 114, 110, 59, 32768, 8990, 111, 112, 59, 32768, 8973, 1280, 108, 112, 116, 117, 119, 8498, 8504, 8509, 8556, 8570, 108, 97, 114, 59, 32768, 36, 102, 59, 32896, 55349, 56661, 1280, 59, 101, 109, 112, 115, 8520, 8522, 8535, 8542, 8548, 32768, 729, 113, 512, 59, 100, 8528, 8530, 32768, 8784, 111, 116, 59, 32768, 8785, 105, 110, 117, 115, 59, 32768, 8760, 108, 117, 115, 59, 32768, 8724, 113, 117, 97, 114, 101, 59, 32768, 8865, 98, 108, 101, 98, 97, 114, 119, 101, 100, 103, 101, 59, 32768, 8966, 110, 768, 97, 100, 104, 8578, 8585, 8597, 114, 114, 111, 119, 59, 32768, 8595, 111, 119, 110, 97, 114, 114, 111, 119, 115, 59, 32768, 8650, 97, 114, 112, 111, 111, 110, 512, 108, 114, 8608, 8614, 101, 102, 116, 59, 32768, 8643, 105, 103, 104, 116, 59, 32768, 8642, 563, 8625, 8633, 107, 97, 114, 111, 119, 59, 32768, 10512, 1088, 8638, 0, 0, 8643, 114, 110, 59, 32768, 8991, 111, 112, 59, 32768, 8972, 768, 99, 111, 116, 8654, 8666, 8670, 512, 114, 121, 8659, 8663, 59, 32896, 55349, 56505, 59, 32768, 1109, 108, 59, 32768, 10742, 114, 111, 107, 59, 32768, 273, 512, 100, 114, 8681, 8686, 111, 116, 59, 32768, 8945, 105, 512, 59, 102, 8692, 8694, 32768, 9663, 59, 32768, 9662, 512, 97, 104, 8702, 8707, 114, 114, 59, 32768, 8693, 97, 114, 59, 32768, 10607, 97, 110, 103, 108, 101, 59, 32768, 10662, 512, 99, 105, 8725, 8729, 121, 59, 32768, 1119, 103, 114, 97, 114, 114, 59, 32768, 10239, 4608, 68, 97, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 8774, 8788, 8807, 8844, 8849, 8852, 8866, 8895, 8929, 8977, 8989, 9004, 9046, 9136, 9151, 9171, 9184, 9199, 512, 68, 111, 8779, 8784, 111, 116, 59, 32768, 10871, 116, 59, 32768, 8785, 512, 99, 115, 8793, 8801, 117, 116, 101, 33024, 233, 59, 32768, 233, 116, 101, 114, 59, 32768, 10862, 1024, 97, 105, 111, 121, 8816, 8822, 8835, 8841, 114, 111, 110, 59, 32768, 283, 114, 512, 59, 99, 8828, 8830, 32768, 8790, 33024, 234, 59, 32768, 234, 108, 111, 110, 59, 32768, 8789, 59, 32768, 1101, 111, 116, 59, 32768, 279, 59, 32768, 8519, 512, 68, 114, 8857, 8862, 111, 116, 59, 32768, 8786, 59, 32896, 55349, 56610, 768, 59, 114, 115, 8873, 8875, 8883, 32768, 10906, 97, 118, 101, 33024, 232, 59, 32768, 232, 512, 59, 100, 8888, 8890, 32768, 10902, 111, 116, 59, 32768, 10904, 1024, 59, 105, 108, 115, 8904, 8906, 8914, 8917, 32768, 10905, 110, 116, 101, 114, 115, 59, 32768, 9191, 59, 32768, 8467, 512, 59, 100, 8922, 8924, 32768, 10901, 111, 116, 59, 32768, 10903, 768, 97, 112, 115, 8936, 8941, 8960, 99, 114, 59, 32768, 275, 116, 121, 768, 59, 115, 118, 8950, 8952, 8957, 32768, 8709, 101, 116, 59, 32768, 8709, 59, 32768, 8709, 112, 512, 49, 59, 8966, 8975, 516, 8970, 8973, 59, 32768, 8196, 59, 32768, 8197, 32768, 8195, 512, 103, 115, 8982, 8985, 59, 32768, 331, 112, 59, 32768, 8194, 512, 103, 112, 8994, 8999, 111, 110, 59, 32768, 281, 102, 59, 32896, 55349, 56662, 768, 97, 108, 115, 9011, 9023, 9028, 114, 512, 59, 115, 9017, 9019, 32768, 8917, 108, 59, 32768, 10723, 117, 115, 59, 32768, 10865, 105, 768, 59, 108, 118, 9036, 9038, 9043, 32768, 949, 111, 110, 59, 32768, 949, 59, 32768, 1013, 1024, 99, 115, 117, 118, 9055, 9071, 9099, 9128, 512, 105, 111, 9060, 9065, 114, 99, 59, 32768, 8790, 108, 111, 110, 59, 32768, 8789, 1082, 9077, 0, 0, 9081, 109, 59, 32768, 8770, 97, 110, 116, 512, 103, 108, 9088, 9093, 116, 114, 59, 32768, 10902, 101, 115, 115, 59, 32768, 10901, 768, 97, 101, 105, 9106, 9111, 9116, 108, 115, 59, 32768, 61, 115, 116, 59, 32768, 8799, 118, 512, 59, 68, 9122, 9124, 32768, 8801, 68, 59, 32768, 10872, 112, 97, 114, 115, 108, 59, 32768, 10725, 512, 68, 97, 9141, 9146, 111, 116, 59, 32768, 8787, 114, 114, 59, 32768, 10609, 768, 99, 100, 105, 9158, 9162, 9167, 114, 59, 32768, 8495, 111, 116, 59, 32768, 8784, 109, 59, 32768, 8770, 512, 97, 104, 9176, 9179, 59, 32768, 951, 33024, 240, 59, 32768, 240, 512, 109, 114, 9189, 9195, 108, 33024, 235, 59, 32768, 235, 111, 59, 32768, 8364, 768, 99, 105, 112, 9206, 9210, 9215, 108, 59, 32768, 33, 115, 116, 59, 32768, 8707, 512, 101, 111, 9220, 9230, 99, 116, 97, 116, 105, 111, 110, 59, 32768, 8496, 110, 101, 110, 116, 105, 97, 108, 101, 59, 32768, 8519, 4914, 9262, 0, 9276, 0, 9280, 9287, 0, 0, 9318, 9324, 0, 9331, 0, 9352, 9357, 9386, 0, 9395, 9497, 108, 108, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 32768, 8786, 121, 59, 32768, 1092, 109, 97, 108, 101, 59, 32768, 9792, 768, 105, 108, 114, 9293, 9299, 9313, 108, 105, 103, 59, 32768, 64259, 1082, 9305, 0, 0, 9309, 103, 59, 32768, 64256, 105, 103, 59, 32768, 64260, 59, 32896, 55349, 56611, 108, 105, 103, 59, 32768, 64257, 108, 105, 103, 59, 32896, 102, 106, 768, 97, 108, 116, 9337, 9341, 9346, 116, 59, 32768, 9837, 105, 103, 59, 32768, 64258, 110, 115, 59, 32768, 9649, 111, 102, 59, 32768, 402, 833, 9361, 0, 9366, 102, 59, 32896, 55349, 56663, 512, 97, 107, 9370, 9375, 108, 108, 59, 32768, 8704, 512, 59, 118, 9380, 9382, 32768, 8916, 59, 32768, 10969, 97, 114, 116, 105, 110, 116, 59, 32768, 10765, 512, 97, 111, 9399, 9491, 512, 99, 115, 9404, 9487, 1794, 9413, 9443, 9453, 9470, 9474, 0, 9484, 1795, 9421, 9426, 9429, 9434, 9437, 0, 9440, 33024, 189, 59, 32768, 189, 59, 32768, 8531, 33024, 188, 59, 32768, 188, 59, 32768, 8533, 59, 32768, 8537, 59, 32768, 8539, 772, 9447, 0, 9450, 59, 32768, 8532, 59, 32768, 8534, 1285, 9459, 9464, 0, 0, 9467, 33024, 190, 59, 32768, 190, 59, 32768, 8535, 59, 32768, 8540, 53, 59, 32768, 8536, 775, 9478, 0, 9481, 59, 32768, 8538, 59, 32768, 8541, 56, 59, 32768, 8542, 108, 59, 32768, 8260, 119, 110, 59, 32768, 8994, 99, 114, 59, 32896, 55349, 56507, 4352, 69, 97, 98, 99, 100, 101, 102, 103, 105, 106, 108, 110, 111, 114, 115, 116, 118, 9537, 9547, 9575, 9582, 9595, 9600, 9679, 9684, 9694, 9700, 9705, 9725, 9773, 9779, 9785, 9810, 9917, 512, 59, 108, 9542, 9544, 32768, 8807, 59, 32768, 10892, 768, 99, 109, 112, 9554, 9560, 9572, 117, 116, 101, 59, 32768, 501, 109, 97, 512, 59, 100, 9567, 9569, 32768, 947, 59, 32768, 989, 59, 32768, 10886, 114, 101, 118, 101, 59, 32768, 287, 512, 105, 121, 9587, 9592, 114, 99, 59, 32768, 285, 59, 32768, 1075, 111, 116, 59, 32768, 289, 1024, 59, 108, 113, 115, 9609, 9611, 9614, 9633, 32768, 8805, 59, 32768, 8923, 768, 59, 113, 115, 9621, 9623, 9626, 32768, 8805, 59, 32768, 8807, 108, 97, 110, 116, 59, 32768, 10878, 1024, 59, 99, 100, 108, 9642, 9644, 9648, 9667, 32768, 10878, 99, 59, 32768, 10921, 111, 116, 512, 59, 111, 9655, 9657, 32768, 10880, 512, 59, 108, 9662, 9664, 32768, 10882, 59, 32768, 10884, 512, 59, 101, 9672, 9675, 32896, 8923, 65024, 115, 59, 32768, 10900, 114, 59, 32896, 55349, 56612, 512, 59, 103, 9689, 9691, 32768, 8811, 59, 32768, 8921, 109, 101, 108, 59, 32768, 8503, 99, 121, 59, 32768, 1107, 1024, 59, 69, 97, 106, 9714, 9716, 9719, 9722, 32768, 8823, 59, 32768, 10898, 59, 32768, 10917, 59, 32768, 10916, 1024, 69, 97, 101, 115, 9734, 9737, 9751, 9768, 59, 32768, 8809, 112, 512, 59, 112, 9743, 9745, 32768, 10890, 114, 111, 120, 59, 32768, 10890, 512, 59, 113, 9756, 9758, 32768, 10888, 512, 59, 113, 9763, 9765, 32768, 10888, 59, 32768, 8809, 105, 109, 59, 32768, 8935, 112, 102, 59, 32896, 55349, 56664, 97, 118, 101, 59, 32768, 96, 512, 99, 105, 9790, 9794, 114, 59, 32768, 8458, 109, 768, 59, 101, 108, 9802, 9804, 9807, 32768, 8819, 59, 32768, 10894, 59, 32768, 10896, 34304, 62, 59, 99, 100, 108, 113, 114, 9824, 9826, 9838, 9843, 9849, 9856, 32768, 62, 512, 99, 105, 9831, 9834, 59, 32768, 10919, 114, 59, 32768, 10874, 111, 116, 59, 32768, 8919, 80, 97, 114, 59, 32768, 10645, 117, 101, 115, 116, 59, 32768, 10876, 1280, 97, 100, 101, 108, 115, 9867, 9882, 9887, 9906, 9912, 833, 9872, 0, 9879, 112, 114, 111, 120, 59, 32768, 10886, 114, 59, 32768, 10616, 111, 116, 59, 32768, 8919, 113, 512, 108, 113, 9893, 9899, 101, 115, 115, 59, 32768, 8923, 108, 101, 115, 115, 59, 32768, 10892, 101, 115, 115, 59, 32768, 8823, 105, 109, 59, 32768, 8819, 512, 101, 110, 9922, 9932, 114, 116, 110, 101, 113, 113, 59, 32896, 8809, 65024, 69, 59, 32896, 8809, 65024, 2560, 65, 97, 98, 99, 101, 102, 107, 111, 115, 121, 9958, 9963, 10015, 10020, 10026, 10060, 10065, 10085, 10147, 10171, 114, 114, 59, 32768, 8660, 1024, 105, 108, 109, 114, 9972, 9978, 9982, 9988, 114, 115, 112, 59, 32768, 8202, 102, 59, 32768, 189, 105, 108, 116, 59, 32768, 8459, 512, 100, 114, 9993, 9998, 99, 121, 59, 32768, 1098, 768, 59, 99, 119, 10005, 10007, 10012, 32768, 8596, 105, 114, 59, 32768, 10568, 59, 32768, 8621, 97, 114, 59, 32768, 8463, 105, 114, 99, 59, 32768, 293, 768, 97, 108, 114, 10033, 10048, 10054, 114, 116, 115, 512, 59, 117, 10041, 10043, 32768, 9829, 105, 116, 59, 32768, 9829, 108, 105, 112, 59, 32768, 8230, 99, 111, 110, 59, 32768, 8889, 114, 59, 32896, 55349, 56613, 115, 512, 101, 119, 10071, 10078, 97, 114, 111, 119, 59, 32768, 10533, 97, 114, 111, 119, 59, 32768, 10534, 1280, 97, 109, 111, 112, 114, 10096, 10101, 10107, 10136, 10141, 114, 114, 59, 32768, 8703, 116, 104, 116, 59, 32768, 8763, 107, 512, 108, 114, 10113, 10124, 101, 102, 116, 97, 114, 114, 111, 119, 59, 32768, 8617, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8618, 102, 59, 32896, 55349, 56665, 98, 97, 114, 59, 32768, 8213, 768, 99, 108, 116, 10154, 10159, 10165, 114, 59, 32896, 55349, 56509, 97, 115, 104, 59, 32768, 8463, 114, 111, 107, 59, 32768, 295, 512, 98, 112, 10176, 10182, 117, 108, 108, 59, 32768, 8259, 104, 101, 110, 59, 32768, 8208, 5426, 10211, 0, 10220, 0, 10239, 10255, 10267, 0, 10276, 10312, 0, 0, 10318, 10371, 10458, 10485, 10491, 0, 10500, 10545, 10558, 99, 117, 116, 101, 33024, 237, 59, 32768, 237, 768, 59, 105, 121, 10226, 10228, 10235, 32768, 8291, 114, 99, 33024, 238, 59, 32768, 238, 59, 32768, 1080, 512, 99, 120, 10243, 10247, 121, 59, 32768, 1077, 99, 108, 33024, 161, 59, 32768, 161, 512, 102, 114, 10259, 10262, 59, 32768, 8660, 59, 32896, 55349, 56614, 114, 97, 118, 101, 33024, 236, 59, 32768, 236, 1024, 59, 105, 110, 111, 10284, 10286, 10300, 10306, 32768, 8520, 512, 105, 110, 10291, 10296, 110, 116, 59, 32768, 10764, 116, 59, 32768, 8749, 102, 105, 110, 59, 32768, 10716, 116, 97, 59, 32768, 8489, 108, 105, 103, 59, 32768, 307, 768, 97, 111, 112, 10324, 10361, 10365, 768, 99, 103, 116, 10331, 10335, 10357, 114, 59, 32768, 299, 768, 101, 108, 112, 10342, 10345, 10351, 59, 32768, 8465, 105, 110, 101, 59, 32768, 8464, 97, 114, 116, 59, 32768, 8465, 104, 59, 32768, 305, 102, 59, 32768, 8887, 101, 100, 59, 32768, 437, 1280, 59, 99, 102, 111, 116, 10381, 10383, 10389, 10403, 10409, 32768, 8712, 97, 114, 101, 59, 32768, 8453, 105, 110, 512, 59, 116, 10396, 10398, 32768, 8734, 105, 101, 59, 32768, 10717, 100, 111, 116, 59, 32768, 305, 1280, 59, 99, 101, 108, 112, 10420, 10422, 10427, 10444, 10451, 32768, 8747, 97, 108, 59, 32768, 8890, 512, 103, 114, 10432, 10438, 101, 114, 115, 59, 32768, 8484, 99, 97, 108, 59, 32768, 8890, 97, 114, 104, 107, 59, 32768, 10775, 114, 111, 100, 59, 32768, 10812, 1024, 99, 103, 112, 116, 10466, 10470, 10475, 10480, 121, 59, 32768, 1105, 111, 110, 59, 32768, 303, 102, 59, 32896, 55349, 56666, 97, 59, 32768, 953, 114, 111, 100, 59, 32768, 10812, 117, 101, 115, 116, 33024, 191, 59, 32768, 191, 512, 99, 105, 10504, 10509, 114, 59, 32896, 55349, 56510, 110, 1280, 59, 69, 100, 115, 118, 10521, 10523, 10526, 10531, 10541, 32768, 8712, 59, 32768, 8953, 111, 116, 59, 32768, 8949, 512, 59, 118, 10536, 10538, 32768, 8948, 59, 32768, 8947, 59, 32768, 8712, 512, 59, 105, 10549, 10551, 32768, 8290, 108, 100, 101, 59, 32768, 297, 828, 10562, 0, 10567, 99, 121, 59, 32768, 1110, 108, 33024, 239, 59, 32768, 239, 1536, 99, 102, 109, 111, 115, 117, 10585, 10598, 10603, 10609, 10615, 10630, 512, 105, 121, 10590, 10595, 114, 99, 59, 32768, 309, 59, 32768, 1081, 114, 59, 32896, 55349, 56615, 97, 116, 104, 59, 32768, 567, 112, 102, 59, 32896, 55349, 56667, 820, 10620, 0, 10625, 114, 59, 32896, 55349, 56511, 114, 99, 121, 59, 32768, 1112, 107, 99, 121, 59, 32768, 1108, 2048, 97, 99, 102, 103, 104, 106, 111, 115, 10653, 10666, 10680, 10685, 10692, 10697, 10702, 10708, 112, 112, 97, 512, 59, 118, 10661, 10663, 32768, 954, 59, 32768, 1008, 512, 101, 121, 10671, 10677, 100, 105, 108, 59, 32768, 311, 59, 32768, 1082, 114, 59, 32896, 55349, 56616, 114, 101, 101, 110, 59, 32768, 312, 99, 121, 59, 32768, 1093, 99, 121, 59, 32768, 1116, 112, 102, 59, 32896, 55349, 56668, 99, 114, 59, 32896, 55349, 56512, 5888, 65, 66, 69, 72, 97, 98, 99, 100, 101, 102, 103, 104, 106, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 10761, 10783, 10789, 10799, 10804, 10957, 11011, 11047, 11094, 11349, 11372, 11382, 11409, 11414, 11451, 11478, 11526, 11698, 11711, 11755, 11823, 11910, 11929, 768, 97, 114, 116, 10768, 10773, 10777, 114, 114, 59, 32768, 8666, 114, 59, 32768, 8656, 97, 105, 108, 59, 32768, 10523, 97, 114, 114, 59, 32768, 10510, 512, 59, 103, 10794, 10796, 32768, 8806, 59, 32768, 10891, 97, 114, 59, 32768, 10594, 4660, 10824, 0, 10830, 0, 10838, 0, 0, 0, 0, 0, 10844, 10850, 0, 10867, 10870, 10877, 0, 10933, 117, 116, 101, 59, 32768, 314, 109, 112, 116, 121, 118, 59, 32768, 10676, 114, 97, 110, 59, 32768, 8466, 98, 100, 97, 59, 32768, 955, 103, 768, 59, 100, 108, 10857, 10859, 10862, 32768, 10216, 59, 32768, 10641, 101, 59, 32768, 10216, 59, 32768, 10885, 117, 111, 33024, 171, 59, 32768, 171, 114, 2048, 59, 98, 102, 104, 108, 112, 115, 116, 10894, 10896, 10907, 10911, 10915, 10919, 10923, 10928, 32768, 8592, 512, 59, 102, 10901, 10903, 32768, 8676, 115, 59, 32768, 10527, 115, 59, 32768, 10525, 107, 59, 32768, 8617, 112, 59, 32768, 8619, 108, 59, 32768, 10553, 105, 109, 59, 32768, 10611, 108, 59, 32768, 8610, 768, 59, 97, 101, 10939, 10941, 10946, 32768, 10923, 105, 108, 59, 32768, 10521, 512, 59, 115, 10951, 10953, 32768, 10925, 59, 32896, 10925, 65024, 768, 97, 98, 114, 10964, 10969, 10974, 114, 114, 59, 32768, 10508, 114, 107, 59, 32768, 10098, 512, 97, 107, 10979, 10991, 99, 512, 101, 107, 10985, 10988, 59, 32768, 123, 59, 32768, 91, 512, 101, 115, 10996, 10999, 59, 32768, 10635, 108, 512, 100, 117, 11005, 11008, 59, 32768, 10639, 59, 32768, 10637, 1024, 97, 101, 117, 121, 11020, 11026, 11040, 11044, 114, 111, 110, 59, 32768, 318, 512, 100, 105, 11031, 11036, 105, 108, 59, 32768, 316, 108, 59, 32768, 8968, 98, 59, 32768, 123, 59, 32768, 1083, 1024, 99, 113, 114, 115, 11056, 11060, 11072, 11090, 97, 59, 32768, 10550, 117, 111, 512, 59, 114, 11067, 11069, 32768, 8220, 59, 32768, 8222, 512, 100, 117, 11077, 11083, 104, 97, 114, 59, 32768, 10599, 115, 104, 97, 114, 59, 32768, 10571, 104, 59, 32768, 8626, 1280, 59, 102, 103, 113, 115, 11105, 11107, 11228, 11231, 11250, 32768, 8804, 116, 1280, 97, 104, 108, 114, 116, 11119, 11136, 11157, 11169, 11216, 114, 114, 111, 119, 512, 59, 116, 11128, 11130, 32768, 8592, 97, 105, 108, 59, 32768, 8610, 97, 114, 112, 111, 111, 110, 512, 100, 117, 11147, 11153, 111, 119, 110, 59, 32768, 8637, 112, 59, 32768, 8636, 101, 102, 116, 97, 114, 114, 111, 119, 115, 59, 32768, 8647, 105, 103, 104, 116, 768, 97, 104, 115, 11180, 11194, 11204, 114, 114, 111, 119, 512, 59, 115, 11189, 11191, 32768, 8596, 59, 32768, 8646, 97, 114, 112, 111, 111, 110, 115, 59, 32768, 8651, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 32768, 8621, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 32768, 8907, 59, 32768, 8922, 768, 59, 113, 115, 11238, 11240, 11243, 32768, 8804, 59, 32768, 8806, 108, 97, 110, 116, 59, 32768, 10877, 1280, 59, 99, 100, 103, 115, 11261, 11263, 11267, 11286, 11298, 32768, 10877, 99, 59, 32768, 10920, 111, 116, 512, 59, 111, 11274, 11276, 32768, 10879, 512, 59, 114, 11281, 11283, 32768, 10881, 59, 32768, 10883, 512, 59, 101, 11291, 11294, 32896, 8922, 65024, 115, 59, 32768, 10899, 1280, 97, 100, 101, 103, 115, 11309, 11317, 11322, 11339, 11344, 112, 112, 114, 111, 120, 59, 32768, 10885, 111, 116, 59, 32768, 8918, 113, 512, 103, 113, 11328, 11333, 116, 114, 59, 32768, 8922, 103, 116, 114, 59, 32768, 10891, 116, 114, 59, 32768, 8822, 105, 109, 59, 32768, 8818, 768, 105, 108, 114, 11356, 11362, 11368, 115, 104, 116, 59, 32768, 10620, 111, 111, 114, 59, 32768, 8970, 59, 32896, 55349, 56617, 512, 59, 69, 11377, 11379, 32768, 8822, 59, 32768, 10897, 562, 11386, 11405, 114, 512, 100, 117, 11391, 11394, 59, 32768, 8637, 512, 59, 108, 11399, 11401, 32768, 8636, 59, 32768, 10602, 108, 107, 59, 32768, 9604, 99, 121, 59, 32768, 1113, 1280, 59, 97, 99, 104, 116, 11425, 11427, 11432, 11440, 11446, 32768, 8810, 114, 114, 59, 32768, 8647, 111, 114, 110, 101, 114, 59, 32768, 8990, 97, 114, 100, 59, 32768, 10603, 114, 105, 59, 32768, 9722, 512, 105, 111, 11456, 11462, 100, 111, 116, 59, 32768, 320, 117, 115, 116, 512, 59, 97, 11470, 11472, 32768, 9136, 99, 104, 101, 59, 32768, 9136, 1024, 69, 97, 101, 115, 11487, 11490, 11504, 11521, 59, 32768, 8808, 112, 512, 59, 112, 11496, 11498, 32768, 10889, 114, 111, 120, 59, 32768, 10889, 512, 59, 113, 11509, 11511, 32768, 10887, 512, 59, 113, 11516, 11518, 32768, 10887, 59, 32768, 8808, 105, 109, 59, 32768, 8934, 2048, 97, 98, 110, 111, 112, 116, 119, 122, 11543, 11556, 11561, 11616, 11640, 11660, 11667, 11680, 512, 110, 114, 11548, 11552, 103, 59, 32768, 10220, 114, 59, 32768, 8701, 114, 107, 59, 32768, 10214, 103, 768, 108, 109, 114, 11569, 11596, 11604, 101, 102, 116, 512, 97, 114, 11577, 11584, 114, 114, 111, 119, 59, 32768, 10229, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10231, 97, 112, 115, 116, 111, 59, 32768, 10236, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10230, 112, 97, 114, 114, 111, 119, 512, 108, 114, 11627, 11633, 101, 102, 116, 59, 32768, 8619, 105, 103, 104, 116, 59, 32768, 8620, 768, 97, 102, 108, 11647, 11651, 11655, 114, 59, 32768, 10629, 59, 32896, 55349, 56669, 117, 115, 59, 32768, 10797, 105, 109, 101, 115, 59, 32768, 10804, 562, 11671, 11676, 115, 116, 59, 32768, 8727, 97, 114, 59, 32768, 95, 768, 59, 101, 102, 11687, 11689, 11695, 32768, 9674, 110, 103, 101, 59, 32768, 9674, 59, 32768, 10731, 97, 114, 512, 59, 108, 11705, 11707, 32768, 40, 116, 59, 32768, 10643, 1280, 97, 99, 104, 109, 116, 11722, 11727, 11735, 11747, 11750, 114, 114, 59, 32768, 8646, 111, 114, 110, 101, 114, 59, 32768, 8991, 97, 114, 512, 59, 100, 11742, 11744, 32768, 8651, 59, 32768, 10605, 59, 32768, 8206, 114, 105, 59, 32768, 8895, 1536, 97, 99, 104, 105, 113, 116, 11768, 11774, 11779, 11782, 11798, 11817, 113, 117, 111, 59, 32768, 8249, 114, 59, 32896, 55349, 56513, 59, 32768, 8624, 109, 768, 59, 101, 103, 11790, 11792, 11795, 32768, 8818, 59, 32768, 10893, 59, 32768, 10895, 512, 98, 117, 11803, 11806, 59, 32768, 91, 111, 512, 59, 114, 11812, 11814, 32768, 8216, 59, 32768, 8218, 114, 111, 107, 59, 32768, 322, 34816, 60, 59, 99, 100, 104, 105, 108, 113, 114, 11841, 11843, 11855, 11860, 11866, 11872, 11878, 11885, 32768, 60, 512, 99, 105, 11848, 11851, 59, 32768, 10918, 114, 59, 32768, 10873, 111, 116, 59, 32768, 8918, 114, 101, 101, 59, 32768, 8907, 109, 101, 115, 59, 32768, 8905, 97, 114, 114, 59, 32768, 10614, 117, 101, 115, 116, 59, 32768, 10875, 512, 80, 105, 11890, 11895, 97, 114, 59, 32768, 10646, 768, 59, 101, 102, 11902, 11904, 11907, 32768, 9667, 59, 32768, 8884, 59, 32768, 9666, 114, 512, 100, 117, 11916, 11923, 115, 104, 97, 114, 59, 32768, 10570, 104, 97, 114, 59, 32768, 10598, 512, 101, 110, 11934, 11944, 114, 116, 110, 101, 113, 113, 59, 32896, 8808, 65024, 69, 59, 32896, 8808, 65024, 3584, 68, 97, 99, 100, 101, 102, 104, 105, 108, 110, 111, 112, 115, 117, 11978, 11984, 12061, 12075, 12081, 12095, 12100, 12104, 12170, 12181, 12188, 12204, 12207, 12223, 68, 111, 116, 59, 32768, 8762, 1024, 99, 108, 112, 114, 11993, 11999, 12019, 12055, 114, 33024, 175, 59, 32768, 175, 512, 101, 116, 12004, 12007, 59, 32768, 9794, 512, 59, 101, 12012, 12014, 32768, 10016, 115, 101, 59, 32768, 10016, 512, 59, 115, 12024, 12026, 32768, 8614, 116, 111, 1024, 59, 100, 108, 117, 12037, 12039, 12045, 12051, 32768, 8614, 111, 119, 110, 59, 32768, 8615, 101, 102, 116, 59, 32768, 8612, 112, 59, 32768, 8613, 107, 101, 114, 59, 32768, 9646, 512, 111, 121, 12066, 12072, 109, 109, 97, 59, 32768, 10793, 59, 32768, 1084, 97, 115, 104, 59, 32768, 8212, 97, 115, 117, 114, 101, 100, 97, 110, 103, 108, 101, 59, 32768, 8737, 114, 59, 32896, 55349, 56618, 111, 59, 32768, 8487, 768, 99, 100, 110, 12111, 12118, 12146, 114, 111, 33024, 181, 59, 32768, 181, 1024, 59, 97, 99, 100, 12127, 12129, 12134, 12139, 32768, 8739, 115, 116, 59, 32768, 42, 105, 114, 59, 32768, 10992, 111, 116, 33024, 183, 59, 32768, 183, 117, 115, 768, 59, 98, 100, 12155, 12157, 12160, 32768, 8722, 59, 32768, 8863, 512, 59, 117, 12165, 12167, 32768, 8760, 59, 32768, 10794, 564, 12174, 12178, 112, 59, 32768, 10971, 114, 59, 32768, 8230, 112, 108, 117, 115, 59, 32768, 8723, 512, 100, 112, 12193, 12199, 101, 108, 115, 59, 32768, 8871, 102, 59, 32896, 55349, 56670, 59, 32768, 8723, 512, 99, 116, 12212, 12217, 114, 59, 32896, 55349, 56514, 112, 111, 115, 59, 32768, 8766, 768, 59, 108, 109, 12230, 12232, 12240, 32768, 956, 116, 105, 109, 97, 112, 59, 32768, 8888, 97, 112, 59, 32768, 8888, 6144, 71, 76, 82, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 12294, 12315, 12364, 12376, 12393, 12472, 12496, 12547, 12553, 12636, 12641, 12703, 12725, 12747, 12752, 12876, 12881, 12957, 13033, 13089, 13294, 13359, 13384, 13499, 512, 103, 116, 12299, 12303, 59, 32896, 8921, 824, 512, 59, 118, 12308, 12311, 32896, 8811, 8402, 59, 32896, 8811, 824, 768, 101, 108, 116, 12322, 12348, 12352, 102, 116, 512, 97, 114, 12329, 12336, 114, 114, 111, 119, 59, 32768, 8653, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8654, 59, 32896, 8920, 824, 512, 59, 118, 12357, 12360, 32896, 8810, 8402, 59, 32896, 8810, 824, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8655, 512, 68, 100, 12381, 12387, 97, 115, 104, 59, 32768, 8879, 97, 115, 104, 59, 32768, 8878, 1280, 98, 99, 110, 112, 116, 12404, 12409, 12415, 12420, 12452, 108, 97, 59, 32768, 8711, 117, 116, 101, 59, 32768, 324, 103, 59, 32896, 8736, 8402, 1280, 59, 69, 105, 111, 112, 12431, 12433, 12437, 12442, 12446, 32768, 8777, 59, 32896, 10864, 824, 100, 59, 32896, 8779, 824, 115, 59, 32768, 329, 114, 111, 120, 59, 32768, 8777, 117, 114, 512, 59, 97, 12459, 12461, 32768, 9838, 108, 512, 59, 115, 12467, 12469, 32768, 9838, 59, 32768, 8469, 836, 12477, 0, 12483, 112, 33024, 160, 59, 32768, 160, 109, 112, 512, 59, 101, 12489, 12492, 32896, 8782, 824, 59, 32896, 8783, 824, 1280, 97, 101, 111, 117, 121, 12507, 12519, 12525, 12540, 12544, 833, 12512, 0, 12515, 59, 32768, 10819, 111, 110, 59, 32768, 328, 100, 105, 108, 59, 32768, 326, 110, 103, 512, 59, 100, 12532, 12534, 32768, 8775, 111, 116, 59, 32896, 10861, 824, 112, 59, 32768, 10818, 59, 32768, 1085, 97, 115, 104, 59, 32768, 8211, 1792, 59, 65, 97, 100, 113, 115, 120, 12568, 12570, 12575, 12596, 12602, 12608, 12623, 32768, 8800, 114, 114, 59, 32768, 8663, 114, 512, 104, 114, 12581, 12585, 107, 59, 32768, 10532, 512, 59, 111, 12590, 12592, 32768, 8599, 119, 59, 32768, 8599, 111, 116, 59, 32896, 8784, 824, 117, 105, 118, 59, 32768, 8802, 512, 101, 105, 12613, 12618, 97, 114, 59, 32768, 10536, 109, 59, 32896, 8770, 824, 105, 115, 116, 512, 59, 115, 12631, 12633, 32768, 8708, 59, 32768, 8708, 114, 59, 32896, 55349, 56619, 1024, 69, 101, 115, 116, 12650, 12654, 12688, 12693, 59, 32896, 8807, 824, 768, 59, 113, 115, 12661, 12663, 12684, 32768, 8817, 768, 59, 113, 115, 12670, 12672, 12676, 32768, 8817, 59, 32896, 8807, 824, 108, 97, 110, 116, 59, 32896, 10878, 824, 59, 32896, 10878, 824, 105, 109, 59, 32768, 8821, 512, 59, 114, 12698, 12700, 32768, 8815, 59, 32768, 8815, 768, 65, 97, 112, 12710, 12715, 12720, 114, 114, 59, 32768, 8654, 114, 114, 59, 32768, 8622, 97, 114, 59, 32768, 10994, 768, 59, 115, 118, 12732, 12734, 12744, 32768, 8715, 512, 59, 100, 12739, 12741, 32768, 8956, 59, 32768, 8954, 59, 32768, 8715, 99, 121, 59, 32768, 1114, 1792, 65, 69, 97, 100, 101, 115, 116, 12767, 12772, 12776, 12781, 12785, 12853, 12858, 114, 114, 59, 32768, 8653, 59, 32896, 8806, 824, 114, 114, 59, 32768, 8602, 114, 59, 32768, 8229, 1024, 59, 102, 113, 115, 12794, 12796, 12821, 12842, 32768, 8816, 116, 512, 97, 114, 12802, 12809, 114, 114, 111, 119, 59, 32768, 8602, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8622, 768, 59, 113, 115, 12828, 12830, 12834, 32768, 8816, 59, 32896, 8806, 824, 108, 97, 110, 116, 59, 32896, 10877, 824, 512, 59, 115, 12847, 12850, 32896, 10877, 824, 59, 32768, 8814, 105, 109, 59, 32768, 8820, 512, 59, 114, 12863, 12865, 32768, 8814, 105, 512, 59, 101, 12871, 12873, 32768, 8938, 59, 32768, 8940, 105, 100, 59, 32768, 8740, 512, 112, 116, 12886, 12891, 102, 59, 32896, 55349, 56671, 33536, 172, 59, 105, 110, 12899, 12901, 12936, 32768, 172, 110, 1024, 59, 69, 100, 118, 12911, 12913, 12917, 12923, 32768, 8713, 59, 32896, 8953, 824, 111, 116, 59, 32896, 8949, 824, 818, 12928, 12931, 12934, 59, 32768, 8713, 59, 32768, 8951, 59, 32768, 8950, 105, 512, 59, 118, 12942, 12944, 32768, 8716, 818, 12949, 12952, 12955, 59, 32768, 8716, 59, 32768, 8958, 59, 32768, 8957, 768, 97, 111, 114, 12964, 12992, 12999, 114, 1024, 59, 97, 115, 116, 12974, 12976, 12983, 12988, 32768, 8742, 108, 108, 101, 108, 59, 32768, 8742, 108, 59, 32896, 11005, 8421, 59, 32896, 8706, 824, 108, 105, 110, 116, 59, 32768, 10772, 768, 59, 99, 101, 13006, 13008, 13013, 32768, 8832, 117, 101, 59, 32768, 8928, 512, 59, 99, 13018, 13021, 32896, 10927, 824, 512, 59, 101, 13026, 13028, 32768, 8832, 113, 59, 32896, 10927, 824, 1024, 65, 97, 105, 116, 13042, 13047, 13066, 13077, 114, 114, 59, 32768, 8655, 114, 114, 768, 59, 99, 119, 13056, 13058, 13062, 32768, 8603, 59, 32896, 10547, 824, 59, 32896, 8605, 824, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8603, 114, 105, 512, 59, 101, 13084, 13086, 32768, 8939, 59, 32768, 8941, 1792, 99, 104, 105, 109, 112, 113, 117, 13104, 13128, 13151, 13169, 13174, 13179, 13194, 1024, 59, 99, 101, 114, 13113, 13115, 13120, 13124, 32768, 8833, 117, 101, 59, 32768, 8929, 59, 32896, 10928, 824, 59, 32896, 55349, 56515, 111, 114, 116, 1086, 13137, 0, 0, 13142, 105, 100, 59, 32768, 8740, 97, 114, 97, 108, 108, 101, 108, 59, 32768, 8742, 109, 512, 59, 101, 13157, 13159, 32768, 8769, 512, 59, 113, 13164, 13166, 32768, 8772, 59, 32768, 8772, 105, 100, 59, 32768, 8740, 97, 114, 59, 32768, 8742, 115, 117, 512, 98, 112, 13186, 13190, 101, 59, 32768, 8930, 101, 59, 32768, 8931, 768, 98, 99, 112, 13201, 13241, 13254, 1024, 59, 69, 101, 115, 13210, 13212, 13216, 13219, 32768, 8836, 59, 32896, 10949, 824, 59, 32768, 8840, 101, 116, 512, 59, 101, 13226, 13229, 32896, 8834, 8402, 113, 512, 59, 113, 13235, 13237, 32768, 8840, 59, 32896, 10949, 824, 99, 512, 59, 101, 13247, 13249, 32768, 8833, 113, 59, 32896, 10928, 824, 1024, 59, 69, 101, 115, 13263, 13265, 13269, 13272, 32768, 8837, 59, 32896, 10950, 824, 59, 32768, 8841, 101, 116, 512, 59, 101, 13279, 13282, 32896, 8835, 8402, 113, 512, 59, 113, 13288, 13290, 32768, 8841, 59, 32896, 10950, 824, 1024, 103, 105, 108, 114, 13303, 13307, 13315, 13319, 108, 59, 32768, 8825, 108, 100, 101, 33024, 241, 59, 32768, 241, 103, 59, 32768, 8824, 105, 97, 110, 103, 108, 101, 512, 108, 114, 13330, 13344, 101, 102, 116, 512, 59, 101, 13338, 13340, 32768, 8938, 113, 59, 32768, 8940, 105, 103, 104, 116, 512, 59, 101, 13353, 13355, 32768, 8939, 113, 59, 32768, 8941, 512, 59, 109, 13364, 13366, 32768, 957, 768, 59, 101, 115, 13373, 13375, 13380, 32768, 35, 114, 111, 59, 32768, 8470, 112, 59, 32768, 8199, 2304, 68, 72, 97, 100, 103, 105, 108, 114, 115, 13403, 13409, 13415, 13420, 13426, 13439, 13446, 13476, 13493, 97, 115, 104, 59, 32768, 8877, 97, 114, 114, 59, 32768, 10500, 112, 59, 32896, 8781, 8402, 97, 115, 104, 59, 32768, 8876, 512, 101, 116, 13431, 13435, 59, 32896, 8805, 8402, 59, 32896, 62, 8402, 110, 102, 105, 110, 59, 32768, 10718, 768, 65, 101, 116, 13453, 13458, 13462, 114, 114, 59, 32768, 10498, 59, 32896, 8804, 8402, 512, 59, 114, 13467, 13470, 32896, 60, 8402, 105, 101, 59, 32896, 8884, 8402, 512, 65, 116, 13481, 13486, 114, 114, 59, 32768, 10499, 114, 105, 101, 59, 32896, 8885, 8402, 105, 109, 59, 32896, 8764, 8402, 768, 65, 97, 110, 13506, 13511, 13532, 114, 114, 59, 32768, 8662, 114, 512, 104, 114, 13517, 13521, 107, 59, 32768, 10531, 512, 59, 111, 13526, 13528, 32768, 8598, 119, 59, 32768, 8598, 101, 97, 114, 59, 32768, 10535, 9252, 13576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13579, 0, 13596, 13617, 13653, 13659, 13673, 13695, 13708, 0, 0, 13713, 13750, 0, 13788, 13794, 0, 13815, 13890, 13913, 13937, 13944, 59, 32768, 9416, 512, 99, 115, 13583, 13591, 117, 116, 101, 33024, 243, 59, 32768, 243, 116, 59, 32768, 8859, 512, 105, 121, 13600, 13613, 114, 512, 59, 99, 13606, 13608, 32768, 8858, 33024, 244, 59, 32768, 244, 59, 32768, 1086, 1280, 97, 98, 105, 111, 115, 13627, 13632, 13638, 13642, 13646, 115, 104, 59, 32768, 8861, 108, 97, 99, 59, 32768, 337, 118, 59, 32768, 10808, 116, 59, 32768, 8857, 111, 108, 100, 59, 32768, 10684, 108, 105, 103, 59, 32768, 339, 512, 99, 114, 13663, 13668, 105, 114, 59, 32768, 10687, 59, 32896, 55349, 56620, 1600, 13680, 0, 0, 13684, 0, 13692, 110, 59, 32768, 731, 97, 118, 101, 33024, 242, 59, 32768, 242, 59, 32768, 10689, 512, 98, 109, 13699, 13704, 97, 114, 59, 32768, 10677, 59, 32768, 937, 110, 116, 59, 32768, 8750, 1024, 97, 99, 105, 116, 13721, 13726, 13741, 13746, 114, 114, 59, 32768, 8634, 512, 105, 114, 13731, 13735, 114, 59, 32768, 10686, 111, 115, 115, 59, 32768, 10683, 110, 101, 59, 32768, 8254, 59, 32768, 10688, 768, 97, 101, 105, 13756, 13761, 13766, 99, 114, 59, 32768, 333, 103, 97, 59, 32768, 969, 768, 99, 100, 110, 13773, 13779, 13782, 114, 111, 110, 59, 32768, 959, 59, 32768, 10678, 117, 115, 59, 32768, 8854, 112, 102, 59, 32896, 55349, 56672, 768, 97, 101, 108, 13800, 13804, 13809, 114, 59, 32768, 10679, 114, 112, 59, 32768, 10681, 117, 115, 59, 32768, 8853, 1792, 59, 97, 100, 105, 111, 115, 118, 13829, 13831, 13836, 13869, 13875, 13879, 13886, 32768, 8744, 114, 114, 59, 32768, 8635, 1024, 59, 101, 102, 109, 13845, 13847, 13859, 13864, 32768, 10845, 114, 512, 59, 111, 13853, 13855, 32768, 8500, 102, 59, 32768, 8500, 33024, 170, 59, 32768, 170, 33024, 186, 59, 32768, 186, 103, 111, 102, 59, 32768, 8886, 114, 59, 32768, 10838, 108, 111, 112, 101, 59, 32768, 10839, 59, 32768, 10843, 768, 99, 108, 111, 13896, 13900, 13908, 114, 59, 32768, 8500, 97, 115, 104, 33024, 248, 59, 32768, 248, 108, 59, 32768, 8856, 105, 573, 13917, 13924, 100, 101, 33024, 245, 59, 32768, 245, 101, 115, 512, 59, 97, 13930, 13932, 32768, 8855, 115, 59, 32768, 10806, 109, 108, 33024, 246, 59, 32768, 246, 98, 97, 114, 59, 32768, 9021, 5426, 13972, 0, 14013, 0, 14017, 14053, 0, 14058, 14086, 0, 0, 14107, 14199, 0, 14202, 0, 0, 14229, 14425, 0, 14438, 114, 1024, 59, 97, 115, 116, 13981, 13983, 13997, 14009, 32768, 8741, 33280, 182, 59, 108, 13989, 13991, 32768, 182, 108, 101, 108, 59, 32768, 8741, 1082, 14003, 0, 0, 14007, 109, 59, 32768, 10995, 59, 32768, 11005, 59, 32768, 8706, 121, 59, 32768, 1087, 114, 1280, 99, 105, 109, 112, 116, 14028, 14033, 14038, 14043, 14046, 110, 116, 59, 32768, 37, 111, 100, 59, 32768, 46, 105, 108, 59, 32768, 8240, 59, 32768, 8869, 101, 110, 107, 59, 32768, 8241, 114, 59, 32896, 55349, 56621, 768, 105, 109, 111, 14064, 14074, 14080, 512, 59, 118, 14069, 14071, 32768, 966, 59, 32768, 981, 109, 97, 116, 59, 32768, 8499, 110, 101, 59, 32768, 9742, 768, 59, 116, 118, 14092, 14094, 14103, 32768, 960, 99, 104, 102, 111, 114, 107, 59, 32768, 8916, 59, 32768, 982, 512, 97, 117, 14111, 14132, 110, 512, 99, 107, 14117, 14128, 107, 512, 59, 104, 14123, 14125, 32768, 8463, 59, 32768, 8462, 118, 59, 32768, 8463, 115, 2304, 59, 97, 98, 99, 100, 101, 109, 115, 116, 14152, 14154, 14160, 14163, 14168, 14179, 14182, 14188, 14193, 32768, 43, 99, 105, 114, 59, 32768, 10787, 59, 32768, 8862, 105, 114, 59, 32768, 10786, 512, 111, 117, 14173, 14176, 59, 32768, 8724, 59, 32768, 10789, 59, 32768, 10866, 110, 33024, 177, 59, 32768, 177, 105, 109, 59, 32768, 10790, 119, 111, 59, 32768, 10791, 59, 32768, 177, 768, 105, 112, 117, 14208, 14216, 14221, 110, 116, 105, 110, 116, 59, 32768, 10773, 102, 59, 32896, 55349, 56673, 110, 100, 33024, 163, 59, 32768, 163, 2560, 59, 69, 97, 99, 101, 105, 110, 111, 115, 117, 14249, 14251, 14254, 14258, 14263, 14336, 14348, 14367, 14413, 14418, 32768, 8826, 59, 32768, 10931, 112, 59, 32768, 10935, 117, 101, 59, 32768, 8828, 512, 59, 99, 14268, 14270, 32768, 10927, 1536, 59, 97, 99, 101, 110, 115, 14283, 14285, 14293, 14302, 14306, 14331, 32768, 8826, 112, 112, 114, 111, 120, 59, 32768, 10935, 117, 114, 108, 121, 101, 113, 59, 32768, 8828, 113, 59, 32768, 10927, 768, 97, 101, 115, 14313, 14321, 14326, 112, 112, 114, 111, 120, 59, 32768, 10937, 113, 113, 59, 32768, 10933, 105, 109, 59, 32768, 8936, 105, 109, 59, 32768, 8830, 109, 101, 512, 59, 115, 14343, 14345, 32768, 8242, 59, 32768, 8473, 768, 69, 97, 115, 14355, 14358, 14362, 59, 32768, 10933, 112, 59, 32768, 10937, 105, 109, 59, 32768, 8936, 768, 100, 102, 112, 14374, 14377, 14402, 59, 32768, 8719, 768, 97, 108, 115, 14384, 14390, 14396, 108, 97, 114, 59, 32768, 9006, 105, 110, 101, 59, 32768, 8978, 117, 114, 102, 59, 32768, 8979, 512, 59, 116, 14407, 14409, 32768, 8733, 111, 59, 32768, 8733, 105, 109, 59, 32768, 8830, 114, 101, 108, 59, 32768, 8880, 512, 99, 105, 14429, 14434, 114, 59, 32896, 55349, 56517, 59, 32768, 968, 110, 99, 115, 112, 59, 32768, 8200, 1536, 102, 105, 111, 112, 115, 117, 14457, 14462, 14467, 14473, 14480, 14486, 114, 59, 32896, 55349, 56622, 110, 116, 59, 32768, 10764, 112, 102, 59, 32896, 55349, 56674, 114, 105, 109, 101, 59, 32768, 8279, 99, 114, 59, 32896, 55349, 56518, 768, 97, 101, 111, 14493, 14513, 14526, 116, 512, 101, 105, 14499, 14508, 114, 110, 105, 111, 110, 115, 59, 32768, 8461, 110, 116, 59, 32768, 10774, 115, 116, 512, 59, 101, 14520, 14522, 32768, 63, 113, 59, 32768, 8799, 116, 33024, 34, 59, 32768, 34, 5376, 65, 66, 72, 97, 98, 99, 100, 101, 102, 104, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 120, 14575, 14597, 14603, 14608, 14775, 14829, 14865, 14901, 14943, 14966, 15000, 15139, 15159, 15176, 15182, 15236, 15261, 15267, 15309, 15352, 15360, 768, 97, 114, 116, 14582, 14587, 14591, 114, 114, 59, 32768, 8667, 114, 59, 32768, 8658, 97, 105, 108, 59, 32768, 10524, 97, 114, 114, 59, 32768, 10511, 97, 114, 59, 32768, 10596, 1792, 99, 100, 101, 110, 113, 114, 116, 14623, 14637, 14642, 14650, 14672, 14679, 14751, 512, 101, 117, 14628, 14632, 59, 32896, 8765, 817, 116, 101, 59, 32768, 341, 105, 99, 59, 32768, 8730, 109, 112, 116, 121, 118, 59, 32768, 10675, 103, 1024, 59, 100, 101, 108, 14660, 14662, 14665, 14668, 32768, 10217, 59, 32768, 10642, 59, 32768, 10661, 101, 59, 32768, 10217, 117, 111, 33024, 187, 59, 32768, 187, 114, 2816, 59, 97, 98, 99, 102, 104, 108, 112, 115, 116, 119, 14703, 14705, 14709, 14720, 14723, 14727, 14731, 14735, 14739, 14744, 14748, 32768, 8594, 112, 59, 32768, 10613, 512, 59, 102, 14714, 14716, 32768, 8677, 115, 59, 32768, 10528, 59, 32768, 10547, 115, 59, 32768, 10526, 107, 59, 32768, 8618, 112, 59, 32768, 8620, 108, 59, 32768, 10565, 105, 109, 59, 32768, 10612, 108, 59, 32768, 8611, 59, 32768, 8605, 512, 97, 105, 14756, 14761, 105, 108, 59, 32768, 10522, 111, 512, 59, 110, 14767, 14769, 32768, 8758, 97, 108, 115, 59, 32768, 8474, 768, 97, 98, 114, 14782, 14787, 14792, 114, 114, 59, 32768, 10509, 114, 107, 59, 32768, 10099, 512, 97, 107, 14797, 14809, 99, 512, 101, 107, 14803, 14806, 59, 32768, 125, 59, 32768, 93, 512, 101, 115, 14814, 14817, 59, 32768, 10636, 108, 512, 100, 117, 14823, 14826, 59, 32768, 10638, 59, 32768, 10640, 1024, 97, 101, 117, 121, 14838, 14844, 14858, 14862, 114, 111, 110, 59, 32768, 345, 512, 100, 105, 14849, 14854, 105, 108, 59, 32768, 343, 108, 59, 32768, 8969, 98, 59, 32768, 125, 59, 32768, 1088, 1024, 99, 108, 113, 115, 14874, 14878, 14885, 14897, 97, 59, 32768, 10551, 100, 104, 97, 114, 59, 32768, 10601, 117, 111, 512, 59, 114, 14892, 14894, 32768, 8221, 59, 32768, 8221, 104, 59, 32768, 8627, 768, 97, 99, 103, 14908, 14934, 14938, 108, 1024, 59, 105, 112, 115, 14918, 14920, 14925, 14931, 32768, 8476, 110, 101, 59, 32768, 8475, 97, 114, 116, 59, 32768, 8476, 59, 32768, 8477, 116, 59, 32768, 9645, 33024, 174, 59, 32768, 174, 768, 105, 108, 114, 14950, 14956, 14962, 115, 104, 116, 59, 32768, 10621, 111, 111, 114, 59, 32768, 8971, 59, 32896, 55349, 56623, 512, 97, 111, 14971, 14990, 114, 512, 100, 117, 14977, 14980, 59, 32768, 8641, 512, 59, 108, 14985, 14987, 32768, 8640, 59, 32768, 10604, 512, 59, 118, 14995, 14997, 32768, 961, 59, 32768, 1009, 768, 103, 110, 115, 15007, 15123, 15127, 104, 116, 1536, 97, 104, 108, 114, 115, 116, 15022, 15039, 15060, 15086, 15099, 15111, 114, 114, 111, 119, 512, 59, 116, 15031, 15033, 32768, 8594, 97, 105, 108, 59, 32768, 8611, 97, 114, 112, 111, 111, 110, 512, 100, 117, 15050, 15056, 111, 119, 110, 59, 32768, 8641, 112, 59, 32768, 8640, 101, 102, 116, 512, 97, 104, 15068, 15076, 114, 114, 111, 119, 115, 59, 32768, 8644, 97, 114, 112, 111, 111, 110, 115, 59, 32768, 8652, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 59, 32768, 8649, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 32768, 8605, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 32768, 8908, 103, 59, 32768, 730, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 32768, 8787, 768, 97, 104, 109, 15146, 15151, 15156, 114, 114, 59, 32768, 8644, 97, 114, 59, 32768, 8652, 59, 32768, 8207, 111, 117, 115, 116, 512, 59, 97, 15168, 15170, 32768, 9137, 99, 104, 101, 59, 32768, 9137, 109, 105, 100, 59, 32768, 10990, 1024, 97, 98, 112, 116, 15191, 15204, 15209, 15229, 512, 110, 114, 15196, 15200, 103, 59, 32768, 10221, 114, 59, 32768, 8702, 114, 107, 59, 32768, 10215, 768, 97, 102, 108, 15216, 15220, 15224, 114, 59, 32768, 10630, 59, 32896, 55349, 56675, 117, 115, 59, 32768, 10798, 105, 109, 101, 115, 59, 32768, 10805, 512, 97, 112, 15241, 15253, 114, 512, 59, 103, 15247, 15249, 32768, 41, 116, 59, 32768, 10644, 111, 108, 105, 110, 116, 59, 32768, 10770, 97, 114, 114, 59, 32768, 8649, 1024, 97, 99, 104, 113, 15276, 15282, 15287, 15290, 113, 117, 111, 59, 32768, 8250, 114, 59, 32896, 55349, 56519, 59, 32768, 8625, 512, 98, 117, 15295, 15298, 59, 32768, 93, 111, 512, 59, 114, 15304, 15306, 32768, 8217, 59, 32768, 8217, 768, 104, 105, 114, 15316, 15322, 15328, 114, 101, 101, 59, 32768, 8908, 109, 101, 115, 59, 32768, 8906, 105, 1024, 59, 101, 102, 108, 15338, 15340, 15343, 15346, 32768, 9657, 59, 32768, 8885, 59, 32768, 9656, 116, 114, 105, 59, 32768, 10702, 108, 117, 104, 97, 114, 59, 32768, 10600, 59, 32768, 8478, 6706, 15391, 15398, 15404, 15499, 15516, 15592, 0, 15606, 15660, 0, 0, 15752, 15758, 0, 15827, 15863, 15886, 16000, 16006, 16038, 16086, 0, 16467, 0, 0, 16506, 99, 117, 116, 101, 59, 32768, 347, 113, 117, 111, 59, 32768, 8218, 2560, 59, 69, 97, 99, 101, 105, 110, 112, 115, 121, 15424, 15426, 15429, 15441, 15446, 15458, 15463, 15482, 15490, 15495, 32768, 8827, 59, 32768, 10932, 833, 15434, 0, 15437, 59, 32768, 10936, 111, 110, 59, 32768, 353, 117, 101, 59, 32768, 8829, 512, 59, 100, 15451, 15453, 32768, 10928, 105, 108, 59, 32768, 351, 114, 99, 59, 32768, 349, 768, 69, 97, 115, 15470, 15473, 15477, 59, 32768, 10934, 112, 59, 32768, 10938, 105, 109, 59, 32768, 8937, 111, 108, 105, 110, 116, 59, 32768, 10771, 105, 109, 59, 32768, 8831, 59, 32768, 1089, 111, 116, 768, 59, 98, 101, 15507, 15509, 15512, 32768, 8901, 59, 32768, 8865, 59, 32768, 10854, 1792, 65, 97, 99, 109, 115, 116, 120, 15530, 15535, 15556, 15562, 15566, 15572, 15587, 114, 114, 59, 32768, 8664, 114, 512, 104, 114, 15541, 15545, 107, 59, 32768, 10533, 512, 59, 111, 15550, 15552, 32768, 8600, 119, 59, 32768, 8600, 116, 33024, 167, 59, 32768, 167, 105, 59, 32768, 59, 119, 97, 114, 59, 32768, 10537, 109, 512, 105, 110, 15578, 15584, 110, 117, 115, 59, 32768, 8726, 59, 32768, 8726, 116, 59, 32768, 10038, 114, 512, 59, 111, 15597, 15600, 32896, 55349, 56624, 119, 110, 59, 32768, 8994, 1024, 97, 99, 111, 121, 15614, 15619, 15632, 15654, 114, 112, 59, 32768, 9839, 512, 104, 121, 15624, 15629, 99, 121, 59, 32768, 1097, 59, 32768, 1096, 114, 116, 1086, 15640, 0, 0, 15645, 105, 100, 59, 32768, 8739, 97, 114, 97, 108, 108, 101, 108, 59, 32768, 8741, 33024, 173, 59, 32768, 173, 512, 103, 109, 15664, 15681, 109, 97, 768, 59, 102, 118, 15673, 15675, 15678, 32768, 963, 59, 32768, 962, 59, 32768, 962, 2048, 59, 100, 101, 103, 108, 110, 112, 114, 15698, 15700, 15705, 15715, 15725, 15735, 15739, 15745, 32768, 8764, 111, 116, 59, 32768, 10858, 512, 59, 113, 15710, 15712, 32768, 8771, 59, 32768, 8771, 512, 59, 69, 15720, 15722, 32768, 10910, 59, 32768, 10912, 512, 59, 69, 15730, 15732, 32768, 10909, 59, 32768, 10911, 101, 59, 32768, 8774, 108, 117, 115, 59, 32768, 10788, 97, 114, 114, 59, 32768, 10610, 97, 114, 114, 59, 32768, 8592, 1024, 97, 101, 105, 116, 15766, 15788, 15796, 15808, 512, 108, 115, 15771, 15783, 108, 115, 101, 116, 109, 105, 110, 117, 115, 59, 32768, 8726, 104, 112, 59, 32768, 10803, 112, 97, 114, 115, 108, 59, 32768, 10724, 512, 100, 108, 15801, 15804, 59, 32768, 8739, 101, 59, 32768, 8995, 512, 59, 101, 15813, 15815, 32768, 10922, 512, 59, 115, 15820, 15822, 32768, 10924, 59, 32896, 10924, 65024, 768, 102, 108, 112, 15833, 15839, 15857, 116, 99, 121, 59, 32768, 1100, 512, 59, 98, 15844, 15846, 32768, 47, 512, 59, 97, 15851, 15853, 32768, 10692, 114, 59, 32768, 9023, 102, 59, 32896, 55349, 56676, 97, 512, 100, 114, 15868, 15882, 101, 115, 512, 59, 117, 15875, 15877, 32768, 9824, 105, 116, 59, 32768, 9824, 59, 32768, 8741, 768, 99, 115, 117, 15892, 15921, 15977, 512, 97, 117, 15897, 15909, 112, 512, 59, 115, 15903, 15905, 32768, 8851, 59, 32896, 8851, 65024, 112, 512, 59, 115, 15915, 15917, 32768, 8852, 59, 32896, 8852, 65024, 117, 512, 98, 112, 15927, 15952, 768, 59, 101, 115, 15934, 15936, 15939, 32768, 8847, 59, 32768, 8849, 101, 116, 512, 59, 101, 15946, 15948, 32768, 8847, 113, 59, 32768, 8849, 768, 59, 101, 115, 15959, 15961, 15964, 32768, 8848, 59, 32768, 8850, 101, 116, 512, 59, 101, 15971, 15973, 32768, 8848, 113, 59, 32768, 8850, 768, 59, 97, 102, 15984, 15986, 15996, 32768, 9633, 114, 566, 15991, 15994, 59, 32768, 9633, 59, 32768, 9642, 59, 32768, 9642, 97, 114, 114, 59, 32768, 8594, 1024, 99, 101, 109, 116, 16014, 16019, 16025, 16031, 114, 59, 32896, 55349, 56520, 116, 109, 110, 59, 32768, 8726, 105, 108, 101, 59, 32768, 8995, 97, 114, 102, 59, 32768, 8902, 512, 97, 114, 16042, 16053, 114, 512, 59, 102, 16048, 16050, 32768, 9734, 59, 32768, 9733, 512, 97, 110, 16058, 16081, 105, 103, 104, 116, 512, 101, 112, 16067, 16076, 112, 115, 105, 108, 111, 110, 59, 32768, 1013, 104, 105, 59, 32768, 981, 115, 59, 32768, 175, 1280, 98, 99, 109, 110, 112, 16096, 16221, 16288, 16291, 16295, 2304, 59, 69, 100, 101, 109, 110, 112, 114, 115, 16115, 16117, 16120, 16125, 16137, 16143, 16154, 16160, 16166, 32768, 8834, 59, 32768, 10949, 111, 116, 59, 32768, 10941, 512, 59, 100, 16130, 16132, 32768, 8838, 111, 116, 59, 32768, 10947, 117, 108, 116, 59, 32768, 10945, 512, 69, 101, 16148, 16151, 59, 32768, 10955, 59, 32768, 8842, 108, 117, 115, 59, 32768, 10943, 97, 114, 114, 59, 32768, 10617, 768, 101, 105, 117, 16173, 16206, 16210, 116, 768, 59, 101, 110, 16181, 16183, 16194, 32768, 8834, 113, 512, 59, 113, 16189, 16191, 32768, 8838, 59, 32768, 10949, 101, 113, 512, 59, 113, 16201, 16203, 32768, 8842, 59, 32768, 10955, 109, 59, 32768, 10951, 512, 98, 112, 16215, 16218, 59, 32768, 10965, 59, 32768, 10963, 99, 1536, 59, 97, 99, 101, 110, 115, 16235, 16237, 16245, 16254, 16258, 16283, 32768, 8827, 112, 112, 114, 111, 120, 59, 32768, 10936, 117, 114, 108, 121, 101, 113, 59, 32768, 8829, 113, 59, 32768, 10928, 768, 97, 101, 115, 16265, 16273, 16278, 112, 112, 114, 111, 120, 59, 32768, 10938, 113, 113, 59, 32768, 10934, 105, 109, 59, 32768, 8937, 105, 109, 59, 32768, 8831, 59, 32768, 8721, 103, 59, 32768, 9834, 3328, 49, 50, 51, 59, 69, 100, 101, 104, 108, 109, 110, 112, 115, 16322, 16327, 16332, 16337, 16339, 16342, 16356, 16368, 16382, 16388, 16394, 16405, 16411, 33024, 185, 59, 32768, 185, 33024, 178, 59, 32768, 178, 33024, 179, 59, 32768, 179, 32768, 8835, 59, 32768, 10950, 512, 111, 115, 16347, 16351, 116, 59, 32768, 10942, 117, 98, 59, 32768, 10968, 512, 59, 100, 16361, 16363, 32768, 8839, 111, 116, 59, 32768, 10948, 115, 512, 111, 117, 16374, 16378, 108, 59, 32768, 10185, 98, 59, 32768, 10967, 97, 114, 114, 59, 32768, 10619, 117, 108, 116, 59, 32768, 10946, 512, 69, 101, 16399, 16402, 59, 32768, 10956, 59, 32768, 8843, 108, 117, 115, 59, 32768, 10944, 768, 101, 105, 117, 16418, 16451, 16455, 116, 768, 59, 101, 110, 16426, 16428, 16439, 32768, 8835, 113, 512, 59, 113, 16434, 16436, 32768, 8839, 59, 32768, 10950, 101, 113, 512, 59, 113, 16446, 16448, 32768, 8843, 59, 32768, 10956, 109, 59, 32768, 10952, 512, 98, 112, 16460, 16463, 59, 32768, 10964, 59, 32768, 10966, 768, 65, 97, 110, 16473, 16478, 16499, 114, 114, 59, 32768, 8665, 114, 512, 104, 114, 16484, 16488, 107, 59, 32768, 10534, 512, 59, 111, 16493, 16495, 32768, 8601, 119, 59, 32768, 8601, 119, 97, 114, 59, 32768, 10538, 108, 105, 103, 33024, 223, 59, 32768, 223, 5938, 16538, 16552, 16557, 16579, 16584, 16591, 0, 16596, 16692, 0, 0, 0, 0, 0, 16731, 16780, 0, 16787, 16908, 0, 0, 0, 16938, 1091, 16543, 0, 0, 16549, 103, 101, 116, 59, 32768, 8982, 59, 32768, 964, 114, 107, 59, 32768, 9140, 768, 97, 101, 121, 16563, 16569, 16575, 114, 111, 110, 59, 32768, 357, 100, 105, 108, 59, 32768, 355, 59, 32768, 1090, 111, 116, 59, 32768, 8411, 108, 114, 101, 99, 59, 32768, 8981, 114, 59, 32896, 55349, 56625, 1024, 101, 105, 107, 111, 16604, 16641, 16670, 16684, 835, 16609, 0, 16624, 101, 512, 52, 102, 16614, 16617, 59, 32768, 8756, 111, 114, 101, 59, 32768, 8756, 97, 768, 59, 115, 118, 16631, 16633, 16638, 32768, 952, 121, 109, 59, 32768, 977, 59, 32768, 977, 512, 99, 110, 16646, 16665, 107, 512, 97, 115, 16652, 16660, 112, 112, 114, 111, 120, 59, 32768, 8776, 105, 109, 59, 32768, 8764, 115, 112, 59, 32768, 8201, 512, 97, 115, 16675, 16679, 112, 59, 32768, 8776, 105, 109, 59, 32768, 8764, 114, 110, 33024, 254, 59, 32768, 254, 829, 16696, 16701, 16727, 100, 101, 59, 32768, 732, 101, 115, 33536, 215, 59, 98, 100, 16710, 16712, 16723, 32768, 215, 512, 59, 97, 16717, 16719, 32768, 8864, 114, 59, 32768, 10801, 59, 32768, 10800, 116, 59, 32768, 8749, 768, 101, 112, 115, 16737, 16741, 16775, 97, 59, 32768, 10536, 1024, 59, 98, 99, 102, 16750, 16752, 16757, 16762, 32768, 8868, 111, 116, 59, 32768, 9014, 105, 114, 59, 32768, 10993, 512, 59, 111, 16767, 16770, 32896, 55349, 56677, 114, 107, 59, 32768, 10970, 97, 59, 32768, 10537, 114, 105, 109, 101, 59, 32768, 8244, 768, 97, 105, 112, 16793, 16798, 16899, 100, 101, 59, 32768, 8482, 1792, 97, 100, 101, 109, 112, 115, 116, 16813, 16868, 16873, 16876, 16883, 16889, 16893, 110, 103, 108, 101, 1280, 59, 100, 108, 113, 114, 16828, 16830, 16836, 16850, 16853, 32768, 9653, 111, 119, 110, 59, 32768, 9663, 101, 102, 116, 512, 59, 101, 16844, 16846, 32768, 9667, 113, 59, 32768, 8884, 59, 32768, 8796, 105, 103, 104, 116, 512, 59, 101, 16862, 16864, 32768, 9657, 113, 59, 32768, 8885, 111, 116, 59, 32768, 9708, 59, 32768, 8796, 105, 110, 117, 115, 59, 32768, 10810, 108, 117, 115, 59, 32768, 10809, 98, 59, 32768, 10701, 105, 109, 101, 59, 32768, 10811, 101, 122, 105, 117, 109, 59, 32768, 9186, 768, 99, 104, 116, 16914, 16926, 16931, 512, 114, 121, 16919, 16923, 59, 32896, 55349, 56521, 59, 32768, 1094, 99, 121, 59, 32768, 1115, 114, 111, 107, 59, 32768, 359, 512, 105, 111, 16942, 16947, 120, 116, 59, 32768, 8812, 104, 101, 97, 100, 512, 108, 114, 16956, 16967, 101, 102, 116, 97, 114, 114, 111, 119, 59, 32768, 8606, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8608, 4608, 65, 72, 97, 98, 99, 100, 102, 103, 104, 108, 109, 111, 112, 114, 115, 116, 117, 119, 17016, 17021, 17026, 17043, 17057, 17072, 17095, 17110, 17119, 17139, 17172, 17187, 17202, 17290, 17330, 17336, 17365, 17381, 114, 114, 59, 32768, 8657, 97, 114, 59, 32768, 10595, 512, 99, 114, 17031, 17039, 117, 116, 101, 33024, 250, 59, 32768, 250, 114, 59, 32768, 8593, 114, 820, 17049, 0, 17053, 121, 59, 32768, 1118, 118, 101, 59, 32768, 365, 512, 105, 121, 17062, 17069, 114, 99, 33024, 251, 59, 32768, 251, 59, 32768, 1091, 768, 97, 98, 104, 17079, 17084, 17090, 114, 114, 59, 32768, 8645, 108, 97, 99, 59, 32768, 369, 97, 114, 59, 32768, 10606, 512, 105, 114, 17100, 17106, 115, 104, 116, 59, 32768, 10622, 59, 32896, 55349, 56626, 114, 97, 118, 101, 33024, 249, 59, 32768, 249, 562, 17123, 17135, 114, 512, 108, 114, 17128, 17131, 59, 32768, 8639, 59, 32768, 8638, 108, 107, 59, 32768, 9600, 512, 99, 116, 17144, 17167, 1088, 17150, 0, 0, 17163, 114, 110, 512, 59, 101, 17156, 17158, 32768, 8988, 114, 59, 32768, 8988, 111, 112, 59, 32768, 8975, 114, 105, 59, 32768, 9720, 512, 97, 108, 17177, 17182, 99, 114, 59, 32768, 363, 33024, 168, 59, 32768, 168, 512, 103, 112, 17192, 17197, 111, 110, 59, 32768, 371, 102, 59, 32896, 55349, 56678, 1536, 97, 100, 104, 108, 115, 117, 17215, 17222, 17233, 17257, 17262, 17280, 114, 114, 111, 119, 59, 32768, 8593, 111, 119, 110, 97, 114, 114, 111, 119, 59, 32768, 8597, 97, 114, 112, 111, 111, 110, 512, 108, 114, 17244, 17250, 101, 102, 116, 59, 32768, 8639, 105, 103, 104, 116, 59, 32768, 8638, 117, 115, 59, 32768, 8846, 105, 768, 59, 104, 108, 17270, 17272, 17275, 32768, 965, 59, 32768, 978, 111, 110, 59, 32768, 965, 112, 97, 114, 114, 111, 119, 115, 59, 32768, 8648, 768, 99, 105, 116, 17297, 17320, 17325, 1088, 17303, 0, 0, 17316, 114, 110, 512, 59, 101, 17309, 17311, 32768, 8989, 114, 59, 32768, 8989, 111, 112, 59, 32768, 8974, 110, 103, 59, 32768, 367, 114, 105, 59, 32768, 9721, 99, 114, 59, 32896, 55349, 56522, 768, 100, 105, 114, 17343, 17348, 17354, 111, 116, 59, 32768, 8944, 108, 100, 101, 59, 32768, 361, 105, 512, 59, 102, 17360, 17362, 32768, 9653, 59, 32768, 9652, 512, 97, 109, 17370, 17375, 114, 114, 59, 32768, 8648, 108, 33024, 252, 59, 32768, 252, 97, 110, 103, 108, 101, 59, 32768, 10663, 3840, 65, 66, 68, 97, 99, 100, 101, 102, 108, 110, 111, 112, 114, 115, 122, 17420, 17425, 17437, 17443, 17613, 17617, 17623, 17667, 17672, 17678, 17693, 17699, 17705, 17711, 17754, 114, 114, 59, 32768, 8661, 97, 114, 512, 59, 118, 17432, 17434, 32768, 10984, 59, 32768, 10985, 97, 115, 104, 59, 32768, 8872, 512, 110, 114, 17448, 17454, 103, 114, 116, 59, 32768, 10652, 1792, 101, 107, 110, 112, 114, 115, 116, 17469, 17478, 17485, 17494, 17515, 17526, 17578, 112, 115, 105, 108, 111, 110, 59, 32768, 1013, 97, 112, 112, 97, 59, 32768, 1008, 111, 116, 104, 105, 110, 103, 59, 32768, 8709, 768, 104, 105, 114, 17501, 17505, 17508, 105, 59, 32768, 981, 59, 32768, 982, 111, 112, 116, 111, 59, 32768, 8733, 512, 59, 104, 17520, 17522, 32768, 8597, 111, 59, 32768, 1009, 512, 105, 117, 17531, 17537, 103, 109, 97, 59, 32768, 962, 512, 98, 112, 17542, 17560, 115, 101, 116, 110, 101, 113, 512, 59, 113, 17553, 17556, 32896, 8842, 65024, 59, 32896, 10955, 65024, 115, 101, 116, 110, 101, 113, 512, 59, 113, 17571, 17574, 32896, 8843, 65024, 59, 32896, 10956, 65024, 512, 104, 114, 17583, 17589, 101, 116, 97, 59, 32768, 977, 105, 97, 110, 103, 108, 101, 512, 108, 114, 17600, 17606, 101, 102, 116, 59, 32768, 8882, 105, 103, 104, 116, 59, 32768, 8883, 121, 59, 32768, 1074, 97, 115, 104, 59, 32768, 8866, 768, 101, 108, 114, 17630, 17648, 17654, 768, 59, 98, 101, 17637, 17639, 17644, 32768, 8744, 97, 114, 59, 32768, 8891, 113, 59, 32768, 8794, 108, 105, 112, 59, 32768, 8942, 512, 98, 116, 17659, 17664, 97, 114, 59, 32768, 124, 59, 32768, 124, 114, 59, 32896, 55349, 56627, 116, 114, 105, 59, 32768, 8882, 115, 117, 512, 98, 112, 17685, 17689, 59, 32896, 8834, 8402, 59, 32896, 8835, 8402, 112, 102, 59, 32896, 55349, 56679, 114, 111, 112, 59, 32768, 8733, 116, 114, 105, 59, 32768, 8883, 512, 99, 117, 17716, 17721, 114, 59, 32896, 55349, 56523, 512, 98, 112, 17726, 17740, 110, 512, 69, 101, 17732, 17736, 59, 32896, 10955, 65024, 59, 32896, 8842, 65024, 110, 512, 69, 101, 17746, 17750, 59, 32896, 10956, 65024, 59, 32896, 8843, 65024, 105, 103, 122, 97, 103, 59, 32768, 10650, 1792, 99, 101, 102, 111, 112, 114, 115, 17777, 17783, 17815, 17820, 17826, 17829, 17842, 105, 114, 99, 59, 32768, 373, 512, 100, 105, 17788, 17809, 512, 98, 103, 17793, 17798, 97, 114, 59, 32768, 10847, 101, 512, 59, 113, 17804, 17806, 32768, 8743, 59, 32768, 8793, 101, 114, 112, 59, 32768, 8472, 114, 59, 32896, 55349, 56628, 112, 102, 59, 32896, 55349, 56680, 59, 32768, 8472, 512, 59, 101, 17834, 17836, 32768, 8768, 97, 116, 104, 59, 32768, 8768, 99, 114, 59, 32896, 55349, 56524, 5428, 17871, 17891, 0, 17897, 0, 17902, 17917, 0, 0, 17920, 17935, 17940, 17945, 0, 0, 17977, 17992, 0, 18008, 18024, 18029, 768, 97, 105, 117, 17877, 17881, 17886, 112, 59, 32768, 8898, 114, 99, 59, 32768, 9711, 112, 59, 32768, 8899, 116, 114, 105, 59, 32768, 9661, 114, 59, 32896, 55349, 56629, 512, 65, 97, 17906, 17911, 114, 114, 59, 32768, 10234, 114, 114, 59, 32768, 10231, 59, 32768, 958, 512, 65, 97, 17924, 17929, 114, 114, 59, 32768, 10232, 114, 114, 59, 32768, 10229, 97, 112, 59, 32768, 10236, 105, 115, 59, 32768, 8955, 768, 100, 112, 116, 17951, 17956, 17970, 111, 116, 59, 32768, 10752, 512, 102, 108, 17961, 17965, 59, 32896, 55349, 56681, 117, 115, 59, 32768, 10753, 105, 109, 101, 59, 32768, 10754, 512, 65, 97, 17981, 17986, 114, 114, 59, 32768, 10233, 114, 114, 59, 32768, 10230, 512, 99, 113, 17996, 18001, 114, 59, 32896, 55349, 56525, 99, 117, 112, 59, 32768, 10758, 512, 112, 116, 18012, 18018, 108, 117, 115, 59, 32768, 10756, 114, 105, 59, 32768, 9651, 101, 101, 59, 32768, 8897, 101, 100, 103, 101, 59, 32768, 8896, 2048, 97, 99, 101, 102, 105, 111, 115, 117, 18052, 18068, 18081, 18087, 18092, 18097, 18103, 18109, 99, 512, 117, 121, 18058, 18065, 116, 101, 33024, 253, 59, 32768, 253, 59, 32768, 1103, 512, 105, 121, 18073, 18078, 114, 99, 59, 32768, 375, 59, 32768, 1099, 110, 33024, 165, 59, 32768, 165, 114, 59, 32896, 55349, 56630, 99, 121, 59, 32768, 1111, 112, 102, 59, 32896, 55349, 56682, 99, 114, 59, 32896, 55349, 56526, 512, 99, 109, 18114, 18118, 121, 59, 32768, 1102, 108, 33024, 255, 59, 32768, 255, 2560, 97, 99, 100, 101, 102, 104, 105, 111, 115, 119, 18145, 18152, 18166, 18171, 18186, 18191, 18196, 18204, 18210, 18216, 99, 117, 116, 101, 59, 32768, 378, 512, 97, 121, 18157, 18163, 114, 111, 110, 59, 32768, 382, 59, 32768, 1079, 111, 116, 59, 32768, 380, 512, 101, 116, 18176, 18182, 116, 114, 102, 59, 32768, 8488, 97, 59, 32768, 950, 114, 59, 32896, 55349, 56631, 99, 121, 59, 32768, 1078, 103, 114, 97, 114, 114, 59, 32768, 8669, 112, 102, 59, 32896, 55349, 56683, 99, 114, 59, 32896, 55349, 56527, 512, 106, 110, 18221, 18224, 59, 32768, 8205, 106, 59, 32768, 8204]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Generated using scripts/write-decode-map.ts\n// prettier-ignore\nexports.default = new Uint16Array([1024, 97, 103, 108, 113, 9, 23, 27, 31, 1086, 15, 0, 0, 19, 112, 59, 32768, 38, 111, 115, 59, 32768, 39, 116, 59, 32768, 62, 116, 59, 32768, 60, 117, 111, 116, 59, 32768, 34]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;\nvar decode_1 = require(\"./decode\");\nvar encode_1 = require(\"./encode\");\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeXML` or `decodeHTML` directly.\n */\nfunction decode(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeHTMLStrict` or `decodeXML` directly.\n */\nfunction decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `encodeHTML`, `encodeXML` or `encodeNonAsciiHTML` directly.\n */\nfunction encode(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n}\nexports.encode = encode;\nvar encode_2 = require(\"./encode\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return encode_2.encodeXML; } });\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_2.encodeNonAsciiHTML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return encode_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return encode_2.escapeUTF8; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nvar decode_2 = require(\"./decode\");\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar decode_json_1 = __importDefault(require(\"./maps/decode.json\"));\n// Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\nvar fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n return fromCodePoint(codePoint);\n}\nexports.default = decodeCodePoint;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar emptyArray = [];\n/**\n * Get a node's children.\n *\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n var _a;\n return (_a = elem.children) !== null && _a !== void 0 ? _a : emptyArray;\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first.\n * If we don't have a parent (the element is a root node),\n * we walk the element's `prev` & `next` to get all remaining nodes.\n *\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @param elem The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(elem, child) {\n removeElement(child);\n child.next = null;\n child.parent = elem;\n if (elem.children.push(child) > 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @param elem The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(elem, child) {\n removeElement(child);\n child.parent = elem;\n child.prev = null;\n if (elem.children.unshift(child) !== 1) {\n var sibling = elem.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another.\n *\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't subtrees of each other.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * Compare the position of one node against another node in any other document.\n * The return value is a bitmask with the following values:\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent./\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return 1 /* DISCONNECTED */;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return 4 /* FOLLOWING */ | 16 /* CONTAINED_BY */;\n }\n return 4 /* FOLLOWING */;\n }\n if (sharedParent === nodeA) {\n return 2 /* PRECEDING */ | 8 /* CONTAINS */;\n }\n return 2 /* PRECEDING */;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document and\n * remove any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & 2 /* PRECEDING */) {\n return -1;\n }\n else if (relative & 4 /* FOLLOWING */) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_1 = require(\"./stringify\");\nvar legacy_1 = require(\"./legacy\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs.medium,\n isDefault: !!attribs.isDefault,\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs.expression) {\n media.expression =\n attribs.expression;\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_1.textContent)((0, legacy_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n","import {\n DomHandler as OriginalDomHandler,\n DomHandlerOptions as OriginalDomHandlerOptions,\n Document,\n Element,\n Node,\n Text,\n NodeWithChildren\n} from 'domhandler';\nimport { isDomElement, isDomText } from './dom-utils';\n\n/**\n * A record of callback to visit the DOM.\n *\n * @public\n */\nexport interface DomVisitorCallbacks {\n /**\n * A callback invoked when encountering a {@link Document}.\n *\n * @param document - The document to visit.\n *\n */\n onDocument?(document: Document): void;\n /**\n * A callback invoked when encountering an {@link Element}.\n *\n * @param element - The element to visit.\n */\n onElement?(element: Element): void;\n /**\n * A callback invoked when encountering a {@link Text} node.\n *\n * @param text - The text to visit.\n */\n onText?(text: Text): void;\n}\n\nexport interface DomHandlerOptions extends OriginalDomHandlerOptions {\n ignoredTags?: string[];\n visitors?: DomVisitorCallbacks;\n ignoreNode?: (\n node: Node,\n parent: NodeWithChildren\n ) => boolean | void | unknown;\n}\n\nexport default class DomHandler extends OriginalDomHandler {\n private ignoredTags: Record;\n private ignoredTagsCount = -1;\n private visitors: DomVisitorCallbacks;\n\n constructor(options: DomHandlerOptions) {\n super(undefined, options, undefined);\n let ignoredTags: DomHandler['ignoredTags'] = {};\n for (const tag of options.ignoredTags || []) {\n ignoredTags[tag] = true;\n }\n this.ignoredTags = ignoredTags;\n this.visitors = options.visitors || {};\n const isIgnored = this.isIgnored.bind(this);\n if (options.ignoreNode) {\n this.isIgnored = (node) => {\n return (\n isIgnored(node) ||\n options.ignoreNode!(node, this.tagStack[this.tagStack.length - 1])\n );\n };\n }\n }\n\n isIgnored(node: Node): boolean | unknown | void {\n return (\n (this.ignoredTags[(node as Element).name] as boolean) ||\n this.ignoredTagsCount > -1\n );\n }\n\n addNode(node: Node): void {\n if (this.isIgnored(node) === true) {\n // increment only for elements.\n if (isDomElement(node)) {\n this.ignoredTagsCount++;\n }\n } else {\n super.addNode(node);\n if (isDomText(node)) {\n this.visitors.onText?.(node);\n }\n }\n }\n\n ontext(text: string) {\n // Only include text when out of an\n // ignoring session.\n if (this.ignoredTagsCount < 0) {\n super.ontext(text);\n }\n }\n\n onopentag(name: string, attribs: any): void {\n super.onopentag(name, attribs);\n }\n\n onclosetag() {\n // Call onElement on close to give access to this node children\n this.visitors.onElement?.(\n this.tagStack[this.tagStack.length - 1] as Element\n );\n super.onclosetag();\n if (this.ignoredTagsCount > -1) {\n this.ignoredTagsCount--;\n }\n }\n\n onend(): void {\n this.visitors.onDocument?.(this.root);\n }\n}\n","import CSSProcessor, {\n CSSProcessedProps,\n CSSProcessorConfig,\n MixedStyleDeclaration\n} from '@native-html/css-processor';\nimport HTMLModelRegistry from '../model/HTMLModelRegistry';\nimport { TNodeDescriptor } from '../tree/tree-types';\nimport { TStyles } from './TStyles';\nimport { StylesConfig } from './types';\n\nexport const emptyProcessedPropsReg: CSSProcessedProps =\n new CSSProcessedProps();\n\nfunction mapMixedStyleRecordToCSSProcessedPropsReg(\n processor: CSSProcessor,\n styles?: Record\n): Record {\n let regStyles: Record = {};\n for (const key in styles) {\n regStyles[key] = processor.compileStyleDeclaration(styles[key]);\n }\n return regStyles;\n}\n\n// Specificity hierarchy, in descending order:\n// 1. Inline styles\n// 2. ID (idsStyles)\n// 3. Classes (classesStyles)\n// 4. Element name (tagsStyles)\n// 5. Attribute styles (styles derived from attributes)\n// 6. Default element styles\n// 7. Inherited styles (baseFontStyles)\nexport class TStylesMerger {\n private processor: CSSProcessor;\n private tagsStyles: Record;\n private classesStyles: Record;\n private idsStyles: Record;\n private enableCSSInlineProcessing: boolean;\n private enableUserAgentStyles: boolean;\n private modelRegistry: HTMLModelRegistry;\n constructor(\n config: Required,\n modelRegistry: HTMLModelRegistry,\n cssProcessorConfig?: CSSProcessorConfig\n ) {\n this.processor = new CSSProcessor(cssProcessorConfig);\n this.modelRegistry = modelRegistry;\n this.classesStyles = mapMixedStyleRecordToCSSProcessedPropsReg(\n this.processor,\n config.classesStyles\n );\n this.tagsStyles = mapMixedStyleRecordToCSSProcessedPropsReg(\n this.processor,\n config.tagsStyles\n );\n this.idsStyles = mapMixedStyleRecordToCSSProcessedPropsReg(\n this.processor,\n config.idsStyles\n );\n this.enableCSSInlineProcessing = config.enableCSSInlineProcessing;\n this.enableUserAgentStyles = config.enableUserAgentStyles;\n }\n\n compileInlineCSS(inlineCSS: string) {\n return this.processor.compileInlineCSS(inlineCSS);\n }\n\n compileStyleDeclaration(styleDeclaration: MixedStyleDeclaration) {\n return this.processor.compileStyleDeclaration(styleDeclaration);\n }\n\n buildStyles(\n inlineStyle: string,\n parentStyles: TStyles | null,\n descriptor: TNodeDescriptor\n ): TStyles {\n const ownInlinePropsReg =\n this.enableCSSInlineProcessing && inlineStyle\n ? this.compileInlineCSS(inlineStyle)\n : null;\n const model = descriptor.tagName\n ? this.modelRegistry.getElementModelFromTagName(descriptor.tagName)\n : null;\n const userTagOwnProps =\n this.tagsStyles[descriptor.tagName as string] ?? null;\n const userIdOwnProps = this.idsStyles[descriptor.id as string] ?? null;\n const classes = descriptor.classes;\n const userClassesOwnPropsList = classes.map(\n (c) => this.classesStyles[c] || null\n );\n const dynamicPropsFromAttributes = this.enableUserAgentStyles\n ? (model?.getMixedUAStyles?.(descriptor, descriptor.domNode!) || null) ??\n model?.getUADerivedStyleFromAttributes?.(\n descriptor.attributes,\n descriptor.markers\n ) ??\n null\n : null;\n const userAgentTagProps = this.enableUserAgentStyles\n ? model?.mixedUAStyles ?? null\n : null;\n // Latest properties will override former properties.\n const mergedOwnProps = emptyProcessedPropsReg.merge(\n userAgentTagProps &&\n this.processor.compileStyleDeclaration(userAgentTagProps),\n dynamicPropsFromAttributes &&\n this.processor.compileStyleDeclaration(dynamicPropsFromAttributes),\n userTagOwnProps,\n ...userClassesOwnPropsList,\n userIdOwnProps,\n ownInlinePropsReg\n );\n return new TStyles(mergedOwnProps, parentStyles);\n }\n}\n","import { StylesConfig } from './types';\n\nexport const defaultStylesConfig: Required = {\n classesStyles: {},\n enableCSSInlineProcessing: true,\n enableUserAgentStyles: false,\n idsStyles: {},\n tagsStyles: {},\n baseStyle: {\n fontSize: 14,\n whiteSpace: 'normal'\n }\n};\n","import internalHTMLElementModels, {\n DefaultHTMLElementModelsStatic\n} from './defaultHTMLElementModels';\nimport HTMLElementModel from './HTMLElementModel';\nimport { HTMLModelRecord, TagName } from './model-types';\n\nexport default class HTMLModelRegistry {\n public readonly modelRecords: HTMLModelRecord =\n internalHTMLElementModels as HTMLModelRecord;\n\n constructor(\n customize?: (\n defaultHTMLElementModels: DefaultHTMLElementModelsStatic\n ) => HTMLModelRecord\n ) {\n if (typeof customize === 'function') {\n this.modelRecords = customize(internalHTMLElementModels);\n }\n }\n\n getElementModelFromTagName(\n tagName: E | TagName\n ): HTMLElementModel | null {\n if (tagName in this.modelRecords) {\n return this.modelRecords[tagName];\n }\n return null;\n }\n}\n","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _identity =\n/*#__PURE__*/\nrequire(\"./internal/_identity\");\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nmodule.exports = identity;","function _identity(x) {\n return x;\n}\n\nmodule.exports = _identity;","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\nrequire(\"./mergeDeepWithKey\");\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\n\nvar mergeDeepRight =\n/*#__PURE__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\nmodule.exports = mergeDeepRight;","var _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n\nvar _isObject =\n/*#__PURE__*/\nrequire(\"./internal/_isObject\");\n\nvar mergeWithKey =\n/*#__PURE__*/\nrequire(\"./mergeWithKey\");\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\nmodule.exports = mergeDeepWithKey;","function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\n\nmodule.exports = _isObject;","var _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n\nvar _has =\n/*#__PURE__*/\nrequire(\"./internal/_has\");\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\n\nvar mergeWithKey =\n/*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nmodule.exports = mergeWithKey;","import { Linking } from 'react-native';\nimport { RenderersProps } from '../shared-types';\n\nexport async function defaultAOnPress(_e: any, href: string): Promise {\n try {\n await Linking.openURL(href);\n } catch (e) {\n console.warn(`Could not open URL \"${href}\".`, e);\n }\n return null;\n}\n\nconst defaultRendererProps: Required = {\n img: {\n initialDimensions: {\n height: 50,\n width: 50\n },\n enableExperimentalPercentWidth: false\n },\n a: {\n onPress: defaultAOnPress\n },\n ol: {},\n ul: {}\n};\n\nexport default defaultRendererProps;\n","import decimal from './decimal';\nconst decimalLeadingZero = decimal.withPadLeft(2, '0');\nexport default decimalLeadingZero;\n//# sourceMappingURL=decimalLeadingZero.js.map","import CounterStyle from '../CounterStyle';\nconst lowerRoman = CounterStyle.additive({\n 1000: 'm',\n 900: 'cm',\n 500: 'd',\n 400: 'cd',\n 100: 'c',\n 90: 'xc',\n 50: 'l',\n 40: 'xl',\n 10: 'x',\n 9: 'ix',\n 5: 'v',\n 4: 'iv',\n 1: 'i'\n}).withRange(1, 3999);\nexport default lowerRoman;\n//# sourceMappingURL=lowerRoman.js.map","import CounterStyle from '../CounterStyle';\nconst lowerAlpha = CounterStyle.alphabeticFromUnicodeRange(97, 26);\nexport default lowerAlpha;\n//# sourceMappingURL=lowerAlpha.js.map","import CounterStyle from '../CounterStyle';\nconst lowerGreek = CounterStyle.alphabeticFromUnicodeRange(\n/* α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω */\n0x3b1, 24);\nexport default lowerGreek;\n//# sourceMappingURL=lowerGreek.js.map","import CounterStyle from '../CounterStyle';\nexport const upperAlpha = CounterStyle.alphabeticFromUnicodeRange(65, 26);\nexport default upperAlpha;\n//# sourceMappingURL=upperAlpha.js.map","import CounterStyle from '../CounterStyle';\nconst upperRoman = CounterStyle.additive({\n 1000: 'M',\n 900: 'CM',\n 500: 'D',\n 400: 'CD',\n 100: 'C',\n 90: 'XC',\n 50: 'L',\n 40: 'XL',\n 10: 'X',\n 9: 'IX',\n 5: 'V',\n 4: 'IV',\n 1: 'I'\n}).withRange(1, 3999);\nexport default upperRoman;\n//# sourceMappingURL=upperRoman.js.map","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function DisclosureClosedSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const {\n prefixStyle: { top },\n prefixSize\n } = useSymbolicMarkerRendererProps(props, 1);\n return React.createElement(View, {\n style: {\n top,\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderLeftWidth: prefixSize,\n borderLeftColor: props.color,\n borderTopWidth: prefixSize / 2,\n borderTopColor: 'transparent',\n borderBottomWidth: prefixSize / 2,\n borderBottomColor: 'transparent'\n }\n });\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function DisclosureOpenSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const {\n prefixStyle: { top },\n prefixSize\n } = useSymbolicMarkerRendererProps(props, 1);\n return React.createElement(View, {\n style: {\n top,\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderTopWidth: prefixSize,\n borderTopColor: props.color,\n borderLeftWidth: prefixSize / 2,\n borderLeftColor: 'transparent',\n borderRightWidth: prefixSize / 2,\n borderRightColor: 'transparent'\n }\n });\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function CircleSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const { prefixSize, prefixStyle } = useSymbolicMarkerRendererProps(props);\n const style = {\n borderColor: props.color,\n borderWidth: prefixSize / 10,\n borderRadius: prefixSize,\n ...prefixStyle\n };\n return ;\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function DiscSymbolRenderer(props: UnitaryCounterRendererProps) {\n const { prefixSize, prefixStyle } = useSymbolicMarkerRendererProps(props);\n const style = {\n borderRadius: prefixSize,\n backgroundColor: props.color,\n ...prefixStyle\n };\n return ;\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function SquareSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const { prefixStyle } = useSymbolicMarkerRendererProps(props, 1.2);\n return React.createElement(View, {\n style: {\n backgroundColor: props.color,\n ...prefixStyle\n }\n });\n}\n","import pickBy from 'ramda/src/pickBy';\nimport pick from 'ramda/src/pick';\nimport pipe from 'ramda/src/pipe';\nimport mergeRight from 'ramda/src/mergeRight';\nimport { RenderHTMLProps, RenderHTMLAmbiantSharedProps } from '../shared-types';\nimport defaultSharedProps from '../context/defaultSharedProps';\n\nconst selectSharedProps: (\n props: Partial\n) => RenderHTMLAmbiantSharedProps = pipe(\n pick(Object.keys(defaultSharedProps)),\n pickBy((val) => val != null),\n mergeRight(defaultSharedProps) as any\n);\n\nexport default selectSharedProps;\n","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\n\nvar pickBy =\n/*#__PURE__*/\n_curry2(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nmodule.exports = pickBy;","var _objectAssign =\n/*#__PURE__*/\nrequire(\"./internal/_objectAssign\");\n\nvar _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nmodule.exports = mergeRight;","var _has =\n/*#__PURE__*/\nrequire(\"./_has\"); // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nmodule.exports = typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import { TNode } from '@native-html/transient-render-engine';\nimport {\n CustomRenderer,\n CustomRendererProps,\n InternalRenderer,\n InternalRendererProps,\n TDefaultRenderer,\n TDefaultRendererProps\n} from '../shared-types';\nimport { TNodeSubRendererProps } from '../internal-types';\nimport mergeCollapsedMargins from '../helpers/mergeCollapsedMargins';\nimport { useRendererConfig } from '../context/RenderRegistryProvider';\nimport { useDefaultContainerProps } from '../context/SharedPropsProvider';\n\n/**\n * @internal\n */\nexport default function useAssembledCommonProps(\n {\n tnode,\n propsFromParent,\n sharedProps,\n renderIndex,\n renderLength,\n TNodeChildrenRenderer\n }: TNodeSubRendererProps,\n TDefault: TDefaultRenderer | null\n): {\n Renderer: CustomRenderer | InternalRenderer | null;\n assembledProps: CustomRendererProps &\n TDefaultRendererProps &\n InternalRendererProps;\n} {\n const { Default, Custom } = useRendererConfig(tnode);\n const containerProps = useDefaultContainerProps();\n const assembledProps: CustomRendererProps & TDefaultRendererProps = {\n tnode,\n propsFromParent,\n sharedProps,\n TDefaultRenderer: TDefault as TDefaultRenderer,\n TNodeChildrenRenderer,\n style: mergeCollapsedMargins(\n propsFromParent?.collapsedMarginTop,\n tnode.getNativeStyles()\n ) as any,\n type: tnode.type === 'text' || tnode.type === 'phrasing' ? 'text' : 'block',\n propsForChildren: tnode.tagName ? {} : propsFromParent,\n InternalRenderer: Default || (TDefault as any),\n renderIndex,\n renderLength,\n ...containerProps\n };\n return {\n assembledProps,\n Renderer: Custom || Default || null\n };\n}\n","import { TNodeShape, TNodeType } from '@native-html/transient-render-engine';\n\nexport default function mergeCollapsedMargins(\n collapsedMarginTop: number | null | undefined,\n nativeStyle: ReturnType['getNativeStyles']>\n): ReturnType['getNativeStyles']> {\n if (typeof collapsedMarginTop !== 'number') {\n return nativeStyle;\n }\n return {\n ...nativeStyle,\n marginTop: collapsedMarginTop\n };\n}\n","import { TNode } from '@native-html/transient-render-engine';\nimport { ComponentType } from 'react';\nimport { CustomRendererProps } from '..';\nimport lookupRecord from '../helpers/lookupRecord';\nimport BRRenderer from '../renderers/BRRenderer';\nimport WBRRenderer from '../renderers/WBRRenderer';\nimport {\n CustomRenderer,\n HTMLElementModelRecord,\n InternalRenderer\n} from '../shared-types';\nimport internalRenderers from './internalRenderers';\nimport {\n CustomTagRendererRecord,\n InternalTextContentRenderer\n} from './render-types';\n\nconst internalTextRenderers: Record = {\n br: BRRenderer,\n wbr: WBRRenderer\n};\n\nexport interface RendererConfig {\n Custom: CustomRenderer | null;\n Default: InternalRenderer | null;\n}\n\nexport default class RenderRegistry {\n constructor(\n customRenderers: CustomTagRendererRecord = {},\n elementModels: HTMLElementModelRecord\n ) {\n this.customRenderers = customRenderers;\n this.elementModels = elementModels;\n }\n\n private readonly customRenderers: CustomTagRendererRecord = {};\n private readonly elementModels: HTMLElementModelRecord;\n\n private getCustomRendererForTNode(\n tnode: T\n ): ComponentType> | null {\n if (tnode.tagName! in this.customRenderers) {\n const renderer = this.customRenderers[tnode.tagName!];\n /* istanbul ignore next */\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n // In DEV, check for discrepancies.\n const elementModel = this.elementModels[tnode.tagName!];\n if (!elementModel) {\n console.warn(\n `You are attempting to render a ${tnode.tagName!} tag but you didn't provide an HTMLElementModel. Make sure you register a model for this tag in \"customHTMLElementModels\" prop. `\n );\n } else if (!tnode.matchContentModel(elementModel.contentModel)) {\n console.warn(\n `You are attempting to render \"${tnode.tagName}\" of type \"${tnode.displayName}\", but the registered renderer is of content model type ${elementModel?.contentModel} which is incompatible with \"${tnode.displayName}\".`\n );\n }\n }\n return renderer as any;\n }\n return null;\n }\n\n private getDefaultRendererForTNode(\n tnode: T\n ): InternalRenderer | null {\n if (tnode.tagName! in internalRenderers) {\n //@ts-expect-error we know that the tagName is in the map\n return internalRenderers[tnode.tagName!];\n }\n return null;\n }\n\n getInternalTextRenderer(tagName: string | null) {\n if (lookupRecord(internalTextRenderers, tagName)) {\n return internalTextRenderers[tagName];\n }\n return null;\n }\n\n getRendererConfigForTNode(tnode: T): RendererConfig {\n return {\n Custom: this.getCustomRendererForTNode(tnode),\n Default: this.getDefaultRendererForTNode(tnode)\n };\n }\n}\n","export default function lookupRecord>(\n record: T,\n key: any\n): key is keyof T {\n const value = record[key];\n return !!value;\n}\n","import { TNode } from '@native-html/transient-render-engine';\nimport React from 'react';\nimport { Platform, Text, View } from 'react-native';\nimport { InternalTextContentRenderer } from '../render/render-types';\n\nconst emptyProps = {\n testID: 'br'\n};\n\nconst isWeb = Platform.OS === 'web';\n\nfunction renderEmptyLineBreak(tnode: TNode) {\n const lineHeight =\n tnode.styles.nativeTextFlow.lineHeight ||\n tnode.styles.nativeTextFlow.fontSize! * 1.4;\n return ;\n}\n\nconst BRRenderer: InternalTextContentRenderer = function BRRenderer({\n renderIndex,\n renderLength,\n sharedProps,\n tnode\n}) {\n // If it is the last child and BR collapsing is enabled, render an empty\n // string to prevent inserting an undesired space to follow HTML specs,\n // unless the platform is web and it is also the first child.\n //\n // Note that we are taking advantage of the Ghost Line oddity in React\n // Native, where an empty element displays a line, since a\n // line break opening **and** closing an inline formatting context\n // should be printed as a one line-height item.\n const isFirst = renderIndex === 0;\n const isLast = renderIndex === renderLength - 1;\n const isLonelyBreak = isFirst && isLast;\n const shouldCollapse =\n sharedProps.enableExperimentalBRCollapsing &&\n (isFirst ? isLast && !isWeb : isLast);\n return isLonelyBreak && shouldCollapse\n ? renderEmptyLineBreak(tnode)\n : React.createElement(Text, emptyProps, shouldCollapse ? '' : '\\n');\n};\n\nBRRenderer.isNativeInternalTextRenderer = true;\n\nexport default BRRenderer;\n","import React from 'react';\nimport { Text } from 'react-native';\nimport { InternalTextContentRenderer } from '../render/render-types';\n\nconst emptyProps = {};\n\nconst WBRRenderer: InternalTextContentRenderer = function WordBreakRenderer() {\n return React.createElement(Text, emptyProps, '\\u200b');\n};\n\nWBRRenderer.isNativeInternalTextRenderer = true;\n\nexport default WBRRenderer;\n","import ARenderer from '../renderers/ARenderer';\nimport IMGRenderer from '../renderers/IMGRenderer';\nimport OLRenderer from '../renderers/OLRenderer';\nimport ULRenderer from '../renderers/ULRenderer';\n\nconst internalRenderers = {\n img: IMGRenderer,\n ul: ULRenderer,\n ol: OLRenderer,\n a: ARenderer\n};\n\nexport default internalRenderers;\n","import URI from 'urijs';\n\n/**\n * This function normalize relative and protocol-relative URLs to absolute\n * URLs as per {@link https://tools.ietf.org/html/rfc1808 | RFC1808}.\n *\n * @param url - The URL to normalize.\n * @param baseUrl - The base URL to resolve relative and protocol-relative URLs.\n */\nexport default function normalizeResourceLocator(\n url: string,\n baseUrl?: string\n) {\n try {\n return baseUrl ? URI(url).absoluteTo(URI(baseUrl)).href() : URI(url).href();\n } catch (e) {\n return url;\n }\n}\n","/*!\n * URI.js - Mutating URLs\n *\n * Version: 1.19.11\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory(require('./punycode'), require('./IPv6'), require('./SecondLevelDomains'));\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['./punycode', './IPv6', './SecondLevelDomains'], factory);\n } else {\n // Browser globals (root is window)\n root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains, root);\n }\n}(this, function (punycode, IPv6, SLD, root) {\n 'use strict';\n /*global location, escape, unescape */\n // FIXME: v2.0.0 renamce non-camelCase properties to uppercase\n /*jshint camelcase: false */\n\n // save current URI variable, if any\n var _URI = root && root.URI;\n\n function URI(url, base) {\n var _urlSupplied = arguments.length >= 1;\n var _baseSupplied = arguments.length >= 2;\n\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof URI)) {\n if (_urlSupplied) {\n if (_baseSupplied) {\n return new URI(url, base);\n }\n\n return new URI(url);\n }\n\n return new URI();\n }\n\n if (url === undefined) {\n if (_urlSupplied) {\n throw new TypeError('undefined is not a valid argument for URI');\n }\n\n if (typeof location !== 'undefined') {\n url = location.href + '';\n } else {\n url = '';\n }\n }\n\n if (url === null) {\n if (_urlSupplied) {\n throw new TypeError('null is not a valid argument for URI');\n }\n }\n\n this.href(url);\n\n // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor\n if (base !== undefined) {\n return this.absoluteTo(base);\n }\n\n return this;\n }\n\n function isInteger(value) {\n return /^[0-9]+$/.test(value);\n }\n\n URI.version = '1.19.11';\n\n var p = URI.prototype;\n var hasOwn = Object.prototype.hasOwnProperty;\n\n function escapeRegEx(string) {\n // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963\n return string.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function getType(value) {\n // IE8 doesn't return [Object Undefined] but [Object Object] for undefined value\n if (value === undefined) {\n return 'Undefined';\n }\n\n return String(Object.prototype.toString.call(value)).slice(8, -1);\n }\n\n function isArray(obj) {\n return getType(obj) === 'Array';\n }\n\n function filterArrayValues(data, value) {\n var lookup = {};\n var i, length;\n\n if (getType(value) === 'RegExp') {\n lookup = null;\n } else if (isArray(value)) {\n for (i = 0, length = value.length; i < length; i++) {\n lookup[value[i]] = true;\n }\n } else {\n lookup[value] = true;\n }\n\n for (i = 0, length = data.length; i < length; i++) {\n /*jshint laxbreak: true */\n var _match = lookup && lookup[data[i]] !== undefined\n || !lookup && value.test(data[i]);\n /*jshint laxbreak: false */\n if (_match) {\n data.splice(i, 1);\n length--;\n i--;\n }\n }\n\n return data;\n }\n\n function arrayContains(list, value) {\n var i, length;\n\n // value may be string, number, array, regexp\n if (isArray(value)) {\n // Note: this can be optimized to O(n) (instead of current O(m * n))\n for (i = 0, length = value.length; i < length; i++) {\n if (!arrayContains(list, value[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n var _type = getType(value);\n for (i = 0, length = list.length; i < length; i++) {\n if (_type === 'RegExp') {\n if (typeof list[i] === 'string' && list[i].match(value)) {\n return true;\n }\n } else if (list[i] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n function arraysEqual(one, two) {\n if (!isArray(one) || !isArray(two)) {\n return false;\n }\n\n // arrays can't be equal if they have different amount of content\n if (one.length !== two.length) {\n return false;\n }\n\n one.sort();\n two.sort();\n\n for (var i = 0, l = one.length; i < l; i++) {\n if (one[i] !== two[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function trimSlashes(text) {\n var trim_expression = /^\\/+|\\/+$/g;\n return text.replace(trim_expression, '');\n }\n\n URI._parts = function() {\n return {\n protocol: null,\n username: null,\n password: null,\n hostname: null,\n urn: null,\n port: null,\n path: null,\n query: null,\n fragment: null,\n // state\n preventInvalidHostname: URI.preventInvalidHostname,\n duplicateQueryParameters: URI.duplicateQueryParameters,\n escapeQuerySpace: URI.escapeQuerySpace\n };\n };\n // state: throw on invalid hostname\n // see https://github.com/medialize/URI.js/pull/345\n // and https://github.com/medialize/URI.js/issues/354\n URI.preventInvalidHostname = false;\n // state: allow duplicate query parameters (a=1&a=1)\n URI.duplicateQueryParameters = false;\n // state: replaces + with %20 (space in query strings)\n URI.escapeQuerySpace = true;\n // static properties\n URI.protocol_expression = /^[a-z][a-z0-9.+-]*$/i;\n URI.idn_expression = /[^a-z0-9\\._-]/i;\n URI.punycode_expression = /(xn--)/i;\n // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care?\n URI.ip4_expression = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\n // credits to Rich Brown\n // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096\n // specification: http://www.ietf.org/rfc/rfc4291.txt\n URI.ip6_expression = /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/;\n // expression used is \"gruber revised\" (@gruber v2) determined to be the\n // best solution in a regex-golf we did a couple of ages ago at\n // * http://mathiasbynens.be/demo/url-regex\n // * http://rodneyrehm.de/t/url-regex.html\n URI.find_uri_expression = /\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))/ig;\n URI.findUri = {\n // valid \"scheme://\" or \"www.\"\n start: /\\b(?:([a-z][a-z0-9.+-]*:\\/\\/)|www\\.)/gi,\n // everything up to the next whitespace\n end: /[\\s\\r\\n]|$/,\n // trim trailing punctuation captured by end RegExp\n trim: /[`!()\\[\\]{};:'\".,<>?«»“”„‘’]+$/,\n // balanced parens inclusion (), [], {}, <>\n parens: /(\\([^\\)]*\\)|\\[[^\\]]*\\]|\\{[^}]*\\}|<[^>]*>)/g,\n };\n URI.leading_whitespace_expression = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n // https://infra.spec.whatwg.org/#ascii-tab-or-newline\n URI.ascii_tab_whitespace = /[\\u0009\\u000A\\u000D]+/g\n // http://www.iana.org/assignments/uri-schemes.html\n // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports\n URI.defaultPorts = {\n http: '80',\n https: '443',\n ftp: '21',\n gopher: '70',\n ws: '80',\n wss: '443'\n };\n // list of protocols which always require a hostname\n URI.hostProtocols = [\n 'http',\n 'https'\n ];\n\n // allowed hostname characters according to RFC 3986\n // ALPHA DIGIT \"-\" \".\" \"_\" \"~\" \"!\" \"$\" \"&\" \"'\" \"(\" \")\" \"*\" \"+\" \",\" \";\" \"=\" %encoded\n // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - _\n URI.invalid_hostname_characters = /[^a-zA-Z0-9\\.\\-:_]/;\n // map DOM Elements to their URI attribute\n URI.domAttributes = {\n 'a': 'href',\n 'blockquote': 'cite',\n 'link': 'href',\n 'base': 'href',\n 'script': 'src',\n 'form': 'action',\n 'img': 'src',\n 'area': 'href',\n 'iframe': 'src',\n 'embed': 'src',\n 'source': 'src',\n 'track': 'src',\n 'input': 'src', // but only if type=\"image\"\n 'audio': 'src',\n 'video': 'src'\n };\n URI.getDomAttribute = function(node) {\n if (!node || !node.nodeName) {\n return undefined;\n }\n\n var nodeName = node.nodeName.toLowerCase();\n // should only expose src for type=\"image\"\n if (nodeName === 'input' && node.type !== 'image') {\n return undefined;\n }\n\n return URI.domAttributes[nodeName];\n };\n\n function escapeForDumbFirefox36(value) {\n // https://github.com/medialize/URI.js/issues/91\n return escape(value);\n }\n\n // encoding / decoding according to RFC3986\n function strictEncodeURIComponent(string) {\n // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent\n return encodeURIComponent(string)\n .replace(/[!'()*]/g, escapeForDumbFirefox36)\n .replace(/\\*/g, '%2A');\n }\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n URI.iso8859 = function() {\n URI.encode = escape;\n URI.decode = unescape;\n };\n URI.unicode = function() {\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n };\n URI.characters = {\n pathname: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig,\n map: {\n // -._~!'()*\n '%24': '$',\n '%26': '&',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%3A': ':',\n '%40': '@'\n }\n },\n decode: {\n expression: /[\\/\\?#]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23'\n }\n }\n },\n reserved: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,\n map: {\n // gen-delims\n '%3A': ':',\n '%2F': '/',\n '%3F': '?',\n '%23': '#',\n '%5B': '[',\n '%5D': ']',\n '%40': '@',\n // sub-delims\n '%21': '!',\n '%24': '$',\n '%26': '&',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '='\n }\n }\n },\n urnpath: {\n // The characters under `encode` are the characters called out by RFC 2141 as being acceptable\n // for usage in a URN. RFC2141 also calls out \"-\", \".\", and \"_\" as acceptable characters, but\n // these aren't encoded by encodeURIComponent, so we don't have to call them out here. Also\n // note that the colon character is not featured in the encoding map; this is because URI.js\n // gives the colons in URNs semantic meaning as the delimiters of path segements, and so it\n // should not appear unencoded in a segment itself.\n // See also the note above about RFC3986 and capitalalized hex digits.\n encode: {\n expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,\n map: {\n '%21': '!',\n '%24': '$',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%40': '@'\n }\n },\n // These characters are the characters called out by RFC2141 as \"reserved\" characters that\n // should never appear in a URN, plus the colon character (see note above).\n decode: {\n expression: /[\\/\\?#:]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23',\n ':': '%3A'\n }\n }\n }\n };\n URI.encodeQuery = function(string, escapeQuerySpace) {\n var escaped = URI.encode(string + '');\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n return escapeQuerySpace ? escaped.replace(/%20/g, '+') : escaped;\n };\n URI.decodeQuery = function(string, escapeQuerySpace) {\n string += '';\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n try {\n return URI.decode(escapeQuerySpace ? string.replace(/\\+/g, '%20') : string);\n } catch(e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n // generate encode/decode path functions\n var _parts = {'encode':'encode', 'decode':'decode'};\n var _part;\n var generateAccessor = function(_group, _part) {\n return function(string) {\n try {\n return URI[_part](string + '').replace(URI.characters[_group][_part].expression, function(c) {\n return URI.characters[_group][_part].map[c];\n });\n } catch (e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n };\n\n for (_part in _parts) {\n URI[_part + 'PathSegment'] = generateAccessor('pathname', _parts[_part]);\n URI[_part + 'UrnPathSegment'] = generateAccessor('urnpath', _parts[_part]);\n }\n\n var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) {\n return function(string) {\n // Why pass in names of functions, rather than the function objects themselves? The\n // definitions of some functions (but in particular, URI.decode) will occasionally change due\n // to URI.js having ISO8859 and Unicode modes. Passing in the name and getting it will ensure\n // that the functions we use here are \"fresh\".\n var actualCodingFunc;\n if (!_innerCodingFuncName) {\n actualCodingFunc = URI[_codingFuncName];\n } else {\n actualCodingFunc = function(string) {\n return URI[_codingFuncName](URI[_innerCodingFuncName](string));\n };\n }\n\n var segments = (string + '').split(_sep);\n\n for (var i = 0, length = segments.length; i < length; i++) {\n segments[i] = actualCodingFunc(segments[i]);\n }\n\n return segments.join(_sep);\n };\n };\n\n // This takes place outside the above loop because we don't want, e.g., encodeUrnPath functions.\n URI.decodePath = generateSegmentedPathFunction('/', 'decodePathSegment');\n URI.decodeUrnPath = generateSegmentedPathFunction(':', 'decodeUrnPathSegment');\n URI.recodePath = generateSegmentedPathFunction('/', 'encodePathSegment', 'decode');\n URI.recodeUrnPath = generateSegmentedPathFunction(':', 'encodeUrnPathSegment', 'decode');\n\n URI.encodeReserved = generateAccessor('reserved', 'encode');\n\n URI.parse = function(string, parts) {\n var pos;\n if (!parts) {\n parts = {\n preventInvalidHostname: URI.preventInvalidHostname\n };\n }\n\n string = string.replace(URI.leading_whitespace_expression, '')\n // https://infra.spec.whatwg.org/#ascii-tab-or-newline\n string = string.replace(URI.ascii_tab_whitespace, '')\n\n // [protocol\"://\"[username[\":\"password]\"@\"]hostname[\":\"port]\"/\"?][path][\"?\"querystring][\"#\"fragment]\n\n // extract fragment\n pos = string.indexOf('#');\n if (pos > -1) {\n // escaping?\n parts.fragment = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // extract query\n pos = string.indexOf('?');\n if (pos > -1) {\n // escaping?\n parts.query = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // slashes and backslashes have lost all meaning for the web protocols (https, http, wss, ws)\n string = string.replace(/^(https?|ftp|wss?)?:+[/\\\\]*/i, '$1://');\n // slashes and backslashes have lost all meaning for scheme relative URLs\n string = string.replace(/^[/\\\\]{2,}/i, '//');\n\n // extract protocol\n if (string.substring(0, 2) === '//') {\n // relative-scheme\n parts.protocol = null;\n string = string.substring(2);\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n pos = string.indexOf(':');\n if (pos > -1) {\n parts.protocol = string.substring(0, pos) || null;\n if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) {\n // : may be within the path\n parts.protocol = undefined;\n } else if (string.substring(pos + 1, pos + 3).replace(/\\\\/g, '/') === '//') {\n string = string.substring(pos + 3);\n\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n string = string.substring(pos + 1);\n parts.urn = true;\n }\n }\n }\n\n // what's left must be the path\n parts.path = string;\n\n // and we're done\n return parts;\n };\n URI.parseHost = function(string, parts) {\n if (!string) {\n string = '';\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://github.com/joyent/node/blob/386fd24f49b0e9d1a8a076592a404168faeecc34/lib/url.js#L115-L124\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n // https://github.com/medialize/URI.js/pull/233\n string = string.replace(/\\\\/g, '/');\n\n // extract host:port\n var pos = string.indexOf('/');\n var bracketPos;\n var t;\n\n if (pos === -1) {\n pos = string.length;\n }\n\n if (string.charAt(0) === '[') {\n // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6\n // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts\n // IPv6+port in the format [2001:db8::1]:80 (for the time being)\n bracketPos = string.indexOf(']');\n parts.hostname = string.substring(1, bracketPos) || null;\n parts.port = string.substring(bracketPos + 2, pos) || null;\n if (parts.port === '/') {\n parts.port = null;\n }\n } else {\n var firstColon = string.indexOf(':');\n var firstSlash = string.indexOf('/');\n var nextColon = string.indexOf(':', firstColon + 1);\n if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) {\n // IPv6 host contains multiple colons - but no port\n // this notation is actually not allowed by RFC 3986, but we're a liberal parser\n parts.hostname = string.substring(0, pos) || null;\n parts.port = null;\n } else {\n t = string.substring(0, pos).split(':');\n parts.hostname = t[0] || null;\n parts.port = t[1] || null;\n }\n }\n\n if (parts.hostname && string.substring(pos).charAt(0) !== '/') {\n pos++;\n string = '/' + string;\n }\n\n if (parts.preventInvalidHostname) {\n URI.ensureValidHostname(parts.hostname, parts.protocol);\n }\n\n if (parts.port) {\n URI.ensureValidPort(parts.port);\n }\n\n return string.substring(pos) || '/';\n };\n URI.parseAuthority = function(string, parts) {\n string = URI.parseUserinfo(string, parts);\n return URI.parseHost(string, parts);\n };\n URI.parseUserinfo = function(string, parts) {\n // extract username:password\n var _string = string\n var firstBackSlash = string.indexOf('\\\\');\n if (firstBackSlash !== -1) {\n string = string.replace(/\\\\/g, '/')\n }\n var firstSlash = string.indexOf('/');\n var pos = string.lastIndexOf('@', firstSlash > -1 ? firstSlash : string.length - 1);\n var t;\n\n // authority@ must come before /path or \\path\n if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) {\n t = string.substring(0, pos).split(':');\n parts.username = t[0] ? URI.decode(t[0]) : null;\n t.shift();\n parts.password = t[0] ? URI.decode(t.join(':')) : null;\n string = _string.substring(pos + 1);\n } else {\n parts.username = null;\n parts.password = null;\n }\n\n return string;\n };\n URI.parseQuery = function(string, escapeQuerySpace) {\n if (!string) {\n return {};\n }\n\n // throw out the funky business - \"?\"[name\"=\"value\"&\"]+\n string = string.replace(/&+/g, '&').replace(/^\\?*&*|&+$/g, '');\n\n if (!string) {\n return {};\n }\n\n var items = {};\n var splits = string.split('&');\n var length = splits.length;\n var v, name, value;\n\n for (var i = 0; i < length; i++) {\n v = splits[i].split('=');\n name = URI.decodeQuery(v.shift(), escapeQuerySpace);\n // no \"=\" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters\n value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null;\n\n if (name === '__proto__') {\n // ignore attempt at exploiting JavaScript internals\n continue;\n } else if (hasOwn.call(items, name)) {\n if (typeof items[name] === 'string' || items[name] === null) {\n items[name] = [items[name]];\n }\n\n items[name].push(value);\n } else {\n items[name] = value;\n }\n }\n\n return items;\n };\n\n URI.build = function(parts) {\n var t = '';\n var requireAbsolutePath = false\n\n if (parts.protocol) {\n t += parts.protocol + ':';\n }\n\n if (!parts.urn && (t || parts.hostname)) {\n t += '//';\n requireAbsolutePath = true\n }\n\n t += (URI.buildAuthority(parts) || '');\n\n if (typeof parts.path === 'string') {\n if (parts.path.charAt(0) !== '/' && requireAbsolutePath) {\n t += '/';\n }\n\n t += parts.path;\n }\n\n if (typeof parts.query === 'string' && parts.query) {\n t += '?' + parts.query;\n }\n\n if (typeof parts.fragment === 'string' && parts.fragment) {\n t += '#' + parts.fragment;\n }\n return t;\n };\n URI.buildHost = function(parts) {\n var t = '';\n\n if (!parts.hostname) {\n return '';\n } else if (URI.ip6_expression.test(parts.hostname)) {\n t += '[' + parts.hostname + ']';\n } else {\n t += parts.hostname;\n }\n\n if (parts.port) {\n t += ':' + parts.port;\n }\n\n return t;\n };\n URI.buildAuthority = function(parts) {\n return URI.buildUserinfo(parts) + URI.buildHost(parts);\n };\n URI.buildUserinfo = function(parts) {\n var t = '';\n\n if (parts.username) {\n t += URI.encode(parts.username);\n }\n\n if (parts.password) {\n t += ':' + URI.encode(parts.password);\n }\n\n if (t) {\n t += '@';\n }\n\n return t;\n };\n URI.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) {\n // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html\n // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed\n // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax!\n // URI.js treats the query string as being application/x-www-form-urlencoded\n // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type\n\n var t = '';\n var unique, key, i, length;\n for (key in data) {\n if (key === '__proto__') {\n // ignore attempt at exploiting JavaScript internals\n continue;\n } else if (hasOwn.call(data, key)) {\n if (isArray(data[key])) {\n unique = {};\n for (i = 0, length = data[key].length; i < length; i++) {\n if (data[key][i] !== undefined && unique[data[key][i] + ''] === undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key][i], escapeQuerySpace);\n if (duplicateQueryParameters !== true) {\n unique[data[key][i] + ''] = true;\n }\n }\n }\n } else if (data[key] !== undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key], escapeQuerySpace);\n }\n }\n }\n\n return t.substring(1);\n };\n URI.buildQueryParameter = function(name, value, escapeQuerySpace) {\n // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded\n // don't append \"=\" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization\n return URI.encodeQuery(name, escapeQuerySpace) + (value !== null ? '=' + URI.encodeQuery(value, escapeQuerySpace) : '');\n };\n\n URI.addQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.addQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (data[name] === undefined) {\n data[name] = value;\n return;\n } else if (typeof data[name] === 'string') {\n data[name] = [data[name]];\n }\n\n if (!isArray(value)) {\n value = [value];\n }\n\n data[name] = (data[name] || []).concat(value);\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.setQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.setQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n data[name] = value === undefined ? null : value;\n } else {\n throw new TypeError('URI.setQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.removeQuery = function(data, name, value) {\n var i, length, key;\n\n if (isArray(name)) {\n for (i = 0, length = name.length; i < length; i++) {\n data[name[i]] = undefined;\n }\n } else if (getType(name) === 'RegExp') {\n for (key in data) {\n if (name.test(key)) {\n data[key] = undefined;\n }\n }\n } else if (typeof name === 'object') {\n for (key in name) {\n if (hasOwn.call(name, key)) {\n URI.removeQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (value !== undefined) {\n if (getType(value) === 'RegExp') {\n if (!isArray(data[name]) && value.test(data[name])) {\n data[name] = undefined;\n } else {\n data[name] = filterArrayValues(data[name], value);\n }\n } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) {\n data[name] = undefined;\n } else if (isArray(data[name])) {\n data[name] = filterArrayValues(data[name], value);\n }\n } else {\n data[name] = undefined;\n }\n } else {\n throw new TypeError('URI.removeQuery() accepts an object, string, RegExp as the first parameter');\n }\n };\n URI.hasQuery = function(data, name, value, withinArray) {\n switch (getType(name)) {\n case 'String':\n // Nothing to do here\n break;\n\n case 'RegExp':\n for (var key in data) {\n if (hasOwn.call(data, key)) {\n if (name.test(key) && (value === undefined || URI.hasQuery(data, key, value))) {\n return true;\n }\n }\n }\n\n return false;\n\n case 'Object':\n for (var _key in name) {\n if (hasOwn.call(name, _key)) {\n if (!URI.hasQuery(data, _key, name[_key])) {\n return false;\n }\n }\n }\n\n return true;\n\n default:\n throw new TypeError('URI.hasQuery() accepts a string, regular expression or object as the name parameter');\n }\n\n switch (getType(value)) {\n case 'Undefined':\n // true if exists (but may be empty)\n return name in data; // data[name] !== undefined;\n\n case 'Boolean':\n // true if exists and non-empty\n var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]);\n return value === _booly;\n\n case 'Function':\n // allow complex comparison\n return !!value(data[name], name, data);\n\n case 'Array':\n if (!isArray(data[name])) {\n return false;\n }\n\n var op = withinArray ? arrayContains : arraysEqual;\n return op(data[name], value);\n\n case 'RegExp':\n if (!isArray(data[name])) {\n return Boolean(data[name] && data[name].match(value));\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n case 'Number':\n value = String(value);\n /* falls through */\n case 'String':\n if (!isArray(data[name])) {\n return data[name] === value;\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n default:\n throw new TypeError('URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter');\n }\n };\n\n\n URI.joinPaths = function() {\n var input = [];\n var segments = [];\n var nonEmptySegments = 0;\n\n for (var i = 0; i < arguments.length; i++) {\n var url = new URI(arguments[i]);\n input.push(url);\n var _segments = url.segment();\n for (var s = 0; s < _segments.length; s++) {\n if (typeof _segments[s] === 'string') {\n segments.push(_segments[s]);\n }\n\n if (_segments[s]) {\n nonEmptySegments++;\n }\n }\n }\n\n if (!segments.length || !nonEmptySegments) {\n return new URI('');\n }\n\n var uri = new URI('').segment(segments);\n\n if (input[0].path() === '' || input[0].path().slice(0, 1) === '/') {\n uri.path('/' + uri.path());\n }\n\n return uri.normalize();\n };\n\n URI.commonPath = function(one, two) {\n var length = Math.min(one.length, two.length);\n var pos;\n\n // find first non-matching character\n for (pos = 0; pos < length; pos++) {\n if (one.charAt(pos) !== two.charAt(pos)) {\n pos--;\n break;\n }\n }\n\n if (pos < 1) {\n return one.charAt(0) === two.charAt(0) && one.charAt(0) === '/' ? '/' : '';\n }\n\n // revert to last /\n if (one.charAt(pos) !== '/' || two.charAt(pos) !== '/') {\n pos = one.substring(0, pos).lastIndexOf('/');\n }\n\n return one.substring(0, pos + 1);\n };\n\n URI.withinString = function(string, callback, options) {\n options || (options = {});\n var _start = options.start || URI.findUri.start;\n var _end = options.end || URI.findUri.end;\n var _trim = options.trim || URI.findUri.trim;\n var _parens = options.parens || URI.findUri.parens;\n var _attributeOpen = /[a-z0-9-]=[\"']?$/i;\n\n _start.lastIndex = 0;\n while (true) {\n var match = _start.exec(string);\n if (!match) {\n break;\n }\n\n var start = match.index;\n if (options.ignoreHtml) {\n // attribut(e=[\"']?$)\n var attributeOpen = string.slice(Math.max(start - 3, 0), start);\n if (attributeOpen && _attributeOpen.test(attributeOpen)) {\n continue;\n }\n }\n\n var end = start + string.slice(start).search(_end);\n var slice = string.slice(start, end);\n // make sure we include well balanced parens\n var parensEnd = -1;\n while (true) {\n var parensMatch = _parens.exec(slice);\n if (!parensMatch) {\n break;\n }\n\n var parensMatchEnd = parensMatch.index + parensMatch[0].length;\n parensEnd = Math.max(parensEnd, parensMatchEnd);\n }\n\n if (parensEnd > -1) {\n slice = slice.slice(0, parensEnd) + slice.slice(parensEnd).replace(_trim, '');\n } else {\n slice = slice.replace(_trim, '');\n }\n\n if (slice.length <= match[0].length) {\n // the extract only contains the starting marker of a URI,\n // e.g. \"www\" or \"http://\"\n continue;\n }\n\n if (options.ignore && options.ignore.test(slice)) {\n continue;\n }\n\n end = start + slice.length;\n var result = callback(slice, start, end, string);\n if (result === undefined) {\n _start.lastIndex = end;\n continue;\n }\n\n result = String(result);\n string = string.slice(0, start) + result + string.slice(end);\n _start.lastIndex = start + result.length;\n }\n\n _start.lastIndex = 0;\n return string;\n };\n\n URI.ensureValidHostname = function(v, protocol) {\n // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986)\n // they are not part of DNS and therefore ignored by URI.js\n\n var hasHostname = !!v; // not null and not an empty string\n var hasProtocol = !!protocol;\n var rejectEmptyHostname = false;\n\n if (hasProtocol) {\n rejectEmptyHostname = arrayContains(URI.hostProtocols, protocol);\n }\n\n if (rejectEmptyHostname && !hasHostname) {\n throw new TypeError('Hostname cannot be empty, if protocol is ' + protocol);\n } else if (v && v.match(URI.invalid_hostname_characters)) {\n // test punycode\n if (!punycode) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');\n }\n if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_]');\n }\n }\n };\n\n URI.ensureValidPort = function (v) {\n if (!v) {\n return;\n }\n\n var port = Number(v);\n if (isInteger(port) && (port > 0) && (port < 65536)) {\n return;\n }\n\n throw new TypeError('Port \"' + v + '\" is not a valid port');\n };\n\n // noConflict\n URI.noConflict = function(removeAll) {\n if (removeAll) {\n var unconflicted = {\n URI: this.noConflict()\n };\n\n if (root.URITemplate && typeof root.URITemplate.noConflict === 'function') {\n unconflicted.URITemplate = root.URITemplate.noConflict();\n }\n\n if (root.IPv6 && typeof root.IPv6.noConflict === 'function') {\n unconflicted.IPv6 = root.IPv6.noConflict();\n }\n\n if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === 'function') {\n unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict();\n }\n\n return unconflicted;\n } else if (root.URI === this) {\n root.URI = _URI;\n }\n\n return this;\n };\n\n p.build = function(deferBuild) {\n if (deferBuild === true) {\n this._deferred_build = true;\n } else if (deferBuild === undefined || this._deferred_build) {\n this._string = URI.build(this._parts);\n this._deferred_build = false;\n }\n\n return this;\n };\n\n p.clone = function() {\n return new URI(this);\n };\n\n p.valueOf = p.toString = function() {\n return this.build(false)._string;\n };\n\n\n function generateSimpleAccessor(_part){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n this._parts[_part] = v || null;\n this.build(!build);\n return this;\n }\n };\n }\n\n function generatePrefixAccessor(_part, _key){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n if (v !== null) {\n v = v + '';\n if (v.charAt(0) === _key) {\n v = v.substring(1);\n }\n }\n\n this._parts[_part] = v;\n this.build(!build);\n return this;\n }\n };\n }\n\n p.protocol = generateSimpleAccessor('protocol');\n p.username = generateSimpleAccessor('username');\n p.password = generateSimpleAccessor('password');\n p.hostname = generateSimpleAccessor('hostname');\n p.port = generateSimpleAccessor('port');\n p.query = generatePrefixAccessor('query', '?');\n p.fragment = generatePrefixAccessor('fragment', '#');\n\n p.search = function(v, build) {\n var t = this.query(v, build);\n return typeof t === 'string' && t.length ? ('?' + t) : t;\n };\n p.hash = function(v, build) {\n var t = this.fragment(v, build);\n return typeof t === 'string' && t.length ? ('#' + t) : t;\n };\n\n p.pathname = function(v, build) {\n if (v === undefined || v === true) {\n var res = this._parts.path || (this._parts.hostname ? '/' : '');\n return v ? (this._parts.urn ? URI.decodeUrnPath : URI.decodePath)(res) : res;\n } else {\n if (this._parts.urn) {\n this._parts.path = v ? URI.recodeUrnPath(v) : '';\n } else {\n this._parts.path = v ? URI.recodePath(v) : '/';\n }\n this.build(!build);\n return this;\n }\n };\n p.path = p.pathname;\n p.href = function(href, build) {\n var key;\n\n if (href === undefined) {\n return this.toString();\n }\n\n this._string = '';\n this._parts = URI._parts();\n\n var _URI = href instanceof URI;\n var _object = typeof href === 'object' && (href.hostname || href.path || href.pathname);\n if (href.nodeName) {\n var attribute = URI.getDomAttribute(href);\n href = href[attribute] || '';\n _object = false;\n }\n\n // window.location is reported to be an object, but it's not the sort\n // of object we're looking for:\n // * location.protocol ends with a colon\n // * location.query != object.search\n // * location.hash != object.fragment\n // simply serializing the unknown object should do the trick\n // (for location, not for everything...)\n if (!_URI && _object && href.pathname !== undefined) {\n href = href.toString();\n }\n\n if (typeof href === 'string' || href instanceof String) {\n this._parts = URI.parse(String(href), this._parts);\n } else if (_URI || _object) {\n var src = _URI ? href._parts : href;\n for (key in src) {\n if (key === 'query') { continue; }\n if (hasOwn.call(this._parts, key)) {\n this._parts[key] = src[key];\n }\n }\n if (src.query) {\n this.query(src.query, false);\n }\n } else {\n throw new TypeError('invalid input');\n }\n\n this.build(!build);\n return this;\n };\n\n // identification accessors\n p.is = function(what) {\n var ip = false;\n var ip4 = false;\n var ip6 = false;\n var name = false;\n var sld = false;\n var idn = false;\n var punycode = false;\n var relative = !this._parts.urn;\n\n if (this._parts.hostname) {\n relative = false;\n ip4 = URI.ip4_expression.test(this._parts.hostname);\n ip6 = URI.ip6_expression.test(this._parts.hostname);\n ip = ip4 || ip6;\n name = !ip;\n sld = name && SLD && SLD.has(this._parts.hostname);\n idn = name && URI.idn_expression.test(this._parts.hostname);\n punycode = name && URI.punycode_expression.test(this._parts.hostname);\n }\n\n switch (what.toLowerCase()) {\n case 'relative':\n return relative;\n\n case 'absolute':\n return !relative;\n\n // hostname identification\n case 'domain':\n case 'name':\n return name;\n\n case 'sld':\n return sld;\n\n case 'ip':\n return ip;\n\n case 'ip4':\n case 'ipv4':\n case 'inet4':\n return ip4;\n\n case 'ip6':\n case 'ipv6':\n case 'inet6':\n return ip6;\n\n case 'idn':\n return idn;\n\n case 'url':\n return !this._parts.urn;\n\n case 'urn':\n return !!this._parts.urn;\n\n case 'punycode':\n return punycode;\n }\n\n return null;\n };\n\n // component specific input validation\n var _protocol = p.protocol;\n var _port = p.port;\n var _hostname = p.hostname;\n\n p.protocol = function(v, build) {\n if (v) {\n // accept trailing ://\n v = v.replace(/:(\\/\\/)?$/, '');\n\n if (!v.match(URI.protocol_expression)) {\n throw new TypeError('Protocol \"' + v + '\" contains characters other than [A-Z0-9.+-] or doesn\\'t start with [A-Z]');\n }\n }\n\n return _protocol.call(this, v, build);\n };\n p.scheme = p.protocol;\n p.port = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n if (v === 0) {\n v = null;\n }\n\n if (v) {\n v += '';\n if (v.charAt(0) === ':') {\n v = v.substring(1);\n }\n\n URI.ensureValidPort(v);\n }\n }\n return _port.call(this, v, build);\n };\n p.hostname = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n var x = { preventInvalidHostname: this._parts.preventInvalidHostname };\n var res = URI.parseHost(v, x);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n v = x.hostname;\n if (this._parts.preventInvalidHostname) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n }\n\n return _hostname.call(this, v, build);\n };\n\n // compound accessors\n p.origin = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var protocol = this.protocol();\n var authority = this.authority();\n if (!authority) {\n return '';\n }\n\n return (protocol ? protocol + '://' : '') + this.authority();\n } else {\n var origin = URI(v);\n this\n .protocol(origin.protocol())\n .authority(origin.authority())\n .build(!build);\n return this;\n }\n };\n p.host = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildHost(this._parts) : '';\n } else {\n var res = URI.parseHost(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.authority = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildAuthority(this._parts) : '';\n } else {\n var res = URI.parseAuthority(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.userinfo = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var t = URI.buildUserinfo(this._parts);\n return t ? t.substring(0, t.length -1) : t;\n } else {\n if (v[v.length-1] !== '@') {\n v += '@';\n }\n\n URI.parseUserinfo(v, this._parts);\n this.build(!build);\n return this;\n }\n };\n p.resource = function(v, build) {\n var parts;\n\n if (v === undefined) {\n return this.path() + this.search() + this.hash();\n }\n\n parts = URI.parse(v);\n this._parts.path = parts.path;\n this._parts.query = parts.query;\n this._parts.fragment = parts.fragment;\n this.build(!build);\n return this;\n };\n\n // fraction accessors\n p.subdomain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n // convenience, return \"www\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // grab domain and add another segment\n var end = this._parts.hostname.length - this.domain().length - 1;\n return this._parts.hostname.substring(0, end) || '';\n } else {\n var e = this._parts.hostname.length - this.domain().length;\n var sub = this._parts.hostname.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(sub));\n\n if (v && v.charAt(v.length - 1) !== '.') {\n v += '.';\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n if (v) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.domain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // convenience, return \"example.org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // if hostname consists of 1 or 2 segments, it must be the domain\n var t = this._parts.hostname.match(/\\./g);\n if (t && t.length < 2) {\n return this._parts.hostname;\n }\n\n // grab tld and add another segment\n var end = this._parts.hostname.length - this.tld(build).length - 1;\n end = this._parts.hostname.lastIndexOf('.', end -1) + 1;\n return this._parts.hostname.substring(end) || '';\n } else {\n if (!v) {\n throw new TypeError('cannot set domain empty');\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n URI.ensureValidHostname(v, this._parts.protocol);\n\n if (!this._parts.hostname || this.is('IP')) {\n this._parts.hostname = v;\n } else {\n var replace = new RegExp(escapeRegEx(this.domain()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.tld = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // return \"org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n var pos = this._parts.hostname.lastIndexOf('.');\n var tld = this._parts.hostname.substring(pos + 1);\n\n if (build !== true && SLD && SLD.list[tld.toLowerCase()]) {\n return SLD.get(this._parts.hostname) || tld;\n }\n\n return tld;\n } else {\n var replace;\n\n if (!v) {\n throw new TypeError('cannot set TLD empty');\n } else if (v.match(/[^a-zA-Z0-9-]/)) {\n if (SLD && SLD.is(v)) {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n } else {\n throw new TypeError('TLD \"' + v + '\" contains characters other than [A-Z0-9]');\n }\n } else if (!this._parts.hostname || this.is('IP')) {\n throw new ReferenceError('cannot set TLD on non-domain host');\n } else {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.directory = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path && !this._parts.hostname) {\n return '';\n }\n\n if (this._parts.path === '/') {\n return '/';\n }\n\n var end = this._parts.path.length - this.filename().length - 1;\n var res = this._parts.path.substring(0, end) || (this._parts.hostname ? '/' : '');\n\n return v ? URI.decodePath(res) : res;\n\n } else {\n var e = this._parts.path.length - this.filename().length;\n var directory = this._parts.path.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(directory));\n\n // fully qualifier directories begin with a slash\n if (!this.is('relative')) {\n if (!v) {\n v = '/';\n }\n\n if (v.charAt(0) !== '/') {\n v = '/' + v;\n }\n }\n\n // directories always end with a slash\n if (v && v.charAt(v.length - 1) !== '/') {\n v += '/';\n }\n\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.filename = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v !== 'string') {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var pos = this._parts.path.lastIndexOf('/');\n var res = this._parts.path.substring(pos+1);\n\n return v ? URI.decodePathSegment(res) : res;\n } else {\n var mutatedDirectory = false;\n\n if (v.charAt(0) === '/') {\n v = v.substring(1);\n }\n\n if (v.match(/\\.?\\//)) {\n mutatedDirectory = true;\n }\n\n var replace = new RegExp(escapeRegEx(this.filename()) + '$');\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n\n if (mutatedDirectory) {\n this.normalizePath(build);\n } else {\n this.build(!build);\n }\n\n return this;\n }\n };\n p.suffix = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var filename = this.filename();\n var pos = filename.lastIndexOf('.');\n var s, res;\n\n if (pos === -1) {\n return '';\n }\n\n // suffix may only contain alnum characters (yup, I made this up.)\n s = filename.substring(pos+1);\n res = (/^[a-z0-9%]+$/i).test(s) ? s : '';\n return v ? URI.decodePathSegment(res) : res;\n } else {\n if (v.charAt(0) === '.') {\n v = v.substring(1);\n }\n\n var suffix = this.suffix();\n var replace;\n\n if (!suffix) {\n if (!v) {\n return this;\n }\n\n this._parts.path += '.' + URI.recodePath(v);\n } else if (!v) {\n replace = new RegExp(escapeRegEx('.' + suffix) + '$');\n } else {\n replace = new RegExp(escapeRegEx(suffix) + '$');\n }\n\n if (replace) {\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.segment = function(segment, v, build) {\n var separator = this._parts.urn ? ':' : '/';\n var path = this.path();\n var absolute = path.substring(0, 1) === '/';\n var segments = path.split(separator);\n\n if (segment !== undefined && typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (segment !== undefined && typeof segment !== 'number') {\n throw new Error('Bad segment \"' + segment + '\", must be 0-based integer');\n }\n\n if (absolute) {\n segments.shift();\n }\n\n if (segment < 0) {\n // allow negative indexes to address from the end\n segment = Math.max(segments.length + segment, 0);\n }\n\n if (v === undefined) {\n /*jshint laxbreak: true */\n return segment === undefined\n ? segments\n : segments[segment];\n /*jshint laxbreak: false */\n } else if (segment === null || segments[segment] === undefined) {\n if (isArray(v)) {\n segments = [];\n // collapse empty elements within array\n for (var i=0, l=v.length; i < l; i++) {\n if (!v[i].length && (!segments.length || !segments[segments.length -1].length)) {\n continue;\n }\n\n if (segments.length && !segments[segments.length -1].length) {\n segments.pop();\n }\n\n segments.push(trimSlashes(v[i]));\n }\n } else if (v || typeof v === 'string') {\n v = trimSlashes(v);\n if (segments[segments.length -1] === '') {\n // empty trailing elements have to be overwritten\n // to prevent results such as /foo//bar\n segments[segments.length -1] = v;\n } else {\n segments.push(v);\n }\n }\n } else {\n if (v) {\n segments[segment] = trimSlashes(v);\n } else {\n segments.splice(segment, 1);\n }\n }\n\n if (absolute) {\n segments.unshift('');\n }\n\n return this.path(segments.join(separator), build);\n };\n p.segmentCoded = function(segment, v, build) {\n var segments, i, l;\n\n if (typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (v === undefined) {\n segments = this.segment(segment, v, build);\n if (!isArray(segments)) {\n segments = segments !== undefined ? URI.decode(segments) : undefined;\n } else {\n for (i = 0, l = segments.length; i < l; i++) {\n segments[i] = URI.decode(segments[i]);\n }\n }\n\n return segments;\n }\n\n if (!isArray(v)) {\n v = (typeof v === 'string' || v instanceof String) ? URI.encode(v) : v;\n } else {\n for (i = 0, l = v.length; i < l; i++) {\n v[i] = URI.encode(v[i]);\n }\n }\n\n return this.segment(segment, v, build);\n };\n\n // mutating query string\n var q = p.query;\n p.query = function(v, build) {\n if (v === true) {\n return URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n } else if (typeof v === 'function') {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n var result = v.call(this, data);\n this._parts.query = URI.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else if (v !== undefined && typeof v !== 'string') {\n this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else {\n return q.call(this, v, build);\n }\n };\n p.setQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n\n if (typeof name === 'string' || name instanceof String) {\n data[name] = value !== undefined ? value : null;\n } else if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n data[key] = name[key];\n }\n }\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.addQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.addQuery(data, name, value === undefined ? null : value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.removeQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.removeQuery(data, name, value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.hasQuery = function(name, value, withinArray) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n return URI.hasQuery(data, name, value, withinArray);\n };\n p.setSearch = p.setQuery;\n p.addSearch = p.addQuery;\n p.removeSearch = p.removeQuery;\n p.hasSearch = p.hasQuery;\n\n // sanitizing URLs\n p.normalize = function() {\n if (this._parts.urn) {\n return this\n .normalizeProtocol(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n }\n\n return this\n .normalizeProtocol(false)\n .normalizeHostname(false)\n .normalizePort(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n };\n p.normalizeProtocol = function(build) {\n if (typeof this._parts.protocol === 'string') {\n this._parts.protocol = this._parts.protocol.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeHostname = function(build) {\n if (this._parts.hostname) {\n if (this.is('IDN') && punycode) {\n this._parts.hostname = punycode.toASCII(this._parts.hostname);\n } else if (this.is('IPv6') && IPv6) {\n this._parts.hostname = IPv6.best(this._parts.hostname);\n }\n\n this._parts.hostname = this._parts.hostname.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePort = function(build) {\n // remove port of it's the protocol's default\n if (typeof this._parts.protocol === 'string' && this._parts.port === URI.defaultPorts[this._parts.protocol]) {\n this._parts.port = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePath = function(build) {\n var _path = this._parts.path;\n if (!_path) {\n return this;\n }\n\n if (this._parts.urn) {\n this._parts.path = URI.recodeUrnPath(this._parts.path);\n this.build(!build);\n return this;\n }\n\n if (this._parts.path === '/') {\n return this;\n }\n\n _path = URI.recodePath(_path);\n\n var _was_relative;\n var _leadingParents = '';\n var _parent, _pos;\n\n // handle relative paths\n if (_path.charAt(0) !== '/') {\n _was_relative = true;\n _path = '/' + _path;\n }\n\n // handle relative files (as opposed to directories)\n if (_path.slice(-3) === '/..' || _path.slice(-2) === '/.') {\n _path += '/';\n }\n\n // resolve simples\n _path = _path\n .replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/')\n .replace(/\\/{2,}/g, '/');\n\n // remember leading parents\n if (_was_relative) {\n _leadingParents = _path.substring(1).match(/^(\\.\\.\\/)+/) || '';\n if (_leadingParents) {\n _leadingParents = _leadingParents[0];\n }\n }\n\n // resolve parents\n while (true) {\n _parent = _path.search(/\\/\\.\\.(\\/|$)/);\n if (_parent === -1) {\n // no more ../ to resolve\n break;\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n _path = _path.substring(3);\n continue;\n }\n\n _pos = _path.substring(0, _parent).lastIndexOf('/');\n if (_pos === -1) {\n _pos = _parent;\n }\n _path = _path.substring(0, _pos) + _path.substring(_parent + 3);\n }\n\n // revert to relative\n if (_was_relative && this.is('relative')) {\n _path = _leadingParents + _path.substring(1);\n }\n\n this._parts.path = _path;\n this.build(!build);\n return this;\n };\n p.normalizePathname = p.normalizePath;\n p.normalizeQuery = function(build) {\n if (typeof this._parts.query === 'string') {\n if (!this._parts.query.length) {\n this._parts.query = null;\n } else {\n this.query(URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace));\n }\n\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeFragment = function(build) {\n if (!this._parts.fragment) {\n this._parts.fragment = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeSearch = p.normalizeQuery;\n p.normalizeHash = p.normalizeFragment;\n\n p.iso8859 = function() {\n // expect unicode input, iso8859 output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = escape;\n URI.decode = decodeURIComponent;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.unicode = function() {\n // expect iso8859 input, unicode output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = strictEncodeURIComponent;\n URI.decode = unescape;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.readable = function() {\n var uri = this.clone();\n // removing username, password, because they shouldn't be displayed according to RFC 3986\n uri.username('').password('').normalize();\n var t = '';\n if (uri._parts.protocol) {\n t += uri._parts.protocol + '://';\n }\n\n if (uri._parts.hostname) {\n if (uri.is('punycode') && punycode) {\n t += punycode.toUnicode(uri._parts.hostname);\n if (uri._parts.port) {\n t += ':' + uri._parts.port;\n }\n } else {\n t += uri.host();\n }\n }\n\n if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== '/') {\n t += '/';\n }\n\n t += uri.path(true);\n if (uri._parts.query) {\n var q = '';\n for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) {\n var kv = (qp[i] || '').split('=');\n q += '&' + URI.decodeQuery(kv[0], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n\n if (kv[1] !== undefined) {\n q += '=' + URI.decodeQuery(kv[1], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n }\n }\n t += '?' + q.substring(1);\n }\n\n t += URI.decodeQuery(uri.hash(), true);\n return t;\n };\n\n // resolving relative and absolute URLs\n p.absoluteTo = function(base) {\n var resolved = this.clone();\n var properties = ['protocol', 'username', 'password', 'hostname', 'port'];\n var basedir, i, p;\n\n if (this._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n if (!(base instanceof URI)) {\n base = new URI(base);\n }\n\n if (resolved._parts.protocol) {\n // Directly returns even if this._parts.hostname is empty.\n return resolved;\n } else {\n resolved._parts.protocol = base._parts.protocol;\n }\n\n if (this._parts.hostname) {\n return resolved;\n }\n\n for (i = 0; (p = properties[i]); i++) {\n resolved._parts[p] = base._parts[p];\n }\n\n if (!resolved._parts.path) {\n resolved._parts.path = base._parts.path;\n if (!resolved._parts.query) {\n resolved._parts.query = base._parts.query;\n }\n } else {\n if (resolved._parts.path.substring(-2) === '..') {\n resolved._parts.path += '/';\n }\n\n if (resolved.path().charAt(0) !== '/') {\n basedir = base.directory();\n basedir = basedir ? basedir : base.path().indexOf('/') === 0 ? '/' : '';\n resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path;\n resolved.normalizePath();\n }\n }\n\n resolved.build();\n return resolved;\n };\n p.relativeTo = function(base) {\n var relative = this.clone().normalize();\n var relativeParts, baseParts, common, relativePath, basePath;\n\n if (relative._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n base = new URI(base).normalize();\n relativeParts = relative._parts;\n baseParts = base._parts;\n relativePath = relative.path();\n basePath = base.path();\n\n if (relativePath.charAt(0) !== '/') {\n throw new Error('URI is already relative');\n }\n\n if (basePath.charAt(0) !== '/') {\n throw new Error('Cannot calculate a URI relative to another relative URI');\n }\n\n if (relativeParts.protocol === baseParts.protocol) {\n relativeParts.protocol = null;\n }\n\n if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) {\n return relative.build();\n }\n\n if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) {\n return relative.build();\n }\n\n if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) {\n relativeParts.hostname = null;\n relativeParts.port = null;\n } else {\n return relative.build();\n }\n\n if (relativePath === basePath) {\n relativeParts.path = '';\n return relative.build();\n }\n\n // determine common sub path\n common = URI.commonPath(relativePath, basePath);\n\n // If the paths have nothing in common, return a relative URL with the absolute path.\n if (!common) {\n return relative.build();\n }\n\n var parents = baseParts.path\n .substring(common.length)\n .replace(/[^\\/]*$/, '')\n .replace(/.*?\\//g, '../');\n\n relativeParts.path = (parents + relativeParts.path.substring(common.length)) || './';\n\n return relative.build();\n };\n\n // comparing URIs\n p.equals = function(uri) {\n var one = this.clone();\n var two = new URI(uri);\n var one_map = {};\n var two_map = {};\n var checked = {};\n var one_query, two_query, key;\n\n one.normalize();\n two.normalize();\n\n // exact match\n if (one.toString() === two.toString()) {\n return true;\n }\n\n // extract query string\n one_query = one.query();\n two_query = two.query();\n one.query('');\n two.query('');\n\n // definitely not equal if not even non-query parts match\n if (one.toString() !== two.toString()) {\n return false;\n }\n\n // query parameters have the same length, even if they're permuted\n if (one_query.length !== two_query.length) {\n return false;\n }\n\n one_map = URI.parseQuery(one_query, this._parts.escapeQuerySpace);\n two_map = URI.parseQuery(two_query, this._parts.escapeQuerySpace);\n\n for (key in one_map) {\n if (hasOwn.call(one_map, key)) {\n if (!isArray(one_map[key])) {\n if (one_map[key] !== two_map[key]) {\n return false;\n }\n } else if (!arraysEqual(one_map[key], two_map[key])) {\n return false;\n }\n\n checked[key] = true;\n }\n }\n\n for (key in two_map) {\n if (hasOwn.call(two_map, key)) {\n if (!checked[key]) {\n // two contains a parameter not present in one\n return false;\n }\n }\n }\n\n return true;\n };\n\n // state\n p.preventInvalidHostname = function(v) {\n this._parts.preventInvalidHostname = !!v;\n return this;\n };\n\n p.duplicateQueryParameters = function(v) {\n this._parts.duplicateQueryParameters = !!v;\n return this;\n };\n\n p.escapeQuerySpace = function(v) {\n this._parts.escapeQuerySpace = !!v;\n return this;\n };\n\n return URI;\n}));\n","import { ImageStyle } from 'react-native';\nimport { WebBlockStyles } from '@native-html/transient-render-engine';\n\nimport pick from 'ramda/src/pick';\n\nconst extractProps = pick([\n 'resizeMode',\n 'tintColor',\n 'overlayColor'\n]);\n\nfunction mapObjectFit(objectFit: WebBlockStyles['objectFit']) {\n let resizeMode: ImageStyle['resizeMode'];\n switch (objectFit) {\n case 'contain':\n case 'cover':\n resizeMode = objectFit;\n break;\n case 'fill':\n resizeMode = 'stretch';\n break;\n case 'scale-down':\n resizeMode = 'contain';\n break;\n default:\n return null;\n }\n return { resizeMode };\n}\n\nfunction extractImageStyleProps(\n style: any,\n objectFit?: WebBlockStyles['objectFit']\n) {\n const resizeModeFromFit = objectFit ? mapObjectFit(objectFit) : null;\n return {\n ...extractProps(style),\n ...resizeModeFromFit\n };\n}\n\nexport default extractImageStyleProps;\n","export default function getDimensionsWithAspectRatio(\n width: number | null,\n height: number | null,\n aspectRatio: number | undefined\n) {\n return {\n width: width ?? (aspectRatio && height ? height * aspectRatio : null),\n height: height ?? (aspectRatio && width ? width / aspectRatio : null)\n };\n}\n","import React from 'react';\nimport { Text } from 'react-native';\nimport { TPhrasing, TText } from '@native-html/transient-render-engine';\nimport { TDefaultRendererProps } from './shared-types';\nimport getNativePropsForTNode from './helpers/getNativePropsForTNode';\n\nconst renderTextualContent = (\n props: TDefaultRendererProps\n) => {\n return React.createElement(Text, getNativePropsForTNode(props));\n};\n\nexport default renderTextualContent;\n","import React from 'react';\nimport { TDefaultRendererProps } from './shared-types';\nimport GenericPressable from './GenericPressable';\nimport getNativePropsForTNode from './helpers/getNativePropsForTNode';\nimport { View } from 'react-native';\nimport { TBlock } from '@native-html/transient-render-engine';\n\nfunction renderBlockContent(props: TDefaultRendererProps) {\n const nativeProps = getNativePropsForTNode(props);\n return React.createElement(\n typeof nativeProps.onPress === 'function' ? GenericPressable : View,\n nativeProps\n );\n}\nexport default renderBlockContent;\n","import { TNode } from '@native-html/transient-render-engine';\nimport { TNodeSubRendererProps } from './internal-types';\n\nfunction renderEmptyContent({ tnode }: TNodeSubRendererProps) {\n if (typeof __DEV__ !== 'undefined' && __DEV__) {\n if (tnode.isUnregistered) {\n console.warn(\n `There is no custom renderer registered for tag \"${tnode.tagName}\" which is not part of the HTML5 standard. The tag will not be rendered.` +\n ' If you don\\'t want this tag to be rendered, add it to \"ignoredDomTags\" prop array. If you do, register an HTMLElementModel for this tag with \"customHTMLElementModels\" prop.'\n );\n } else if (tnode.tagName !== 'head') {\n console.warn(\n `The \"${tnode.tagName}\" tag is a valid HTML element but is not handled by this library. You must extend the default HTMLElementModel for this tag with \"customHTMLElementModels\" prop and make sure its content model is not set to \"none\".` +\n ' If you don\\'t want this tag to be rendered, add it to \"ignoredDomTags\" prop array.'\n );\n }\n }\n return null;\n}\n\nexport default renderEmptyContent;\n","import { TNode } from '@native-html/transient-render-engine';\n\n/**\n * Compute a TNode top margin to satisfy requirements expressed in CSS\n * standard regarding margin collapsing.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing\n * for a reference.\n *\n * @param precedent - The node above the one for which we need to compute top margin.\n * @param current - The node for which a margin top might collapse.\n */\nexport default function getCollapsedMarginTop(\n precedent: TNode,\n current: TNode\n): null | number {\n const topMostMarginBottom =\n typeof precedent.styles.nativeBlockRet.marginBottom === 'number'\n ? precedent.styles.nativeBlockRet.marginBottom\n : null;\n const bottomMostMarginTop =\n typeof current.styles.nativeBlockRet.marginTop === 'number'\n ? current.styles.nativeBlockRet.marginTop\n : null;\n if (topMostMarginBottom == null || bottomMostMarginTop == null) {\n return null;\n }\n if (topMostMarginBottom < 0 && bottomMostMarginTop < 0) {\n return (\n Math.min(topMostMarginBottom, bottomMostMarginTop) - topMostMarginBottom\n );\n }\n if (topMostMarginBottom < 0 || bottomMostMarginTop < 0) {\n return topMostMarginBottom + bottomMostMarginTop - topMostMarginBottom;\n }\n if (topMostMarginBottom > bottomMostMarginTop) {\n return 0;\n }\n return bottomMostMarginTop - topMostMarginBottom;\n}\n","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar _equals =\n/*#__PURE__*/\nrequire(\"./internal/_equals\");\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nmodule.exports = equals;","var _arrayFromIterator =\n/*#__PURE__*/\nrequire(\"./_arrayFromIterator\");\n\nvar _includesWith =\n/*#__PURE__*/\nrequire(\"./_includesWith\");\n\nvar _functionName =\n/*#__PURE__*/\nrequire(\"./_functionName\");\n\nvar _has =\n/*#__PURE__*/\nrequire(\"./_has\");\n\nvar _objectIs =\n/*#__PURE__*/\nrequire(\"./_objectIs\");\n\nvar keys =\n/*#__PURE__*/\nrequire(\"../keys\");\n\nvar type =\n/*#__PURE__*/\nrequire(\"../type\");\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nfunction _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}\n\nmodule.exports = _equals;","function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}\n\nmodule.exports = _arrayFromIterator;","function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}\n\nmodule.exports = _includesWith;","function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}\n\nmodule.exports = _functionName;","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nmodule.exports = typeof Object.is === 'function' ? Object.is : _objectIs;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _has =\n/*#__PURE__*/\nrequire(\"./internal/_has\");\n\nvar _isArguments =\n/*#__PURE__*/\nrequire(\"./internal/_isArguments\"); // cover IE < 9 keys issues\n\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nmodule.exports = keys;","var _has =\n/*#__PURE__*/\nrequire(\"./_has\");\n\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nmodule.exports = _isArguments;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nmodule.exports = type;","import { HTMLSource, HTMLSourceUri } from '../shared-types';\n\nexport default function isUriSource(\n source: HTMLSource\n): source is HTMLSourceUri {\n return 'uri' in source && typeof source.uri === 'string';\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { HTMLSourceUri } from './shared-types';\nimport { SourceLoaderProps } from './internal-types';\nimport RenderTTree from './RenderTTree';\nimport sourceLoaderContext from './context/sourceLoaderContext';\n\ninterface LoaderInternalState {\n error: boolean;\n resolvedHTML: string | null;\n}\n\nconst ERROR_STATE = {\n error: true,\n resolvedHTML: null\n};\n\nasync function loadHTMLResource(\n uri: string,\n { body, headers, method }: Omit\n): Promise {\n const response = await fetch(uri, {\n body,\n headers,\n method\n });\n if (response.ok) {\n const html = await response.text();\n return {\n resolvedHTML: html,\n error: false\n };\n }\n return ERROR_STATE;\n}\n\nexport type UriSourceLoaderProps = {\n source: HTMLSourceUri;\n} & SourceLoaderProps;\n\nfunction useUriSourceLoader({ source, onHTMLLoaded }: UriSourceLoaderProps) {\n const [loadState, setState] = useState({\n error: false,\n resolvedHTML: null\n });\n const { error } = loadState;\n\n // Effect to reload on uri changes\n useEffect(() => {\n let cancelled = false;\n if (!error) {\n setState({ error: false, resolvedHTML: null });\n loadHTMLResource(source.uri, {\n body: source.body,\n headers: source.headers,\n method: source.method\n })\n .then((state) => {\n !cancelled && setState(state);\n })\n .catch(() => {\n !cancelled && setState(ERROR_STATE);\n });\n }\n return () => {\n cancelled = true;\n };\n }, [error, source.uri, source.body, source.headers, source.method]);\n useEffect(() => {\n loadState.resolvedHTML && onHTMLLoaded?.call(null, loadState.resolvedHTML);\n }, [loadState.resolvedHTML, onHTMLLoaded]);\n return loadState;\n}\n\nexport default function SourceLoaderUri(props: UriSourceLoaderProps) {\n const { remoteErrorView, remoteLoadingView } =\n useContext(sourceLoaderContext);\n const { resolvedHTML, error } = useUriSourceLoader(props);\n if (error) {\n return remoteErrorView.call(null, props.source);\n }\n if (resolvedHTML === null) {\n return remoteLoadingView.call(null, props.source);\n }\n return React.createElement(RenderTTree, {\n document: resolvedHTML!,\n baseUrl: props.source.uri\n });\n}\n","import { useMemo, useEffect, useRef, useContext } from 'react';\nimport ttreeEventsContext from '../context/ttreeEventsContext';\nimport { useSharedProps } from '../context/SharedPropsProvider';\nimport { RenderTTreeProps } from '../internal-types';\nimport { useAmbientTRenderEngine } from '../TRenderEngineProvider';\nimport { TDocument } from '@native-html/transient-render-engine';\n\nfunction useTTreeChangeEffect(ttree: TDocument) {\n const { onTTreeChange } = useContext(ttreeEventsContext);\n const { debug } = useSharedProps();\n const updateNumber = useRef(0);\n useEffect(() => {\n onTTreeChange?.call(null, ttree);\n if (debug && typeof __DEV__ === 'boolean' && __DEV__) {\n console.info(\n `Transient Render Tree update ${++updateNumber.current}:\\n${ttree.snapshot(\n {\n withNodeIndex: false,\n withStyles: false\n }\n )}`\n );\n }\n }, [ttree, onTTreeChange, debug]);\n}\n\n/**\n * @internal\n */\nexport default function useTTree(props: RenderTTreeProps) {\n const { document } = props;\n const trenderEngine = useAmbientTRenderEngine();\n const ttree = useMemo(\n () =>\n typeof document === 'string'\n ? trenderEngine.buildTTree(document)\n : trenderEngine.buildTTreeFromDoc(document),\n [document, trenderEngine]\n );\n useTTreeChangeEffect(ttree);\n return ttree;\n}\n","import React, { memo, useEffect, useMemo } from 'react';\nimport { TDocument } from '@native-html/transient-render-engine';\nimport { DocumentMetadata, RenderHTMLSourceProps } from './shared-types';\nimport DocumentMetadataProvider from './context/DocumentMetadataProvider';\nimport TNodeRenderer from './TNodeRenderer';\n\nconst TDocumentRenderer = memo(\n ({\n tdoc,\n baseUrl,\n onDocumentMetadataLoaded\n }: {\n baseUrl?: string;\n onDocumentMetadataLoaded?: RenderHTMLSourceProps['onDocumentMetadataLoaded'];\n tdoc: TDocument;\n }) => {\n const metadata: DocumentMetadata = useMemo(() => {\n const { baseHref, baseTarget, lang, links, meta, title, dir } =\n tdoc.context;\n return {\n baseTarget,\n baseUrl: baseUrl ?? baseHref,\n lang,\n dir,\n links,\n meta,\n title\n };\n }, [tdoc.context, baseUrl]);\n useEffect(() => {\n onDocumentMetadataLoaded?.call(null, metadata);\n }, [onDocumentMetadataLoaded, metadata]);\n return (\n \n \n \n );\n }\n);\nexport default TDocumentRenderer;\n","import React, { useEffect } from 'react';\nimport { SourceLoaderProps } from './internal-types';\nimport RenderTTree from './RenderTTree';\nimport { HTMLSourceInline } from './shared-types';\n\nexport type InlineSourceLoaderProps = {\n source: HTMLSourceInline;\n} & SourceLoaderProps;\n\nfunction useInlineSourceLoader({\n source,\n onHTMLLoaded\n}: InlineSourceLoaderProps) {\n const html = source.html;\n useEffect(() => {\n html && onHTMLLoaded?.call(null, html);\n }, [html, onHTMLLoaded]);\n return source;\n}\n\nexport default function SourceLoaderInline(props: InlineSourceLoaderProps) {\n const { html } = useInlineSourceLoader(props);\n return React.createElement(RenderTTree, {\n document: html,\n baseUrl: props.source.baseUrl\n });\n}\n","import React from 'react';\nimport { SourceLoaderProps } from './internal-types';\nimport RenderTTree from './RenderTTree';\nimport { HTMLSourceDom } from './shared-types';\n\nexport type DomSourceLoaderProps = {\n source: HTMLSourceDom;\n} & SourceLoaderProps;\n\nexport default function SourceLoaderDom(props: DomSourceLoaderProps) {\n return React.createElement(RenderTTree, {\n document: props.source.dom,\n baseUrl: props.source.baseUrl\n });\n}\n","import { HTMLSource, HTMLSourceDom } from '../shared-types';\n\nexport default function isDomSource(\n source: HTMLSource\n): source is HTMLSourceDom {\n return 'dom' in source && typeof source.dom === 'object' && !!source.dom;\n}\n","import { TagName } from '@native-html/transient-render-engine';\nimport { ComponentType } from 'react';\nimport IMGElement from '../elements/IMGElement';\nimport OLElement from '../elements/OLElement';\nimport ULElement from '../elements/ULElement';\nimport { useAElementProps } from '../renderers/ARenderer';\nimport { useIMGElementProps } from '../renderers/IMGRenderer';\nimport { useOLElementProps } from '../renderers/OLRenderer';\nimport { useULElementProps } from '../renderers/ULRenderer';\nimport { InternalRendererProps, TDefaultRendererProps } from '../shared-types';\n\nconst specialRenderersConfig = {\n img: {\n hook: useIMGElementProps,\n Element: IMGElement\n },\n ol: {\n hook: useOLElementProps,\n Element: OLElement\n },\n ul: {\n hook: useULElementProps,\n Element: ULElement\n },\n a: {\n hook: useAElementProps,\n Element: undefined\n }\n};\n\nexport type InternalSpecialRenderedTag = keyof typeof specialRenderersConfig;\n\nfunction hasSpecialInternalRenderer(\n tagName: TagName\n): tagName is keyof typeof specialRenderersConfig {\n return tagName in specialRenderersConfig;\n}\n\nexport interface InternalRendererConfig

{\n Renderer: ComponentType

;\n rendererProps: P;\n}\n/**\n * Resuse internal renderers logic for infinite customization!\n *\n * @remarks `tagName` must be invariant, i.e. it cannot change. You would\n * otherwise break the rules of hooks.\n *\n * @param tagName - **Invariant** The tag name to extend.\n * @param props - The props passed to the custom renderer.\n * @typeParam T - The name of the tag to target.\n * @returns An object with two fields: `Renderer` (the internal react\n * component) and `rendererProps`, the internal component props.\n *\n * @public\n */\nexport default function useInternalRenderer(\n tagName: T,\n props: InternalRendererProps\n): T extends InternalSpecialRenderedTag\n ? InternalRendererConfig>\n : InternalRendererConfig> {\n const { TDefaultRenderer, ...rendererProps } = props;\n if (hasSpecialInternalRenderer(tagName)) {\n return {\n Renderer: specialRenderersConfig[tagName].Element || TDefaultRenderer,\n rendererProps: specialRenderersConfig[tagName].hook(props as any)\n } as any;\n }\n return {\n Renderer: TDefaultRenderer,\n rendererProps\n } as any;\n}\n","import pick from 'ramda/src/pick';\nimport omit from 'ramda/src/omit';\nimport { TNodeShape, TNodeType } from '@native-html/transient-render-engine';\n\nconst borderBoxProps = [\n 'backgroundColor',\n 'borderBottomColor',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderBottomWidth',\n 'borderLeftColor',\n 'borderLeftWidth',\n 'borderRightColor',\n 'borderRightWidth',\n 'borderStyle',\n 'borderTopColor',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderTopWidth',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop'\n];\n\nconst pickBorderBox = pick(borderBoxProps);\nconst omitBorderBox = omit(borderBoxProps);\n\n/**\n * A utility to separate box model styles and other styles. Useful when one wants\n * to wrap a text element in a view to benefit from padding vertical,\n * borders... etc.\n *\n * @param styles - The native styles to split.\n */\nexport default function splitBoxModelStyle(\n style: ReturnType['getNativeStyles']>\n) {\n return {\n boxModelStyle: pickBorderBox(style),\n otherStyle: omitBorderBox(style)\n };\n}\n","import strigifyEntities from 'stringify-entities';\nimport {\n Node,\n isDomText,\n isDomElement\n} from '@native-html/transient-render-engine';\n\nfunction renderOpeningTag(tag: string, attributes: Record) {\n const strAttributes: string[] = [];\n Object.keys(attributes).forEach((key) => {\n strAttributes.push(`${key}=\"${strigifyEntities(`${attributes[key]}`)}\"`);\n });\n return `<${tag}${strAttributes.length ? ' ' : ''}${strAttributes.join(' ')}>`;\n}\n\n/**\n * Convert a DOM node to its HTML representation.\n *\n * @param root - The root to stringify.\n * @param reporter - An optional function which will receive every\n * parsed node as 1st argument, the depth as 2d argument and the converted html\n * as 3d argument.\n */\nexport default function domNodeToHTMLString(\n root: Node | null,\n reporter?: DomNodeToHtmlReporter,\n depth = 0\n) {\n let html = '';\n if (isDomElement(root)) {\n const strChildren = root.children.reduce((prev, curr) => {\n const convertedNode = domNodeToHTMLString(curr, reporter, depth + 1);\n return `${prev}${convertedNode}`;\n }, '');\n html = `${renderOpeningTag(root.tagName, root.attribs)}${strChildren}`;\n } else if (isDomText(root)) {\n const text = strigifyEntities(root.data);\n html = text;\n }\n typeof reporter === 'function' && reporter(root, depth, html);\n return html;\n}\n\n/**\n * @public\n */\nexport interface DomNodeToHtmlReporter {\n /**\n * @param node - The node being parsed.\n * @param depth - How many parents this node have.\n * @param html - The HTML representation of this node and its children.\n */\n (node: Node | null, depth: number, html: string): void;\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar encode = require('./encode')\nvar escape = require('./escape')\n\nmodule.exports = encode\nencode.escape = escape\n","'use strict'\n\nvar xtend = require('xtend')\nvar core = require('./core')\nvar smart = require('./util/format-smart')\n\nmodule.exports = encode\n\n// Encode special characters in `value`.\nfunction encode(value, options) {\n // Note: Switch to `Object.assign` next major.\n return core(value, xtend(options, {format: smart}))\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","module.exports = toHexReference\n\nvar fromCharCode = require('../constant/from-char-code')\n\n// Transform `code` into a hexadecimal character reference.\nfunction toHexReference(code, next, omit) {\n var value = '&#x' + code.toString(16).toUpperCase()\n return omit && next && !/[\\dA-Fa-f]/.test(fromCharCode(next))\n ? value\n : value + ';'\n}\n","module.exports = toDecimalReference\n\nvar fromCharCode = require('../constant/from-char-code')\n\n// Transform `code` into a decimal character reference.\nfunction toDecimalReference(code, next, omit) {\n var value = '&#' + String(code)\n return omit && next && !/\\d/.test(fromCharCode(next)) ? value : value + ';'\n}\n","module.exports = toNamed\n\nvar legacy = require('character-entities-legacy')\nvar characters = require('../constant/characters')\nvar fromCharCode = require('../constant/from-char-code')\nvar own = require('../constant/has-own-property')\nvar dangerous = require('../constant/dangerous.json')\n\n// Transform `code` into a named character reference.\nfunction toNamed(code, next, omit, attribute) {\n var character = fromCharCode(code)\n var name\n var value\n\n if (own.call(characters, character)) {\n name = characters[character]\n value = '&' + name\n\n if (\n omit &&\n own.call(legacy, name) &&\n dangerous.indexOf(name) === -1 &&\n (!attribute ||\n (next && next !== 61 /* `=` */ && /[^\\da-z]/i.test(fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n","var entities = require('character-entities-html4')\n\nvar characters = {}\nvar name\n\nmodule.exports = characters\n\nfor (name in entities) {\n characters[entities[name]] = name\n}\n","module.exports = {}.hasOwnProperty\n","'use strict'\n\nvar core = require('./core')\nvar smart = require('./util/format-smart')\n\nmodule.exports = escape\n\n// Shortcut to escape special characters in HTML.\nfunction escape(value) {\n return core(value, {\n escapeOnly: true,\n useNamedReferences: true,\n format: smart\n })\n}\n","import defaultImageInitialDimensions from './defaultInitialImageDimensions';\nimport { getIMGState } from './getIMGState';\nimport type {\n UseIMGElementStateWithCacheProps,\n IMGElementStateError,\n IMGElementStateSuccess\n} from './img-types';\nimport useImageConcreteDimensions from './useImageConcreteDimensions';\nimport useImageSpecifiedDimensions from './useImageSpecifiedDimensions';\nimport useIMGNormalizedSource from './useIMGNormalizedSource';\n\n/**\n * This hook is useful when one has access to image natural dimensions prior to\n * loading. The `cachedNaturalDimensions` prop must be passed to immediately\n * compute concrete dimensions.\n */\nexport default function useIMGElementStateWithCache(\n props: UseIMGElementStateWithCacheProps\n): IMGElementStateError | IMGElementStateSuccess {\n const {\n alt,\n altColor,\n source,\n contentWidth,\n computeMaxWidth,\n objectFit,\n initialDimensions = defaultImageInitialDimensions,\n cachedNaturalDimensions\n } = props;\n const { flatStyle, specifiedDimensions } = useImageSpecifiedDimensions(props);\n const nomalizedSource = useIMGNormalizedSource({\n specifiedDimensions,\n source\n });\n const concreteDimensions = useImageConcreteDimensions({\n flatStyle,\n naturalDimensions: cachedNaturalDimensions,\n specifiedDimensions,\n computeMaxWidth,\n contentWidth\n });\n\n return getIMGState({\n error: null,\n concreteDimensions,\n containerStyle: flatStyle,\n initialDimensions,\n objectFit,\n source: nomalizedSource,\n alt,\n altColor\n });\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 * @license React\n * use-sync-external-store-shim.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}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","// @ts-ignore\nimport * as React from 'react';\nimport {\n GestureResponderEvent,\n // @ts-ignore\n unstable_createElement as ucE,\n // @ts-ignore\n createElement as cE,\n} from 'react-native';\nimport { NumberArray, NumberProp } from './lib/extract/types';\nimport SvgTouchableMixin from './lib/SvgTouchableMixin';\nimport { resolve } from './lib/resolve';\n\nconst createElement = cE || ucE;\n\ntype BlurEvent = Object;\ntype FocusEvent = Object;\ntype PressEvent = Object;\ntype LayoutEvent = Object;\ntype EdgeInsetsProp = Object;\n\ninterface BaseProps {\n accessible?: boolean;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n accessibilityIgnoresInvertColors?: boolean;\n accessibilityRole?: string;\n accessibilityState?: Object;\n delayLongPress?: number;\n delayPressIn?: number;\n delayPressOut?: number;\n disabled?: boolean;\n hitSlop?: EdgeInsetsProp;\n nativeID?: string;\n touchSoundDisabled?: boolean;\n onBlur?: (e: BlurEvent) => void;\n onFocus?: (e: FocusEvent) => void;\n onLayout?: (event: LayoutEvent) => object;\n onLongPress?: (event: PressEvent) => object;\n onClick?: (event: PressEvent) => object;\n onPress?: (event: PressEvent) => object;\n onPressIn?: (event: PressEvent) => object;\n onPressOut?: (event: PressEvent) => object;\n pressRetentionOffset?: EdgeInsetsProp;\n rejectResponderTermination?: boolean;\n\n translate: NumberArray;\n translateX: NumberProp;\n translateY: NumberProp;\n scale: NumberArray;\n rotation: NumberArray;\n skewX: NumberProp;\n skewY: NumberProp;\n originX: NumberProp;\n originY: NumberProp;\n\n fontStyle?: string;\n fontWeight?: NumberProp;\n fontSize?: NumberProp;\n fontFamily?: string;\n forwardedRef: {};\n style: Iterable<{}>;\n}\n\nconst hasTouchableProperty = (props: BaseProps) =>\n props.onPress || props.onPressIn || props.onPressOut || props.onLongPress;\n\n/**\n * `react-native-svg` supports additional props that aren't defined in the spec.\n * This function replaces them in a spec conforming manner.\n *\n * @param {WebShape} self Instance given to us.\n * @param {Object?} props Optional overridden props given to us.\n * @returns {Object} Cleaned props object.\n * @private\n */\nconst prepare = (\n self: WebShape,\n props = self.props,\n) => {\n const {\n translate,\n translateX,\n translateY,\n scale,\n rotation,\n skewX,\n skewY,\n originX,\n originY,\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n style,\n forwardedRef,\n // @ts-ignore\n ...rest\n } = props;\n\n const clean: {\n onStartShouldSetResponder?: (e: GestureResponderEvent) => boolean;\n onResponderMove?: (e: GestureResponderEvent) => void;\n onResponderGrant?: (e: GestureResponderEvent) => void;\n onResponderRelease?: (e: GestureResponderEvent) => void;\n onResponderTerminate?: (e: GestureResponderEvent) => void;\n onResponderTerminationRequest?: (e: GestureResponderEvent) => boolean;\n transform?: string;\n style?: {};\n ref?: {};\n } = {\n ...(hasTouchableProperty(props)\n ? {\n onStartShouldSetResponder:\n self.touchableHandleStartShouldSetResponder,\n onResponderTerminationRequest:\n self.touchableHandleResponderTerminationRequest,\n onResponderGrant: self.touchableHandleResponderGrant,\n onResponderMove: self.touchableHandleResponderMove,\n onResponderRelease: self.touchableHandleResponderRelease,\n onResponderTerminate: self.touchableHandleResponderTerminate,\n }\n : null),\n ...rest,\n };\n\n const transform = [];\n\n if (originX != null || originY != null) {\n transform.push(`translate(${originX || 0}, ${originY || 0})`);\n }\n if (translate != null) {\n transform.push(`translate(${translate})`);\n }\n if (translateX != null || translateY != null) {\n transform.push(`translate(${translateX || 0}, ${translateY || 0})`);\n }\n if (scale != null) {\n transform.push(`scale(${scale})`);\n }\n // rotation maps to rotate, not to collide with the text rotate attribute (which acts per glyph rather than block)\n if (rotation != null) {\n transform.push(`rotate(${rotation})`);\n }\n if (skewX != null) {\n transform.push(`skewX(${skewX})`);\n }\n if (skewY != null) {\n transform.push(`skewY(${skewY})`);\n }\n if (originX != null || originY != null) {\n transform.push(`translate(${-originX || 0}, ${-originY || 0})`);\n }\n\n if (transform.length) {\n clean.transform = transform.join(' ');\n }\n\n if (forwardedRef) {\n clean.ref = forwardedRef;\n }\n\n const styles: {\n fontStyle?: string;\n fontFamily?: string;\n fontSize?: NumberProp;\n fontWeight?: NumberProp;\n } = {};\n\n if (fontFamily != null) {\n styles.fontFamily = fontFamily;\n }\n if (fontSize != null) {\n styles.fontSize = fontSize;\n }\n if (fontWeight != null) {\n styles.fontWeight = fontWeight;\n }\n if (fontStyle != null) {\n styles.fontStyle = fontStyle;\n }\n\n clean.style = resolve(style, styles);\n\n return clean;\n};\n\nconst getBoundingClientRect = (node: SVGElement) => {\n if (node) {\n // @ts-ignore\n const isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n // @ts-ignore\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n // @ts-ignore\n return node.getBoundingClientRect();\n }\n }\n};\n\nconst measureLayout = (\n node: SVGElement,\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n left: number,\n top: number,\n ) => void,\n) => {\n // @ts-ignore\n const relativeNode = node && node.parentNode;\n if (relativeNode) {\n setTimeout(() => {\n // @ts-ignore\n const relativeRect = getBoundingClientRect(relativeNode);\n const { height, left, top, width } = getBoundingClientRect(node);\n const x = left - relativeRect.left;\n const y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nfunction remeasure() {\n // @ts-ignore\n const tag = this.state.touchable.responderID;\n if (tag == null) {\n return;\n }\n // @ts-ignore\n measureLayout(tag, this._handleQueryLayout);\n}\n\nexport class WebShape<\n P extends BaseProps = BaseProps,\n C = {},\n> extends React.Component {\n [x: string]: unknown;\n _remeasureMetricsOnActivation: () => void;\n touchableHandleStartShouldSetResponder?: (\n e: GestureResponderEvent,\n ) => boolean;\n touchableHandleResponderMove?: (e: GestureResponderEvent) => void;\n touchableHandleResponderGrant?: (e: GestureResponderEvent) => void;\n touchableHandleResponderRelease?: (e: GestureResponderEvent) => void;\n touchableHandleResponderTerminate?: (e: GestureResponderEvent) => void;\n touchableHandleResponderTerminationRequest?: (\n e: GestureResponderEvent,\n ) => boolean;\n constructor(props: P, context: C) {\n super(props, context);\n\n // Do not attach touchable mixin handlers if SVG element doesn't have a touchable prop\n if (hasTouchableProperty(props)) {\n SvgTouchableMixin(this);\n }\n\n this._remeasureMetricsOnActivation = remeasure.bind(this);\n }\n}\n\nexport class Circle extends WebShape {\n render(): JSX.Element {\n return createElement('circle', prepare(this));\n }\n}\n\nexport class ClipPath extends WebShape {\n render(): JSX.Element {\n return createElement('clipPath', prepare(this));\n }\n}\n\nexport class Defs extends WebShape {\n render(): JSX.Element {\n return createElement('defs', prepare(this));\n }\n}\n\nexport class Ellipse extends WebShape {\n render(): JSX.Element {\n return createElement('ellipse', prepare(this));\n }\n}\n\nexport class G extends WebShape<\n BaseProps & {\n x?: NumberProp;\n y?: NumberProp;\n translate?: string;\n }\n> {\n render(): JSX.Element {\n const { x, y, ...rest } = this.props;\n\n if ((x || y) && !rest.translate) {\n rest.translate = `${x || 0}, ${y || 0}`;\n }\n\n return createElement('g', prepare(this, rest));\n }\n}\n\nexport class Image extends WebShape {\n render(): JSX.Element {\n return createElement('image', prepare(this));\n }\n}\n\nexport class Line extends WebShape {\n render(): JSX.Element {\n return createElement('line', prepare(this));\n }\n}\n\nexport class LinearGradient extends WebShape {\n render(): JSX.Element {\n return createElement('linearGradient', prepare(this));\n }\n}\n\nexport class Path extends WebShape {\n render(): JSX.Element {\n return createElement('path', prepare(this));\n }\n}\n\nexport class Polygon extends WebShape {\n render(): JSX.Element {\n return createElement('polygon', prepare(this));\n }\n}\n\nexport class Polyline extends WebShape {\n render(): JSX.Element {\n return createElement('polyline', prepare(this));\n }\n}\n\nexport class RadialGradient extends WebShape {\n render(): JSX.Element {\n return createElement('radialGradient', prepare(this));\n }\n}\n\nexport class Rect extends WebShape {\n render(): JSX.Element {\n return createElement('rect', prepare(this));\n }\n}\n\nexport class Stop extends WebShape {\n render(): JSX.Element {\n return createElement('stop', prepare(this));\n }\n}\n\nexport class Svg extends WebShape {\n render(): JSX.Element {\n return createElement('svg', prepare(this));\n }\n}\n\nexport class Symbol extends WebShape {\n render(): JSX.Element {\n return createElement('symbol', prepare(this));\n }\n}\n\nexport class Text extends WebShape {\n render(): JSX.Element {\n return createElement('text', prepare(this));\n }\n}\n\nexport class TSpan extends WebShape {\n render(): JSX.Element {\n return createElement('tspan', prepare(this));\n }\n}\n\nexport class TextPath extends WebShape {\n render(): JSX.Element {\n return createElement('textPath', prepare(this));\n }\n}\n\nexport class Use extends WebShape {\n render(): JSX.Element {\n return createElement('use', prepare(this));\n }\n}\n\nexport class Mask extends WebShape {\n render(): JSX.Element {\n return createElement('mask', prepare(this));\n }\n}\n\nexport class ForeignObject extends WebShape {\n render(): JSX.Element {\n return createElement('foreignObject', prepare(this));\n }\n}\n\nexport class Marker extends WebShape {\n render(): JSX.Element {\n return createElement('marker', prepare(this));\n }\n}\n\nexport class Pattern extends WebShape {\n render(): JSX.Element {\n return createElement('pattern', prepare(this));\n }\n}\n\nexport default Svg;\n","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;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, 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 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 _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 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 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;","// @ts-ignore\nimport { Touchable, GestureResponderEvent } from 'react-native';\nconst PRESS_RETENTION_OFFSET = { top: 20, left: 20, right: 20, bottom: 30 };\n// @ts-ignore\nconst { Mixin } = Touchable;\nconst {\n touchableHandleStartShouldSetResponder,\n touchableHandleResponderTerminationRequest,\n touchableHandleResponderGrant,\n touchableHandleResponderMove,\n touchableHandleResponderRelease,\n touchableHandleResponderTerminate,\n touchableGetInitialState,\n} = Mixin;\n\nconst SvgTouchableMixin = {\n ...Mixin,\n\n touchableHandleStartShouldSetResponder(e: GestureResponderEvent) {\n const { onStartShouldSetResponder } = this.props;\n if (onStartShouldSetResponder) {\n return onStartShouldSetResponder(e);\n } else {\n return touchableHandleStartShouldSetResponder.call(this, e);\n }\n },\n\n touchableHandleResponderTerminationRequest(e: GestureResponderEvent) {\n const { onResponderTerminationRequest } = this.props;\n if (onResponderTerminationRequest) {\n return onResponderTerminationRequest(e);\n } else {\n return touchableHandleResponderTerminationRequest.call(this, e);\n }\n },\n\n touchableHandleResponderGrant(e: GestureResponderEvent) {\n const { onResponderGrant } = this.props;\n if (onResponderGrant) {\n return onResponderGrant(e);\n } else {\n return touchableHandleResponderGrant.call(this, e);\n }\n },\n\n touchableHandleResponderMove(e: GestureResponderEvent) {\n const { onResponderMove } = this.props;\n if (onResponderMove) {\n return onResponderMove(e);\n } else {\n return touchableHandleResponderMove.call(this, e);\n }\n },\n\n touchableHandleResponderRelease(e: GestureResponderEvent) {\n const { onResponderRelease } = this.props;\n if (onResponderRelease) {\n return onResponderRelease(e);\n } else {\n return touchableHandleResponderRelease.call(this, e);\n }\n },\n\n touchableHandleResponderTerminate(e: GestureResponderEvent) {\n const { onResponderTerminate } = this.props;\n if (onResponderTerminate) {\n return onResponderTerminate(e);\n } else {\n return touchableHandleResponderTerminate.call(this, e);\n }\n },\n\n touchableHandlePress(e: GestureResponderEvent) {\n const { onPress } = this.props;\n onPress && onPress(e);\n },\n\n touchableHandleActivePressIn(e: GestureResponderEvent) {\n const { onPressIn } = this.props;\n onPressIn && onPressIn(e);\n },\n\n touchableHandleActivePressOut(e: GestureResponderEvent) {\n const { onPressOut } = this.props;\n onPressOut && onPressOut(e);\n },\n\n touchableHandleLongPress(e: GestureResponderEvent) {\n const { onLongPress } = this.props;\n onLongPress && onLongPress(e);\n },\n\n touchableGetPressRectOffset() {\n const { pressRetentionOffset } = this.props;\n return pressRetentionOffset || PRESS_RETENTION_OFFSET;\n },\n\n touchableGetHitSlop() {\n const { hitSlop } = this.props;\n return hitSlop;\n },\n\n touchableGetHighlightDelayMS() {\n const { delayPressIn } = this.props;\n return delayPressIn || 0;\n },\n\n touchableGetLongPressDelayMS() {\n const { delayLongPress } = this.props;\n return delayLongPress === 0 ? 0 : delayLongPress || 500;\n },\n\n touchableGetPressOutDelayMS() {\n const { delayPressOut } = this.props;\n return delayPressOut || 0;\n },\n};\n\nconst touchKeys = Object.keys(SvgTouchableMixin);\nconst touchVals = touchKeys.map((key) => SvgTouchableMixin[key]);\nconst numTouchKeys = touchKeys.length;\n\nexport default (target: { [x: string]: unknown; state: unknown }) => {\n for (let i = 0; i < numTouchKeys; i++) {\n const key = touchKeys[i];\n const val = touchVals[i];\n if (typeof val === 'function') {\n target[key] = val.bind(target);\n } else {\n target[key] = val;\n }\n }\n target.state = touchableGetInitialState();\n};\n","import { StyleSheet } from 'react-native';\n\n// Kept in separate file, to avoid name collision with Symbol element\nexport function resolve(styleProp: Iterable, cleanedProps: T) {\n if (styleProp) {\n return StyleSheet\n ? [styleProp, cleanedProps]\n : // Compatibility for arrays of styles in plain react web\n styleProp[Symbol.iterator]\n ? Object.assign({}, ...styleProp, cleanedProps)\n : Object.assign({}, styleProp, cleanedProps);\n } else {\n return cleanedProps;\n }\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 _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;","'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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\n/**\n * Use `useEffect` during SSR and `useLayoutEffect` in the browser to avoid warnings.\n */\nvar useIsomorphicLayoutEffect = typeof document !== 'undefined' ? react_1.useLayoutEffect : react_1.useEffect;\nexports.default = useIsomorphicLayoutEffect;\n","import*as React from\"react\";import{useState,useEffect}from\"react\";\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */var extendStatics=function(t,e){return(extendStatics=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])})(t,e)};function __extends(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function r(){this.constructor=t}extendStatics(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}var __assign=function(){return(__assign=Object.assign||function(t){for(var e,r=1,i=arguments.length;r=0;o--)(a=t[o])&&(n=(s<3?a(n):s>3?a(e,r,n):a(e,r))||n);return s>3&&n&&Object.defineProperty(e,r,n),n}function __param(t,e){return function(r,i){e(r,i,t)}}function __metadata(t,e){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function __awaiter(t,e,r,i){return new(r||(r=Promise))((function(a,s){function n(t){try{h(i.next(t))}catch(t){s(t)}}function o(t){try{h(i.throw(t))}catch(t){s(t)}}function h(t){var e;t.done?a(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(n,o)}h((i=i.apply(t,e||[])).next())}))}function __generator(t,e){var r,i,a,s,n={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},\"function\"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(s){return function(o){return function(s){if(r)throw new TypeError(\"Generator is already executing.\");for(;n;)try{if(r=1,i&&(a=2&s[0]?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return n.label++,{value:s[1],done:!1};case 5:n.label++,i=s[1],s=[0];continue;case 7:s=n.ops.pop(),n.trys.pop();continue;default:if(!(a=n.trys,(a=a.length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){n=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(t,e){var r=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var i,a,s=r.call(t),n=[];try{for(;(void 0===e||e-- >0)&&!(i=s.next()).done;)n.push(i.value)}catch(t){a={error:t}}finally{try{i&&!i.done&&(r=s.return)&&r.call(s)}finally{if(a)throw a.error}}return n}function __spread(){for(var t=[],e=0;e1||o(t,e)}))})}function o(t,e){try{(r=a[t](e)).value instanceof __await?Promise.resolve(r.value.v).then(h,l):p(s[0][2],r)}catch(t){p(s[0][3],t)}var r}function h(t){o(\"next\",t)}function l(t){o(\"throw\",t)}function p(t,e){t(e),s.shift(),s.length&&o(s[0][0],s[0][1])}}function __asyncDelegator(t){var e,r;return e={},i(\"next\"),i(\"throw\",(function(t){throw t})),i(\"return\"),e[Symbol.iterator]=function(){return this},e;function i(i,a){e[i]=t[i]?function(e){return(r=!r)?{value:__await(t[i](e)),done:\"return\"===i}:a?a(e):e}:a}}function __asyncValues(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t=\"function\"==typeof __values?__values(t):t[Symbol.iterator](),e={},i(\"next\"),i(\"throw\"),i(\"return\"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(e){return new Promise((function(i,a){(function(t,e,r,i){Promise.resolve(i).then((function(e){t({value:e,done:r})}),e)})(i,a,(e=t[r](e)).done,e.value)}))}}}function __makeTemplateObject(t,e){return Object.defineProperty?Object.defineProperty(t,\"raw\",{value:e}):t.raw=e,t}var __setModuleDefault=Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e};function __importStar(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)\"default\"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&__createBinding(e,t,r);return __setModuleDefault(e,t),e}function __importDefault(t){return t&&t.__esModule?t:{default:t}}function __classPrivateFieldGet(t,e,r,i){if(\"a\"===r&&!i)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!i:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?i:\"a\"===r?i.call(t):i?i.value:e.get(t)}function __classPrivateFieldSet(t,e,r,i,a){if(\"m\"===i)throw new TypeError(\"Private method is not writable\");if(\"a\"===i&&!a)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!a:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===i?a.call(t,r):a?a.value=r:e.set(t,r),r}var commonjsGlobal=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function unwrapExports(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function createCommonjsModule(t,e){return t(e={exports:{}},e.exports),e.exports}function getCjsExportFromNamespace(t){return t&&t.default||t}function commonjsRequire(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}var lottie=createCommonjsModule((function(module,exports){\"undefined\"!=typeof navigator&&function(t,e){module.exports=e()}(0,(function(){var svgNS=\"http://www.w3.org/2000/svg\",locationHref=\"\",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(t){_useWebWorker=!!t},getWebWorker=function(){return _useWebWorker},setLocationHref=function(t){locationHref=t},getLocationHref=function(){return locationHref};function createTag(t){return document.createElement(t)}function extendPrototype(t,e){var r,i,a=t.length;for(r=0;r1?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[2]+=e,r[2]>1?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[0]+=e/360,r[0]>1?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}var rgbToHex=function(){var t,e,r=[];for(t=0;t<256;t+=1)e=t.toString(16),r[t]=1===e.length?\"0\"+e:e;return function(t,e,i){return t<0&&(t=0),e<0&&(e=0),i<0&&(i=0),\"#\"+r[t]+r[e]+r[i]}}(),setSubframeEnabled=function(t){subframeEnabled=!!t},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(t){expressionsPlugin=t},getExpressionsPlugin=function(){return expressionsPlugin},setExpressionInterfaces=function(t){expressionsInterfaces=t},getExpressionInterfaces=function(){return expressionsInterfaces},setDefaultCurveSegments=function(t){defaultCurveSegments=t},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(t){idPrefix$1=t},getIdPrefix=function(){return idPrefix$1};function createNS(t){return document.createElementNS(svgNS,t)}function _typeof$5(t){return(_typeof$5=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var dataManager=function(){var t,e,r=1,i=[],a={onmessage:function(){},postMessage:function(e){t({data:e})}},s={postMessage:function(t){a.onmessage({data:t})}};function n(){e||((e=function(e){if(window.Worker&&window.Blob&&getWebWorker()){var r=new Blob([\"var _workerSelf = self; self.onmessage = \",e.toString()],{type:\"text/javascript\"}),i=URL.createObjectURL(r);return new Worker(i)}return t=e,a}((function(t){if(s.dataManager||(s.dataManager=function(){function t(a,s){var n,o,h,l,p,c,m=a.length;for(o=0;o=0;e-=1)if(\"sh\"===t[e].ty)if(t[e].ks.k.i)i(t[e].ks.k);else for(s=t[e].ks.k.length,a=0;ar[0]||!(r[0]>t[0])&&(t[1]>r[1]||!(r[1]>t[1])&&(t[2]>r[2]||!(r[2]>t[2])&&null))}var s,n=function(){var t=[4,4,14];function e(t){var e,r,i,a=t.length;for(e=0;e=0;r-=1)if(\"sh\"===t[r].ty)if(t[r].ks.k.i)t[r].ks.k.c=t[r].closed;else for(a=t[r].ks.k.length,i=0;i500)&&(this._imageLoaded(),clearInterval(r)),e+=1}.bind(this),50)}function s(t){var e={assetData:t},r=i(t,this.assetsPath,this.path);return dataManager.loadData(r,function(t){e.img=t,this._footageLoaded()}.bind(this),function(){e.img={},this._footageLoaded()}.bind(this)),e}function n(){this._imageLoaded=e.bind(this),this._footageLoaded=r.bind(this),this.testImageLoaded=a.bind(this),this.createFootageData=s.bind(this),this.assetsPath=\"\",this.path=\"\",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return n.prototype={loadAssets:function(t,e){var r;this.imagesLoadedCb=e;var i=t.length;for(r=0;rthis.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,r,i=this.animationData.layers,a=i.length,s=t.layers,n=s.length;for(r=0;rthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger(\"enterFrame\"),this.renderFrame(),this.trigger(\"drawnFrame\")},AnimationItem.prototype.renderFrame=function(){if(!1!==this.isLoaded&&this.renderer)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(t){this.triggerRenderFrameError(t)}},AnimationItem.prototype.play=function(t){t&&this.name!==t||!0===this.isPaused&&(this.isPaused=!1,this.trigger(\"_pause\"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger(\"_active\")))},AnimationItem.prototype.pause=function(t){t&&this.name!==t||!1===this.isPaused&&(this.isPaused=!0,this.trigger(\"_play\"),this._idle=!0,this.trigger(\"_idle\"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(t){t&&this.name!==t||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!==t||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(t){for(var e,r=0;r=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger(\"loopComplete\"))):this.setCurrentRawFrameValue(e):this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(r=!0,e=this.totalFrames-1):e<0?this.checkSegments(e%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(r=!0,e=0):(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger(\"loopComplete\"):this._completedLoop=!0)):this.setCurrentRawFrameValue(e),r&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger(\"complete\"))}},AnimationItem.prototype.adjustSegment=function(t,e){this.playCount=0,t[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=t[0]-t[1],this.timeCompleted=this.totalFrames,this.firstFrame=t[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):t[1]>t[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=t[1]-t[0],this.timeCompleted=this.totalFrames,this.firstFrame=t[0],this.setCurrentRawFrameValue(.001+e)),this.trigger(\"segmentStart\")},AnimationItem.prototype.setSegment=function(t,e){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFramee&&(r=e-t)),this.firstFrame=t,this.totalFrames=e-t,this.timeCompleted=this.totalFrames,-1!==r&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(t,e){if(e&&(this.segments.length=0),\"object\"===_typeof$4(t[0])){var r,i=t.length;for(r=0;r=0;r-=1)e[r].animation.destroy(t)},t.freeze=function(){n=!0},t.unfreeze=function(){n=!1,d()},t.setVolume=function(t,r){var a;for(a=0;a=.001?function(t,e,r,i){for(var a=0;a<4;++a){var s=o(e,r,i);if(0===s)return e;e-=(n(e,r,i)-t)/s}return e}(t,h,e,r):0===l?h:function(t,e,r,i,a){var s,o,h=0;do{(s=n(o=e+(r-e)/2,i,a)-t)>0?r=o:e=o}while(Math.abs(s)>1e-7&&++h<10);return o}(t,a,a+.1,e,r)}},t}(),pooling={double:function(t){return t.concat(createSizedArray(t.length))}},poolFactory=function(t,e,r){var i=0,a=t,s=createSizedArray(a);return{newElement:function(){return i?s[i-=1]:e()},release:function(t){i===a&&(s=pooling.double(s),a*=2),r&&r(t),s[i]=t,i+=1}}},bezierLengthPool=poolFactory(8,(function(){return{addedLength:0,percents:createTypedArray(\"float32\",getDefaultCurveSegments()),lengths:createTypedArray(\"float32\",getDefaultCurveSegments())}})),segmentsLengthPool=poolFactory(8,(function(){return{lengths:[],totalLength:0}}),(function(t){var e,r=t.lengths.length;for(e=0;e-.001&&n<.001}var r=function(t,e,r,i){var a,s,n,o,h,l,p=getDefaultCurveSegments(),f=0,c=[],m=[],d=bezierLengthPool.newElement();for(n=r.length,a=0;an?-1:1,l=!0;l;)if(i[s]<=n&&i[s+1]>n?(o=(n-i[s])/(i[s+1]-i[s]),l=!1):s+=h,s<0||s>=a-1){if(s===a-1)return r[s];l=!1}return r[s]+(r[s+1]-r[s])*o}var h=createTypedArray(\"float32\",8);return{getSegmentsLength:function(t){var e,i=segmentsLengthPool.newElement(),a=t.c,s=t.v,n=t.o,o=t.i,h=t._length,l=i.lengths,p=0;for(e=0;e1&&(s=1);var p,f=o(s,l),c=o(n=n>1?1:n,l),m=e.length,d=1-f,u=1-c,y=d*d*d,g=f*d*d*3,v=f*f*d*3,b=f*f*f,x=d*d*u,P=f*d*u+d*f*u+d*d*c,E=f*f*u+d*f*c+f*d*c,S=f*f*c,C=d*u*u,_=f*u*u+d*c*u+d*u*c,A=f*c*u+d*c*c+f*u*c,k=f*c*c,w=u*u*u,T=c*u*u+u*c*u+u*u*c,M=c*c*u+u*c*c+c*u*c,D=c*c*c;for(p=0;pm?c>d?c-m-d:d-m-c:d>m?d-m-c:m-c-d)>-1e-4&&f<1e-4}}}var bez=bezFunction(),PropertyFactory=function(){var t=initialDefaultFrame,e=Math.abs;function r(t,e){var r,a=this.offsetTime;\"multidimensional\"===this.propType&&(r=createTypedArray(\"float32\",this.pv.length));for(var s,n,o,h,l,p,f,c,m,d=e.lastIndex,u=d,y=this.keyframes.length-1,g=!0;g;){if(s=this.keyframes[u],n=this.keyframes[u+1],u===y-1&&t>=n.t-a){s.h&&(s=n),d=0;break}if(n.t-a>t){d=u;break}u=b||t=b?P.points.length-1:0;for(l=P.points[E].point.length,h=0;h=_&&C<_+P.points[c+1].partialLength){for(S=(C-_)/P.points[c+1].partialLength,l=P.points[c].point.length,h=0;h=b)r[0]=v[0],r[1]=v[1],r[2]=v[2];else if(t<=x)r[0]=s.s[0],r[1]=s.s[1],r[2]=s.s[2];else{!function(t,e){var r=e[0],i=e[1],a=e[2],s=e[3],n=Math.atan2(2*i*s-2*r*a,1-2*i*i-2*a*a),o=Math.asin(2*r*i+2*a*s),h=Math.atan2(2*r*s-2*i*a,1-2*r*r-2*a*a);t[0]=n/degToRads,t[1]=o/degToRads,t[2]=h/degToRads}(r,function(t,e,r){var i,a,s,n,o,h=[],l=t[0],p=t[1],f=t[2],c=t[3],m=e[0],d=e[1],u=e[2],y=e[3];(a=l*m+p*d+f*u+c*y)<0&&(a=-a,m=-m,d=-d,u=-u,y=-y);1-a>1e-6?(i=Math.acos(a),s=Math.sin(i),n=Math.sin((1-r)*i)/s,o=Math.sin(r*i)/s):(n=1-r,o=r);return h[0]=n*l+o*m,h[1]=n*p+o*d,h[2]=n*f+o*u,h[3]=n*c+o*y,h}(i(s.s),i(v),(t-x)/(b-x)))}else for(u=0;u=b?p=1:t=i&&e>=i||this._caching.lastFrame=e&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var a=this.interpolateValue(e,this._caching);this.pv=a}return this._caching.lastFrame=e,this.pv}function s(t){var r;if(\"unidimensional\"===this.propType)r=t*this.mult,e(this.v-r)>1e-5&&(this.v=r,this._mdf=!0);else for(var i=0,a=this.v.length;i1e-5&&(this.v[i]=r,this._mdf=!0),i+=1}function n(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{var t;this.lock=!0,this._mdf=this._isFirstFrame;var e=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(t=0;t=this._maxLength&&this.doubleArrayLength(),r){case\"v\":s=this.v;break;case\"i\":s=this.i;break;case\"o\":s=this.o;break;default:s=[]}(!s[i]||s[i]&&!a)&&(s[i]=pointPool.newElement()),s[i][0]=t,s[i][1]=e},ShapePath.prototype.setTripleAt=function(t,e,r,i,a,s,n,o){this.setXYAt(t,e,\"v\",n,o),this.setXYAt(r,i,\"o\",n,o),this.setXYAt(a,s,\"i\",n,o)},ShapePath.prototype.reverse=function(){var t=new ShapePath;t.setPathData(this.c,this._length);var e=this.v,r=this.o,i=this.i,a=0;this.c&&(t.setTripleAt(e[0][0],e[0][1],i[0][0],i[0][1],r[0][0],r[0][1],0,!1),a=1);var s,n=this._length-1,o=this._length;for(s=a;s=m[m.length-1].t-this.offsetTime)i=m[m.length-1].s?m[m.length-1].s[0]:m[m.length-2].e[0],s=!0;else{for(var d,u,y,g=c,v=m.length-1,b=!0;b&&(d=m[g],!((u=m[g+1]).t-this.offsetTime>t));)g=u.t-this.offsetTime)p=1;else if(tr&&t>r)||(this._caching.lastIndex=i0||t>-1e-6&&t<0?i(1e4*t)/1e4:t}function F(){var t=this.props;return\"matrix(\"+D(t[0])+\",\"+D(t[1])+\",\"+D(t[4])+\",\"+D(t[5])+\",\"+D(t[12])+\",\"+D(t[13])+\")\"}return function(){this.reset=a,this.rotate=s,this.rotateX=n,this.rotateY=o,this.rotateZ=h,this.skew=p,this.skewFromAxis=f,this.shear=l,this.scale=c,this.setTransform=m,this.translate=d,this.transform=u,this.applyToPoint=x,this.applyToX=P,this.applyToY=E,this.applyToZ=S,this.applyToPointArray=w,this.applyToTriplePoints=k,this.applyToPointStringified=T,this.toCSS=M,this.to2dCSS=F,this.clone=v,this.cloneFromProps=b,this.equals=g,this.inversePoints=A,this.inversePoint=_,this.getInverseMatrix=C,this._t=this.transform,this.isIdentity=y,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray(\"float32\",16),this.reset()}}();function _typeof$3(t){return(_typeof$3=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var lottie={},standalone=\"__[STANDALONE]__\",animationData=\"__[ANIMATIONDATA]__\",renderer=\"\";function setLocation(t){setLocationHref(t)}function searchAnimations(){!0===standalone?animationManager.searchAnimations(animationData,standalone,renderer):animationManager.searchAnimations()}function setSubframeRendering(t){setSubframeEnabled(t)}function setPrefix(t){setIdPrefix(t)}function loadAnimation(t){return!0===standalone&&(t.animationData=JSON.parse(animationData)),animationManager.loadAnimation(t)}function setQuality(t){if(\"string\"==typeof t)switch(t){case\"high\":setDefaultCurveSegments(200);break;default:case\"medium\":setDefaultCurveSegments(50);break;case\"low\":setDefaultCurveSegments(10)}else!isNaN(t)&&t>1&&setDefaultCurveSegments(t);getDefaultCurveSegments()>=50?roundValues(!1):roundValues(!0)}function inBrowser(){return\"undefined\"!=typeof navigator}function installPlugin(t,e){\"expressions\"===t&&setExpressionsPlugin(e)}function getFactory(t){switch(t){case\"propertyFactory\":return PropertyFactory;case\"shapePropertyFactory\":return ShapePropertyFactory;case\"matrix\":return Matrix;default:return null}}function checkReady(){\"complete\"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(t){for(var e=queryString.split(\"&\"),r=0;r=1?s.push({s:t-1,e:e-1}):(s.push({s:t,e:1}),s.push({s:0,e:e-1}));var n,o,h=[],l=s.length;for(n=0;ni+r))p=o.s*a<=i?0:(o.s*a-i)/r,f=o.e*a>=i+r?1:(o.e*a-i)/r,h.push([p,f])}return h.length||h.push([0,0]),h},TrimModifier.prototype.releasePathsData=function(t){var e,r=t.length;for(e=0;e1?1+s:this.s.v<0?0+s:this.s.v+s)>(r=this.e.v>1?1+s:this.e.v<0?0+s:this.e.v+s)){var n=e;e=r,r=n}e=1e-4*Math.round(1e4*e),r=1e-4*Math.round(1e4*r),this.sValue=e,this.eValue=r}else e=this.sValue,r=this.eValue;var o,h,l,p,f,c=this.shapes.length,m=0;if(r===e)for(a=0;a=0;a-=1)if((d=this.shapes[a]).shape._mdf){for((u=d.localShapeCollection).releaseShapes(),2===this.m&&c>1?(g=this.calculateShapeEdges(e,r,d.totalShapeLength,x,m),x+=d.totalShapeLength):g=[[v,b]],h=g.length,o=0;o=1?y.push({s:d.totalShapeLength*(v-1),e:d.totalShapeLength*(b-1)}):(y.push({s:d.totalShapeLength*v,e:d.totalShapeLength}),y.push({s:0,e:d.totalShapeLength*(b-1)}));var P=this.addShapes(d,y[0]);if(y[0].s!==y[0].e){if(y.length>1)if(d.shape.paths.shapes[d.shape.paths._length-1].c){var E=P.pop();this.addPaths(P,u),P=this.addShapes(d,y[1],E)}else this.addPaths(P,u),P=this.addShapes(d,y[1]);this.addPaths(P,u)}}d.shape.paths=u}}},TrimModifier.prototype.addPaths=function(t,e){var r,i=t.length;for(r=0;re.e){r.c=!1;break}e.s<=d&&e.e>=d+n.addedLength?(this.addSegment(c[i].v[a-1],c[i].o[a-1],c[i].i[a],c[i].v[a],r,o,y),y=!1):(l=bez.getNewSegment(c[i].v[a-1],c[i].v[a],c[i].o[a-1],c[i].i[a],(e.s-d)/n.addedLength,(e.e-d)/n.addedLength,h[a-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1),d+=n.addedLength,o+=1}if(c[i].c&&h.length){if(n=h[a-1],d<=e.e){var g=h[a-1].addedLength;e.s<=d&&e.e>=d+g?(this.addSegment(c[i].v[a-1],c[i].o[a-1],c[i].i[0],c[i].v[0],r,o,y),y=!1):(l=bez.getNewSegment(c[i].v[a-1],c[i].v[0],c[i].o[a-1],c[i].i[0],(e.s-d)/g,(e.e-d)/g,h[a-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1)}else r.c=!1;d+=n.addedLength,o+=1}if(r._length&&(r.setXYAt(r.v[p][0],r.v[p][1],\"i\",p),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],\"o\",r._length-1)),d>e.e)break;i=this.p.keyframes[this.p.keyframes.length-1].t?(i=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/r,0),a=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/r,0)):(i=this.p.pv,a=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/r,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){i=[],a=[];var s=this.px,n=this.py;s._caching.lastFrame+s.offsetTime<=s.keyframes[0].t?(i[0]=s.getValueAtTime((s.keyframes[0].t+.01)/r,0),i[1]=n.getValueAtTime((n.keyframes[0].t+.01)/r,0),a[0]=s.getValueAtTime(s.keyframes[0].t/r,0),a[1]=n.getValueAtTime(n.keyframes[0].t/r,0)):s._caching.lastFrame+s.offsetTime>=s.keyframes[s.keyframes.length-1].t?(i[0]=s.getValueAtTime(s.keyframes[s.keyframes.length-1].t/r,0),i[1]=n.getValueAtTime(n.keyframes[n.keyframes.length-1].t/r,0),a[0]=s.getValueAtTime((s.keyframes[s.keyframes.length-1].t-.01)/r,0),a[1]=n.getValueAtTime((n.keyframes[n.keyframes.length-1].t-.01)/r,0)):(i=[s.pv,n.pv],a[0]=s.getValueAtTime((s._caching.lastFrame+s.offsetTime-.01)/r,s.offsetTime),a[1]=n.getValueAtTime((n._caching.lastFrame+n.offsetTime-.01)/r,n.offsetTime))}else i=a=t;this.v.rotate(-Math.atan2(i[1]-a[1],i[0]-a[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],e),e.prototype.addDynamicProperty=function(t){this._addDynamicProperty(t),this.elem.addDynamicProperty(t),this._isDirty=!0},e.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(t,r,i){return new e(t,r,i)}}}();function RepeaterModifier(){}function RoundCornersModifier(){}function floatEqual(t,e){return 1e5*Math.abs(t-e)<=Math.min(Math.abs(t),Math.abs(e))}function floatZero(t){return Math.abs(t)<=1e-5}function lerp(t,e,r){return t*(1-r)+e*r}function lerpPoint(t,e,r){return[lerp(t[0],e[0],r),lerp(t[1],e[1],r)]}function quadRoots(t,e,r){if(0===t)return[];var i=e*e-4*t*r;if(i<0)return[];var a=-e/(2*t);if(0===i)return[a];var s=Math.sqrt(i)/(2*t);return[a-s,a+s]}function polynomialCoefficients(t,e,r,i){return[3*e-t-3*r+i,3*t-6*e+3*r,-3*t+3*e,t]}function singlePoint(t){return new PolynomialBezier(t,t,t,t,!1)}function PolynomialBezier(t,e,r,i,a){a&&pointEqual(t,e)&&(e=lerpPoint(t,i,1/3)),a&&pointEqual(r,i)&&(r=lerpPoint(t,i,2/3));var s=polynomialCoefficients(t[0],e[0],r[0],i[0]),n=polynomialCoefficients(t[1],e[1],r[1],i[1]);this.a=[s[0],n[0]],this.b=[s[1],n[1]],this.c=[s[2],n[2]],this.d=[s[3],n[3]],this.points=[t,e,r,i]}function extrema(t,e){var r=t.points[0][e],i=t.points[t.points.length-1][e];if(r>i){var a=i;i=r,r=a}for(var s=quadRoots(3*t.a[e],2*t.b[e],t.c[e]),n=0;n0&&s[n]<1){var o=t.point(s[n])[e];oi&&(i=o)}return{min:r,max:i}}function intersectData(t,e,r){var i=t.boundingBox();return{cx:i.cx,cy:i.cy,width:i.width,height:i.height,bez:t,t:(e+r)/2,t1:e,t2:r}}function splitData(t){var e=t.bez.split(.5);return[intersectData(e[0],t.t1,t.t),intersectData(e[1],t.t,t.t2)]}function boxIntersect(t,e){return 2*Math.abs(t.cx-e.cx)=s||t.width<=i&&t.height<=i&&e.width<=i&&e.height<=i)a.push([t.t,e.t]);else{var n=splitData(t),o=splitData(e);intersectsImpl(n[0],o[0],r+1,i,a,s),intersectsImpl(n[0],o[1],r+1,i,a,s),intersectsImpl(n[1],o[0],r+1,i,a,s),intersectsImpl(n[1],o[1],r+1,i,a,s)}}function crossProduct(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function lineIntersection(t,e,r,i){var a=[t[0],t[1],1],s=[e[0],e[1],1],n=[r[0],r[1],1],o=[i[0],i[1],1],h=crossProduct(crossProduct(a,s),crossProduct(n,o));return floatZero(h[2])?null:[h[0]/h[2],h[1]/h[2]]}function polarOffset(t,e,r){return[t[0]+Math.cos(e)*r,t[1]-Math.sin(e)*r]}function pointDistance(t,e){return Math.hypot(t[0]-e[0],t[1]-e[1])}function pointEqual(t,e){return floatEqual(t[0],e[0])&&floatEqual(t[1],e[1])}function ZigZagModifier(){}function setPoint(t,e,r,i,a,s,n){var o=r-Math.PI/2,h=r+Math.PI/2,l=e[0]+Math.cos(r)*i*a,p=e[1]-Math.sin(r)*i*a;t.setTripleAt(l,p,l+Math.cos(o)*s,p-Math.sin(o)*s,l+Math.cos(h)*n,p-Math.sin(h)*n,t.length())}function getPerpendicularVector(t,e){var r=[e[0]-t[0],e[1]-t[1]],i=.5*-Math.PI;return[Math.cos(i)*r[0]-Math.sin(i)*r[1],Math.sin(i)*r[0]+Math.cos(i)*r[1]]}function getProjectingAngle(t,e){var r=0===e?t.length()-1:e-1,i=(e+1)%t.length(),a=getPerpendicularVector(t.v[r],t.v[i]);return Math.atan2(0,1)-Math.atan2(a[1],a[0])}function zigZagCorner(t,e,r,i,a,s,n){var o=getProjectingAngle(e,r),h=e.v[r%e._length],l=e.v[0===r?e._length-1:r-1],p=e.v[(r+1)%e._length],f=2===s?Math.sqrt(Math.pow(h[0]-l[0],2)+Math.pow(h[1]-l[1],2)):0,c=2===s?Math.sqrt(Math.pow(h[0]-p[0],2)+Math.pow(h[1]-p[1],2)):0;setPoint(t,e.v[r%e._length],o,n,i,c/(2*(a+1)),f/(2*(a+1)),s)}function zigZagSegment(t,e,r,i,a,s){for(var n=0;n1&&e.length>1&&(a=getIntersection(t[0],e[e.length-1]))?[[t[0].split(a[0])[0]],[e[e.length-1].split(a[1])[1]]]:[r,i]}function pruneIntersections(t){for(var e,r=1;r1&&(e=pruneSegmentIntersection(t[t.length-1],t[0]),t[t.length-1]=e[0],t[0]=e[1]),t}function offsetSegmentSplit(t,e){var r,i,a,s,n=t.inflectionPoints();if(0===n.length)return[offsetSegment(t,e)];if(1===n.length||floatEqual(n[1],1))return r=(a=t.split(n[0]))[0],i=a[1],[offsetSegment(r,e),offsetSegment(i,e)];r=(a=t.split(n[0]))[0];var o=(n[1]-n[0])/(1-n[0]);return s=(a=a[1].split(o))[0],i=a[1],[offsetSegment(r,e),offsetSegment(s,e),offsetSegment(i,e)]}function OffsetPathModifier(){}function getFontProperties(t){for(var e=t.fStyle?t.fStyle.split(\" \"):[],r=\"normal\",i=\"normal\",a=e.length,s=0;s0;)r-=1,this._elements.unshift(e[r]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(t){var e,r=t.length;for(e=0;e0?Math.floor(c):Math.ceil(c),u=this.pMatrix.props,y=this.rMatrix.props,g=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var v,b,x=0;if(c>0){for(;xd;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),x-=1;m&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-m,!0),x-=m)}for(i=1===this.data.m?0:this._currentCopies-1,a=1===this.data.m?1:-1,s=this._currentCopies;s;){if(b=(r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props).length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=1===this._currentCopies?this.so.v:this.so.v+(this.eo.v-this.so.v)*(i/(this._currentCopies-1)),0!==x){for((0!==i&&1===a||i!==this._currentCopies-1&&-1===a)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9],y[10],y[11],y[12],y[13],y[14],y[15]),this.matrix.transform(g[0],g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15]),this.matrix.transform(u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],u[8],u[9],u[10],u[11],u[12],u[13],u[14],u[15]),v=0;v0&&i<1?[e]:[]:[e-i,e+i].filter((function(t){return t>0&&t<1}))},PolynomialBezier.prototype.split=function(t){if(t<=0)return[singlePoint(this.points[0]),this];if(t>=1)return[this,singlePoint(this.points[this.points.length-1])];var e=lerpPoint(this.points[0],this.points[1],t),r=lerpPoint(this.points[1],this.points[2],t),i=lerpPoint(this.points[2],this.points[3],t),a=lerpPoint(e,r,t),s=lerpPoint(r,i,t),n=lerpPoint(a,s,t);return[new PolynomialBezier(this.points[0],e,a,n,!0),new PolynomialBezier(n,s,i,this.points[3],!0)]},PolynomialBezier.prototype.bounds=function(){return{x:extrema(this,0),y:extrema(this,1)}},PolynomialBezier.prototype.boundingBox=function(){var t=this.bounds();return{left:t.x.min,right:t.x.max,top:t.y.min,bottom:t.y.max,width:t.x.max-t.x.min,height:t.y.max-t.y.min,cx:(t.x.max+t.x.min)/2,cy:(t.y.max+t.y.min)/2}},PolynomialBezier.prototype.intersections=function(t,e,r){void 0===e&&(e=2),void 0===r&&(r=7);var i=[];return intersectsImpl(intersectData(this,0,1),intersectData(t,0,1),0,e,i,r),i},PolynomialBezier.shapeSegment=function(t,e){var r=(e+1)%t.length();return new PolynomialBezier(t.v[e],t.o[e],t.i[r],t.v[r],!0)},PolynomialBezier.shapeSegmentInverted=function(t,e){var r=(e+1)%t.length();return new PolynomialBezier(t.v[r],t.i[r],t.o[e],t.v[e],!0)},extendPrototype([ShapeModifier],ZigZagModifier),ZigZagModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.amplitude=PropertyFactory.getProp(t,e.s,0,null,this),this.frequency=PropertyFactory.getProp(t,e.r,0,null,this),this.pointsType=PropertyFactory.getProp(t,e.pt,0,null,this),this._isAnimated=0!==this.amplitude.effectsSequence.length||0!==this.frequency.effectsSequence.length||0!==this.pointsType.effectsSequence.length},ZigZagModifier.prototype.processPath=function(t,e,r,i){var a=t._length,s=shapePool.newElement();if(s.c=t.c,t.c||(a-=1),0===a)return s;var n=-1,o=PolynomialBezier.shapeSegment(t,0);zigZagCorner(s,t,0,e,r,i,n);for(var h=0;h=0;s-=1)o=PolynomialBezier.shapeSegmentInverted(t,s),l.push(offsetSegmentSplit(o,e));l=pruneIntersections(l);var p=null,f=null;for(s=0;s0&&(p=!1),p){var f=createTag(\"style\");f.setAttribute(\"f-forigin\",i[r].fOrigin),f.setAttribute(\"f-origin\",i[r].origin),f.setAttribute(\"f-family\",i[r].fFamily),f.type=\"text/css\",f.innerText=\"@font-face {font-family: \"+i[r].fFamily+\"; font-style: normal; src: url('\"+i[r].fPath+\"');}\",e.appendChild(f)}}else if(\"g\"===i[r].fOrigin||1===i[r].origin){for(h=document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]'),l=0;lt?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var t,e=this.renderableComponents.length;for(t=0;t0&&(this.maskElement.setAttribute(\"id\",y),this.element.maskedElement.setAttribute(v,\"url(\"+getLocationHref()+\"#\"+y+\")\"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}extendPrototype([DynamicPropertyContainer],GroupEffect),GroupEffect.prototype.getValue=GroupEffect.prototype.iterateDynamicProperties,GroupEffect.prototype.init=function(t,e){var r;this.data=t,this.effectElements=[],this.initDynamicPropertyContainer(e);var i,a=this.data.ef.length,s=this.data.ef;for(r=0;r.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(t){this.audio.rate(t)},AudioElement.prototype.volume=function(t){this._volumeMultiplier=t,this._previousVolume=t*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){},BaseRenderer.prototype.checkLayers=function(t){var e,r,i=this.layers.length;for(this.completeLayers=!0,e=i-1;e>=0;e-=1)this.elements[e]||(r=this.layers[e]).ip-r.st<=t-this.layers[e].st&&r.op-r.st>t-this.layers[e].st&&this.buildItem(e),this.completeLayers=!!this.elements[e]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(t){switch(t.ty){case 2:return this.createImage(t);case 0:return this.createComp(t);case 1:return this.createSolid(t);case 3:return this.createNull(t);case 4:return this.createShape(t);case 5:return this.createText(t);case 6:return this.createAudio(t);case 13:return this.createCamera(t);case 15:return this.createFootage(t);default:return this.createNull(t)}},BaseRenderer.prototype.createCamera=function(){throw new Error(\"You're using a 3d camera. Try the html renderer.\")},BaseRenderer.prototype.createAudio=function(t){return new AudioElement(t,this.globalData,this)},BaseRenderer.prototype.createFootage=function(t){return new FootageElement(t,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var t,e=this.layers.length;for(t=0;t1&&(s+=\" C\"+e.o[i-1][0]+\",\"+e.o[i-1][1]+\" \"+e.i[0][0]+\",\"+e.i[0][1]+\" \"+e.v[0][0]+\",\"+e.v[0][1]),r.lastPath!==s){var n=\"\";r.elem&&(e.c&&(n=t.inv?this.solidPath+s:s),r.elem.setAttribute(\"d\",n)),r.lastPath=s}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var t={};return t.createFilter=function(t,e){var r=createNS(\"filter\");r.setAttribute(\"id\",t),!0!==e&&(r.setAttribute(\"filterUnits\",\"objectBoundingBox\"),r.setAttribute(\"x\",\"0%\"),r.setAttribute(\"y\",\"0%\"),r.setAttribute(\"width\",\"100%\"),r.setAttribute(\"height\",\"100%\"));return r},t.createAlphaToLuminanceFilter=function(){var t=createNS(\"feColorMatrix\");return t.setAttribute(\"type\",\"matrix\"),t.setAttribute(\"color-interpolation-filters\",\"sRGB\"),t.setAttribute(\"values\",\"0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1\"),t},t}(),featureSupport=function(){var t={maskType:!0,svgLumaHidden:!0,offscreenCanvas:\"undefined\"!=typeof OffscreenCanvas};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\\/\\d./i.test(navigator.userAgent))&&(t.maskType=!1),/firefox/i.test(navigator.userAgent)&&(t.svgLumaHidden=!1),t}(),registeredEffects={},idPrefix=\"filter_result_\";function SVGEffects(t){var e,r,i=\"SourceGraphic\",a=t.data.ef?t.data.ef.length:0,s=createElementID(),n=filtersFactory.createFilter(s,!0),o=0;for(this.filters=[],e=0;e=0&&!this.shapeModifiers[t].processShapes(this._isFirstFrame);t-=1);}},searchProcessedElement:function(t){for(var e=this.processedElements,r=0,i=e.length;r.01)return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var t=0,e=this.data.k.k.length;t0;)h=i.transformers[u].mProps._mdf||h,d-=1,u-=1;if(h)for(d=g-i.styles[p].lvl,u=i.transformers.length-1;d>0;)m=i.transformers[u].mProps.v.props,c.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),d-=1,u-=1}else c=t;if(n=(f=i.sh.paths)._length,h){for(o=\"\",s=0;s=1?v=.99:v<=-1&&(v=-.99);var b=o*v,x=Math.cos(g+e.a.v)*b+p[0],P=Math.sin(g+e.a.v)*b+p[1];h.setAttribute(\"fx\",x),h.setAttribute(\"fy\",P),l&&!e.g._collapsable&&(e.of.setAttribute(\"fx\",x),e.of.setAttribute(\"fy\",P))}}function h(t,e,r){var i=e.style,a=e.d;a&&(a._mdf||r)&&a.dashStr&&(i.pElem.setAttribute(\"stroke-dasharray\",a.dashStr),i.pElem.setAttribute(\"stroke-dashoffset\",a.dashoffset[0])),e.c&&(e.c._mdf||r)&&i.pElem.setAttribute(\"stroke\",\"rgb(\"+bmFloor(e.c.v[0])+\",\"+bmFloor(e.c.v[1])+\",\"+bmFloor(e.c.v[2])+\")\"),(e.o._mdf||r)&&i.pElem.setAttribute(\"stroke-opacity\",e.o.v),(e.w._mdf||r)&&(i.pElem.setAttribute(\"stroke-width\",e.w.v),i.msElem&&i.msElem.setAttribute(\"stroke-width\",e.w.v))}return{createRenderFunction:function(t){switch(t.ty){case\"fl\":return s;case\"gf\":return o;case\"gs\":return n;case\"st\":return h;case\"sh\":case\"el\":case\"rc\":case\"sr\":return a;case\"tr\":return r;case\"no\":return i;default:return null}}}}();function SVGShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(t,e,r),this.prevViewData=[]}function LetterProps(t,e,r,i,a,s){this.o=t,this.sw=e,this.sc=r,this.fc=i,this.m=a,this.p=s,this._mdf={o:!0,sw:!!e,sc:!!r,fc:!!i,m:!0,p:!0}}function TextProperty(t,e){this._frameId=initialDefaultFrame,this.pv=\"\",this.v=\"\",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=e,this.elem=t,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:\"\",fStyle:\"\",fWeight:\"\",fc:\"\",j:\"\",justifyOffset:\"\",l:[],lh:0,lineWidths:[],ls:\"\",of:\"\",s:\"\",sc:\"\",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var t,e,r,i,a=this.shapes.length,s=this.stylesList.length,n=[],o=!1;for(r=0;r1&&o&&this.setShapesAsAnimated(n)}},SVGShapeElement.prototype.setShapesAsAnimated=function(t){var e,r=t.length;for(e=0;e=0;o-=1){if((c=this.searchProcessedElement(t[o]))?e[o]=r[c-1]:t[o]._render=n,\"fl\"===t[o].ty||\"st\"===t[o].ty||\"gf\"===t[o].ty||\"gs\"===t[o].ty||\"no\"===t[o].ty)c?e[o].style.closed=!1:e[o]=this.createStyleElement(t[o],a),t[o]._render&&e[o].style.pElem.parentNode!==i&&i.appendChild(e[o].style.pElem),u.push(e[o].style);else if(\"gr\"===t[o].ty){if(c)for(l=e[o].it.length,h=0;h1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(t){this.effectsSequence.push(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(t){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||t){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,r=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{var i;this.lock=!0,this._mdf=!1;var a=this.effectsSequence.length,s=t||this.data.d.k[this.keysIndex].s;for(i=0;ie);)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(t){for(var e,r,i=[],a=0,s=t.length,n=!1;a=55296&&e<=56319?(r=t.charCodeAt(a+1))>=56320&&r<=57343?(n||FontManager.isModifier(e,r)?(i[i.length-1]+=t.substr(a,2),n=!1):i.push(t.substr(a,2)),a+=1):i.push(t.charAt(a)):e>56319?(r=t.charCodeAt(a+1),FontManager.isZeroWidthJoiner(e,r)?(n=!0,i[i.length-1]+=t.substr(a,2),a+=1):i.push(t.charAt(a))):FontManager.isZeroWidthJoiner(e)?(i[i.length-1]+=t.charAt(a),n=!0):i.push(t.charAt(a)),a+=1;return i},TextProperty.prototype.completeTextData=function(t){t.__complete=!0;var e,r,i,a,s,n,o,h=this.elem.globalData.fontManager,l=this.data,p=[],f=0,c=l.m.g,m=0,d=0,u=0,y=[],g=0,v=0,b=h.getFontByName(t.f),x=0,P=getFontProperties(b);t.fWeight=P.weight,t.fStyle=P.style,t.finalSize=t.s,t.finalText=this.buildFinalText(t.t),r=t.finalText.length,t.finalLineHeight=t.lh;var E,S=t.tr/1e3*t.finalSize;if(t.sz)for(var C,_,A=!0,k=t.sz[0],w=t.sz[1];A;){C=0,g=0,r=(_=this.buildFinalText(t.t)).length,S=t.tr/1e3*t.finalSize;var T=-1;for(e=0;ek&&\" \"!==_[e]?(-1===T?r+=1:e=T,C+=t.finalLineHeight||1.2*t.finalSize,_.splice(e,T===e?1:0,\"\\r\"),T=-1,g=0):(g+=x,g+=S);C+=b.ascent*t.finalSize/100,this.canResize&&t.finalSize>this.minimumFontSize&&wv?g:v,g=-2*S,a=\"\",i=!0,u+=1):a=M,h.chars?(o=h.getCharData(M,b.fStyle,h.getFontByName(t.f).fFamily),x=i?0:o.w*t.finalSize/100):x=h.measureText(a,t.f,t.finalSize),\" \"===M?D+=x+S:(g+=x+S+D,D=0),p.push({l:x,an:x,add:m,n:i,anIndexes:[],val:a,line:u,animatorJustifyOffset:0}),2==c){if(m+=x,\"\"===a||\" \"===a||e===r-1){for(\"\"!==a&&\" \"!==a||(m-=x);d<=e;)p[d].an=m,p[d].ind=f,p[d].extra=x,d+=1;f+=1,m=0}}else if(3==c){if(m+=x,\"\"===a||e===r-1){for(\"\"===a&&(m-=x);d<=e;)p[d].an=m,p[d].ind=f,p[d].extra=x,d+=1;m=0,f+=1}}else p[f].ind=f,p[f].extra=0,f+=1;if(t.l=p,v=g>v?g:v,y.push(g),t.sz)t.boxWidth=t.sz[0],t.justifyOffset=0;else switch(t.boxWidth=v,t.j){case 1:t.justifyOffset=-t.boxWidth;break;case 2:t.justifyOffset=-t.boxWidth/2;break;default:t.justifyOffset=0}t.lineWidths=y;var F,I,R,B,V=l.a;n=V.length;var L=[];for(s=0;s0?a=this.ne.v/100:s=-this.ne.v/100,this.xe.v>0?n=1-this.xe.v/100:o=1+this.xe.v/100;var h=BezierFactory.getBezierEasing(a,s,n,o).get,l=0,p=this.finalS,f=this.finalE,c=this.data.sh;if(2===c)l=h(l=f===p?i>=f?1:0:t(0,e(.5/(f-p)+(i-p)/(f-p),1)));else if(3===c)l=h(l=f===p?i>=f?0:1:1-t(0,e(.5/(f-p)+(i-p)/(f-p),1)));else if(4===c)f===p?l=0:(l=t(0,e(.5/(f-p)+(i-p)/(f-p),1)))<.5?l*=2:l=1-2*(l-.5),l=h(l);else if(5===c){if(f===p)l=0;else{var m=f-p,d=-m/2+(i=e(t(0,i+.5-p),f-p)),u=m/2;l=Math.sqrt(1-d*d/(u*u))}l=h(l)}else 6===c?(f===p?l=0:(i=e(t(0,i+.5-p),f-p),l=(1+Math.cos(Math.PI+2*Math.PI*i/(f-p)))/2),l=h(l)):(i>=r(p)&&(l=t(0,e(i-p<0?e(f,1)-(p-i):f-i,1))),l=h(l));if(100!==this.sm.v){var y=.01*this.sm.v;0===y&&(y=1e-8);var g=.5-.5*y;l1&&(l=1)}return l*this.a.v},getValue:function(t){this.iterateDynamicProperties(),this._mdf=t||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,t&&2===this.data.r&&(this.e.v=this._currentTextLength);var e=2===this.data.r?1:100/this.data.totalChars,r=this.o.v/e,i=this.s.v/e+r,a=this.e.v/e+r;if(i>a){var s=i;i=a,a=s}this.finalS=i,this.finalE=a}},extendPrototype([DynamicPropertyContainer],i),{getTextSelectorProp:function(t,e,r){return new i(t,e,r)}}}();function TextAnimatorDataProperty(t,e,r){var i={propType:!1},a=PropertyFactory.getProp,s=e.a;this.a={r:s.r?a(t,s.r,0,degToRads,r):i,rx:s.rx?a(t,s.rx,0,degToRads,r):i,ry:s.ry?a(t,s.ry,0,degToRads,r):i,sk:s.sk?a(t,s.sk,0,degToRads,r):i,sa:s.sa?a(t,s.sa,0,degToRads,r):i,s:s.s?a(t,s.s,1,.01,r):i,a:s.a?a(t,s.a,1,0,r):i,o:s.o?a(t,s.o,0,.01,r):i,p:s.p?a(t,s.p,1,0,r):i,sw:s.sw?a(t,s.sw,0,0,r):i,sc:s.sc?a(t,s.sc,1,0,r):i,fc:s.fc?a(t,s.fc,1,0,r):i,fh:s.fh?a(t,s.fh,0,0,r):i,fs:s.fs?a(t,s.fs,0,.01,r):i,fb:s.fb?a(t,s.fb,0,.01,r):i,t:s.t?a(t,s.t,0,0,r):i},this.s=TextSelectorProp.getTextSelectorProp(t,e.s,r),this.s.t=e.s.t}function TextAnimatorProperty(t,e,r){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=t,this._renderType=e,this._elem=r,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(r)}function ITextElement(){}TextAnimatorProperty.prototype.searchProperties=function(){var t,e,r=this._textData.a.length,i=PropertyFactory.getProp;for(t=0;t=o+ot||!d?(v=(o+ot-l)/h.partialLength,z=m.point[0]+(h.point[0]-m.point[0])*v,G=m.point[1]+(h.point[1]-m.point[1])*v,C.translate(-P[0]*k[a].an*.005,-P[1]*B*.01),p=!1):d&&(l+=h.partialLength,(f+=1)>=d.length&&(f=0,u[c+=1]?d=u[c].points:x.v.c?(f=0,d=u[c=0].points):(l-=h.partialLength,d=null)),d&&(m=h,y=(h=d[f]).partialLength));L=k[a].an/2-k[a].add,C.translate(-L,0,0)}else L=k[a].an/2-k[a].add,C.translate(-L,0,0),C.translate(-P[0]*k[a].an*.005,-P[1]*B*.01,0);for(D=0;Dt?this.textSpans[t].span:createNS(h?\"g\":\"text\"),y<=t){if(n.setAttribute(\"stroke-linecap\",\"butt\"),n.setAttribute(\"stroke-linejoin\",\"round\"),n.setAttribute(\"stroke-miterlimit\",\"4\"),this.textSpans[t].span=n,h){var g=createNS(\"g\");n.appendChild(g),this.textSpans[t].childSpan=g}this.textSpans[t].span=n,this.layerElement.appendChild(n)}n.style.display=\"inherit\"}if(l.reset(),p&&(o[t].n&&(f=-d,c+=r.yOffset,c+=m?1:0,m=!1),this.applyTextPropertiesToMatrix(r,l,o[t].line,f,c),f+=o[t].l||0,f+=d),h){var v;if(1===(u=this.globalData.fontManager.getCharData(r.finalText[t],i.fStyle,this.globalData.fontManager.getFontByName(r.f).fFamily)).t)v=new SVGCompElement(u.data,this.globalData,this);else{var b=emptyShapeData;u.data&&u.data.shapes&&(b=this.buildShapeData(u.data,r.finalSize)),v=new SVGShapeElement(b,this.globalData,this)}if(this.textSpans[t].glyph){var x=this.textSpans[t].glyph;this.textSpans[t].childSpan.removeChild(x.layerElement),x.destroy()}this.textSpans[t].glyph=v,v._debug=!0,v.prepareFrame(0),v.renderFrame(),this.textSpans[t].childSpan.appendChild(v.layerElement),1===u.t&&this.textSpans[t].childSpan.setAttribute(\"transform\",\"scale(\"+r.finalSize/100+\",\"+r.finalSize/100+\")\")}else p&&n.setAttribute(\"transform\",\"translate(\"+l.props[12]+\",\"+l.props[13]+\")\"),n.textContent=o[t].val,n.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\")}p&&n&&n.setAttribute(\"d\",\"\")}else{var P=this.textContainer,E=\"start\";switch(r.j){case 1:E=\"end\";break;case 2:E=\"middle\";break;default:E=\"start\"}P.setAttribute(\"text-anchor\",E),P.setAttribute(\"letter-spacing\",d);var S=this.buildTextContents(r.finalText);for(e=S.length,c=r.ps?r.ps[1]+r.ascent:0,t=0;t=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(t-this.layers[e].st);if(this.globalData._mdf)for(e=0;e=0;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var t,e=this.layers.length;for(t=0;t=0;i-=1)r=t.transforms[i].transform.mProps.v.props,t.finalTransform.transform(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15]);t._mdf=s},processSequences:function(t){var e,r=this.sequenceList.length;for(e=0;e=1){this.buffers=[];var t=this.globalData.canvasContext,e=assetLoader.createCanvas(t.canvas.width,t.canvas.height);this.buffers.push(e);var r=assetLoader.createCanvas(t.canvas.width,t.canvas.height);this.buffers.push(r),this.data.tt>=3&&!document._isProxy&&assetLoader.loadLumaCanvas()}this.canvasContext=this.globalData.canvasContext,this.transformCanvas=this.globalData.transformCanvas,this.renderableEffectsManager=new CVEffects(this)},createContent:function(){},setBlendMode:function(){var t=this.globalData;if(t.blendMode!==this.data.bm){t.blendMode=this.data.bm;var e=getBlendMode(this.data.bm);t.canvasContext.globalCompositeOperation=e}},createRenderableComponents:function(){this.maskManager=new CVMaskElement(this.data,this)},hideElement:function(){this.hidden||this.isInRange&&!this.isTransparent||(this.hidden=!0)},showElement:function(){this.isInRange&&!this.isTransparent&&(this.hidden=!1,this._isFirstFrame=!0,this.maskManager._isFirstFrame=!0)},clearCanvas:function(t){t.clearRect(this.transformCanvas.tx,this.transformCanvas.ty,this.transformCanvas.w*this.transformCanvas.sx,this.transformCanvas.h*this.transformCanvas.sy)},prepareLayer:function(){if(this.data.tt>=1){var t=this.buffers[0].getContext(\"2d\");this.clearCanvas(t),t.drawImage(this.canvasContext.canvas,0,0),this.currentTransform=this.canvasContext.getTransform(),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform)}},exitLayer:function(){if(this.data.tt>=1){var t=this.buffers[1],e=t.getContext(\"2d\");if(this.clearCanvas(e),e.drawImage(this.canvasContext.canvas,0,0),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform),this.comp.getElementById(\"tp\"in this.data?this.data.tp:this.data.ind-1).renderFrame(!0),this.canvasContext.setTransform(1,0,0,1,0,0),this.data.tt>=3&&!document._isProxy){var r=assetLoader.getLumaCanvas(this.canvasContext.canvas);r.getContext(\"2d\").drawImage(this.canvasContext.canvas,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.drawImage(r,0,0)}this.canvasContext.globalCompositeOperation=operationsMap[this.data.tt],this.canvasContext.drawImage(t,0,0),this.canvasContext.globalCompositeOperation=\"destination-over\",this.canvasContext.drawImage(this.buffers[0],0,0),this.canvasContext.setTransform(this.currentTransform),this.canvasContext.globalCompositeOperation=\"source-over\"}},renderFrame:function(t){if(!this.hidden&&!this.data.hd&&(1!==this.data.td||t)){this.renderTransform(),this.renderRenderable(),this.setBlendMode();var e=0===this.data.ty;this.prepareLayer(),this.globalData.renderer.save(e),this.globalData.renderer.ctxTransform(this.finalTransform.mat.props),this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v),this.renderInnerContent(),this.globalData.renderer.restore(e),this.exitLayer(),this.maskManager.hasMasks&&this.globalData.renderer.restore(!0),this._isFirstFrame&&(this._isFirstFrame=!1)}},destroy:function(){this.canvasContext=null,this.data=null,this.globalData=null,this.maskManager.destroy()},mHelper:new Matrix},CVBaseElement.prototype.hide=CVBaseElement.prototype.hideElement,CVBaseElement.prototype.show=CVBaseElement.prototype.showElement,CVShapeData.prototype.setAsAnimated=SVGShapeData.prototype.setAsAnimated,extendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement],CVShapeElement),CVShapeElement.prototype.initElement=RenderableDOMElement.prototype.initElement,CVShapeElement.prototype.transformHelper={opacity:1,_opMdf:!1},CVShapeElement.prototype.dashResetter=[],CVShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[])},CVShapeElement.prototype.createStyleElement=function(t,e){var r={data:t,type:t.ty,preTransforms:this.transformsManager.addTransformSequence(e),transforms:[],elements:[],closed:!0===t.hd},i={};if(\"fl\"===t.ty||\"st\"===t.ty?(i.c=PropertyFactory.getProp(this,t.c,1,255,this),i.c.k||(r.co=\"rgb(\"+bmFloor(i.c.v[0])+\",\"+bmFloor(i.c.v[1])+\",\"+bmFloor(i.c.v[2])+\")\")):\"gf\"!==t.ty&&\"gs\"!==t.ty||(i.s=PropertyFactory.getProp(this,t.s,1,null,this),i.e=PropertyFactory.getProp(this,t.e,1,null,this),i.h=PropertyFactory.getProp(this,t.h||{k:0},0,.01,this),i.a=PropertyFactory.getProp(this,t.a||{k:0},0,degToRads,this),i.g=new GradientProperty(this,t.g,this)),i.o=PropertyFactory.getProp(this,t.o,0,.01,this),\"st\"===t.ty||\"gs\"===t.ty){if(r.lc=lineCapEnum[t.lc||2],r.lj=lineJoinEnum[t.lj||2],1==t.lj&&(r.ml=t.ml),i.w=PropertyFactory.getProp(this,t.w,0,null,this),i.w.k||(r.wi=i.w.v),t.d){var a=new DashProperty(this,t.d,\"canvas\",this);i.d=a,i.d.k||(r.da=i.d.dashArray,r.do=i.d.dashoffset[0])}}else r.r=2===t.r?\"evenodd\":\"nonzero\";return this.stylesList.push(r),i.style=r,i},CVShapeElement.prototype.createGroupElement=function(){return{it:[],prevViewData:[]}},CVShapeElement.prototype.createTransformElement=function(t){return{transform:{opacity:1,_opMdf:!1,key:this.transformsManager.getNewKey(),op:PropertyFactory.getProp(this,t.o,0,.01,this),mProps:TransformPropertyFactory.getTransformProperty(this,t,this)}}},CVShapeElement.prototype.createShapeElement=function(t){var e=new CVShapeData(this,t,this.stylesList,this.transformsManager);return this.shapes.push(e),this.addShapeToModifiers(e),e},CVShapeElement.prototype.reloadShapes=function(){var t;this._isFirstFrame=!0;var e=this.itemsData.length;for(t=0;t=0;s-=1){if((h=this.searchProcessedElement(t[s]))?e[s]=r[h-1]:t[s]._shouldRender=i,\"fl\"===t[s].ty||\"st\"===t[s].ty||\"gf\"===t[s].ty||\"gs\"===t[s].ty)h?e[s].style.closed=!1:e[s]=this.createStyleElement(t[s],d),c.push(e[s].style);else if(\"gr\"===t[s].ty){if(h)for(o=e[s].it.length,n=0;n=0;a-=1)\"tr\"===e[a].ty?(s=r[a].transform,this.renderShapeTransform(t,s)):\"sh\"===e[a].ty||\"el\"===e[a].ty||\"rc\"===e[a].ty||\"sr\"===e[a].ty?this.renderPath(e[a],r[a]):\"fl\"===e[a].ty?this.renderFill(e[a],r[a],s):\"st\"===e[a].ty?this.renderStroke(e[a],r[a],s):\"gf\"===e[a].ty||\"gs\"===e[a].ty?this.renderGradientFill(e[a],r[a],s):\"gr\"===e[a].ty?this.renderShape(s,e[a].it,r[a].it):e[a].ty;i&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(t,e){if(this._isFirstFrame||e._mdf||t.transforms._mdf){var r,i,a,s=t.trNodes,n=e.paths,o=n._length;s.length=0;var h=t.transforms.finalTransform;for(a=0;a=1?f=.99:f<=-1&&(f=-.99);var c=l*f,m=Math.cos(p+e.a.v)*c+o[0],d=Math.sin(p+e.a.v)*c+o[1];i=n.createRadialGradient(m,d,0,o[0],o[1],l)}var u=t.g.p,y=e.g.c,g=1;for(s=0;so&&\"xMidYMid slice\"===h||na&&\"meet\"===o||sa&&\"slice\"===o)?(r-this.transformCanvas.w*(i/this.transformCanvas.h))/2*this.renderConfig.dpr:\"xMax\"===l&&(sa&&\"slice\"===o)?(r-this.transformCanvas.w*(i/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty=\"YMid\"===p&&(s>a&&\"meet\"===o||sa&&\"meet\"===o||s=0;t-=1)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(t,e){if((this.renderedFrame!==t||!0!==this.renderConfig.clearCanvas||e)&&!this.destroyed&&-1!==t){var r;this.renderedFrame=t,this.globalData.frameNum=t-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=t;var i=this.layers.length;for(this.completeLayers||this.checkLayers(t),r=0;r=0;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!==this.layers[t].ty){var r=this.createItem(this.layers[t],this,this.globalData);e[t]=r,r.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display=\"none\"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display=\"block\"},extendPrototype([CanvasRendererBase,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var t,e=this.canvasContext;for(e.beginPath(),e.moveTo(0,0),e.lineTo(this.data.w,0),e.lineTo(this.data.w,this.data.h),e.lineTo(0,this.data.h),e.lineTo(0,0),e.clip(),t=this.layers.length-1;t>=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},CVCompElement.prototype.destroy=function(){var t;for(t=this.layers.length-1;t>=0;t-=1)this.elements[t]&&this.elements[t].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||\"div\"),this.data.hasMask?(this.svgElement=createNS(\"svg\"),this.layerElement=createNS(\"g\"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects(this),this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute(\"id\",this.data.ln),this.data.cl&&this.layerElement.setAttribute(\"class\",this.data.cl),0!==this.data.bm&&this.setBlendMode()},renderElement:function(){var t=this.transformedElement?this.transformedElement.style:{};if(this.finalTransform._matMdf){var e=this.finalTransform.mat.toCSS();t.transform=e,t.webkitTransform=e}this.finalTransform._opMdf&&(t.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=BaseRenderer.prototype.buildElementParenting,extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var t;this.data.hasMask?((t=createNS(\"rect\")).setAttribute(\"width\",this.data.sw),t.setAttribute(\"height\",this.data.sh),t.setAttribute(\"fill\",this.data.sc),this.svgElement.setAttribute(\"width\",this.data.sw),this.svgElement.setAttribute(\"height\",this.data.sh)):((t=createTag(\"div\")).style.width=this.data.sw+\"px\",t.style.height=this.data.sh+\"px\",t.style.backgroundColor=this.data.sc),this.layerElement.appendChild(t)},extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var t;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),t=this.svgElement;else{t=createNS(\"svg\");var e=this.comp.data?this.comp.data:this.globalData.compSize;t.setAttribute(\"width\",e.w),t.setAttribute(\"height\",e.h),t.appendChild(this.shapesContainer),this.layerElement.appendChild(t)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=t},HShapeElement.prototype.getTransformedPoint=function(t,e){var r,i=t.length;for(r=0;r0&&o<1&&f[c].push(this.calculateF(o,t,e,r,i,c)):(h=s*s-4*n*a)>=0&&((l=(-s+bmSqrt(h))/(2*a))>0&&l<1&&f[c].push(this.calculateF(l,t,e,r,i,c)),(p=(-s-bmSqrt(h))/(2*a))>0&&p<1&&f[c].push(this.calculateF(p,t,e,r,i,c))));this.shapeBoundingBox.left=bmMin.apply(null,f[0]),this.shapeBoundingBox.top=bmMin.apply(null,f[1]),this.shapeBoundingBox.right=bmMax.apply(null,f[0]),this.shapeBoundingBox.bottom=bmMax.apply(null,f[1])},HShapeElement.prototype.calculateF=function(t,e,r,i,a,s){return bmPow(1-t,3)*e[s]+3*bmPow(1-t,2)*t*r[s]+3*(1-t)*bmPow(t,2)*i[s]+bmPow(t,3)*a[s]},HShapeElement.prototype.calculateBoundingBox=function(t,e){var r,i=t.length;for(r=0;rr&&(r=a)}r*=t.mult}else r=t.v*t.mult;e.x-=r,e.xMax+=r,e.y-=r,e.yMax+=r},HShapeElement.prototype.currentBoxContains=function(t){return this.currentBBox.x<=t.x&&this.currentBBox.y<=t.y&&this.currentBBox.width+this.currentBBox.x>=t.x+t.width&&this.currentBBox.height+this.currentBBox.y>=t.y+t.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var t=this.tempBoundingBox,e=999999;if(t.x=e,t.xMax=-e,t.y=e,t.yMax=-e,this.calculateBoundingBox(this.itemsData,t),t.width=t.xMax=0;t-=1){var i=this.hierarchy[t].finalTransform.mProp;this.mat.translate(-i.p.v[0],-i.p.v[1],i.p.v[2]),this.mat.rotateX(-i.or.v[0]).rotateY(-i.or.v[1]).rotateZ(i.or.v[2]),this.mat.rotateX(-i.rx.v).rotateY(-i.ry.v).rotateZ(i.rz.v),this.mat.scale(1/i.s.v[0],1/i.s.v[1],1/i.s.v[2]),this.mat.translate(i.a.v[0],i.a.v[1],i.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var a;a=this.p?[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var s=Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)),n=[a[0]/s,a[1]/s,a[2]/s],o=Math.sqrt(n[2]*n[2]+n[0]*n[0]),h=Math.atan2(n[1],o),l=Math.atan2(n[0],-n[2]);this.mat.rotateY(l).rotateX(-h)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var p=!this._prevMat.equals(this.mat);if((p||this.pe._mdf)&&this.comp.threeDElements){var f,c,m;for(e=this.comp.threeDElements.length,t=0;t=t)return this.threeDElements[e].perspectiveElem;e+=1}return null},HybridRendererBase.prototype.createThreeDContainer=function(t,e){var r,i,a=createTag(\"div\");styleDiv(a);var s=createTag(\"div\");if(styleDiv(s),\"3d\"===e){(r=a.style).width=this.globalData.compSize.w+\"px\",r.height=this.globalData.compSize.h+\"px\";r.webkitTransformOrigin=\"50% 50%\",r.mozTransformOrigin=\"50% 50%\",r.transformOrigin=\"50% 50%\";var n=\"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";(i=s.style).transform=n,i.webkitTransform=n}a.appendChild(s);var o={container:s,perspectiveElem:a,startPos:t,endPos:t,type:e};return this.threeDElements.push(o),o},HybridRendererBase.prototype.build3dContainers=function(){var t,e,r=this.layers.length,i=\"\";for(t=0;t=0;t-=1)this.resizerElem.appendChild(this.threeDElements[t].perspectiveElem)},HybridRendererBase.prototype.addTo3dContainer=function(t,e){for(var r=0,i=this.threeDElements.length;rn?(t=a/this.globalData.compSize.w,e=a/this.globalData.compSize.w,r=0,i=(s-this.globalData.compSize.h*(a/this.globalData.compSize.w))/2):(t=s/this.globalData.compSize.h,e=s/this.globalData.compSize.h,r=(a-this.globalData.compSize.w*(s/this.globalData.compSize.h))/2,i=0);var o=this.resizerElem.style;o.webkitTransform=\"matrix3d(\"+t+\",0,0,0,0,\"+e+\",0,0,0,0,1,0,\"+r+\",\"+i+\",0,1)\",o.transform=o.webkitTransform},HybridRendererBase.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRendererBase.prototype.hide=function(){this.resizerElem.style.display=\"none\"},HybridRendererBase.prototype.show=function(){this.resizerElem.style.display=\"block\"},HybridRendererBase.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var t,e=this.globalData.compSize.w,r=this.globalData.compSize.h,i=this.threeDElements.length;for(t=0;t=s;)t/=2,e/=2,r>>>=1;return(t+r)/e};return y.int32=function(){return 0|u.g(4)},y.quick=function(){return u.g(4)/4294967296},y.double=y,h(l(u.S),t),(f.pass||c||function(t,r,i,a){return a&&(a.S&&o(a,u),t.state=function(){return o(u,{})}),i?(e.random=t,r):t})(y,d,\"global\"in f?f.global:this==e,f.state)},h(e.random(),t)}function initialize$2(t){seedRandom([],t)}var propTypes={SHAPE:\"shape\"};function _typeof(t){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null;function $bm_isInstanceOfArray(t){return t.constructor===Array||t.constructor===Float32Array}function isNumerable(t,e){return\"number\"===t||\"boolean\"===t||\"string\"===t||e instanceof Number}function $bm_neg(t){var e=_typeof(t);if(\"number\"===e||\"boolean\"===e||t instanceof Number)return-t;if($bm_isInstanceOfArray(t)){var r,i=t.length,a=[];for(r=0;rr){var i=r;r=e,e=i}return Math.min(Math.max(t,e),r)}function radiansToDegrees(t){return t/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(t){return t*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(t,e){if(\"number\"==typeof t||t instanceof Number)return e=e||0,Math.abs(t-e);var r;e||(e=helperLengthArray);var i=Math.min(t.length,e.length),a=0;for(r=0;r.5?l/(2-n-o):l/(n+o),n){case i:e=(a-s)/l+(a1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function hslToRgb(t){var e,r,i,a=t[0],s=t[1],n=t[2];if(0===s)e=n,i=n,r=n;else{var o=n<.5?n*(1+s):n+s-n*s,h=2*n-o;e=hue2rgb(h,o,a+1/3),r=hue2rgb(h,o,a),i=hue2rgb(h,o,a-1/3)}return[e,r,i,t[3]]}function linear(t,e,r,i,a){if(void 0!==i&&void 0!==a||(i=e,a=r,e=0,r=1),r=r)return a;var n,o=r===e?0:(t-e)/(r-e);if(!i.length)return i+(a-i)*o;var h=i.length,l=createTypedArray(\"float32\",h);for(n=0;n1){for(i=0;i1?e=1:e<0&&(e=0);var n=t(e);if($bm_isInstanceOfArray(a)){var o,h=a.length,l=createTypedArray(\"float32\",h);for(o=0;odata.k[e].t&&tdata.k[e+1].t-t?(r=e+2,i=data.k[e+1].t):(r=e+1,i=data.k[e].t);break}}-1===r&&(r=e+1,i=data.k[e].t)}else r=0,i=0;var s={};return s.index=r,s.time=i/elem.comp.globalData.frameRate,s}function key(t){var e,r,i;if(!data.k.length||\"number\"==typeof data.k[0])throw new Error(\"The property has no keyframe at index \"+t);t-=1,e={time:data.k[t].t/elem.comp.globalData.frameRate,value:[]};var a=Object.prototype.hasOwnProperty.call(data.k[t],\"s\")?data.k[t].s:data.k[t-1].e;for(i=a.length,r=0;rl.length-1)&&(e=l.length-1),i=p-(a=l[l.length-1-e].t)),\"pingpong\"===t){if(Math.floor((h-a)/i)%2!=0)return this.getValueAtTime((i-(h-a)%i+a)/this.comp.globalData.frameRate,0)}else{if(\"offset\"===t){var f=this.getValueAtTime(a/this.comp.globalData.frameRate,0),c=this.getValueAtTime(p/this.comp.globalData.frameRate,0),m=this.getValueAtTime(((h-a)%i+a)/this.comp.globalData.frameRate,0),d=Math.floor((h-a)/i);if(this.pv.length){for(n=(o=new Array(f.length)).length,s=0;s=p)return this.pv;if(r?a=p+(i=e?Math.abs(this.elem.comp.globalData.frameRate*e):Math.max(0,this.elem.data.op-p)):((!e||e>l.length-1)&&(e=l.length-1),i=(a=l[e].t)-p),\"pingpong\"===t){if(Math.floor((p-h)/i)%2==0)return this.getValueAtTime(((p-h)%i+p)/this.comp.globalData.frameRate,0)}else{if(\"offset\"===t){var f=this.getValueAtTime(p/this.comp.globalData.frameRate,0),c=this.getValueAtTime(a/this.comp.globalData.frameRate,0),m=this.getValueAtTime((i-(p-h)%i+p)/this.comp.globalData.frameRate,0),d=Math.floor((p-h)/i)+1;if(this.pv.length){for(n=(o=new Array(f.length)).length,s=0;s1?(a+t-s)/(e-1):1,o=0,h=0;for(r=this.pv.length?createTypedArray(\"float32\",this.pv.length):0;on){var p=o,f=r.c&&o===h-1?0:o+1,c=(n-l)/s[o].addedLength;i=bez.getPointInSegment(r.v[p],r.v[f],r.o[p],r.i[f],c,s[o]);break}l+=s[o].addedLength,o+=1}return i||(i=r.c?[r.v[0][0],r.v[0][1]]:[r.v[r._length-1][0],r.v[r._length-1][1]]),i},vectorOnPath:function(t,e,r){1==t?t=this.v.c:0==t&&(t=.999);var i=this.pointOnPath(t,e),a=this.pointOnPath(t+.001,e),s=a[0]-i[0],n=a[1]-i[1],o=Math.sqrt(Math.pow(s,2)+Math.pow(n,2));return 0===o?[0,0]:\"tangent\"===r?[s/o,n/o]:[-n/o,s/o]},tangentOnPath:function(t,e){return this.vectorOnPath(t,e,\"tangent\")},normalOnPath:function(t,e){return this.vectorOnPath(t,e,\"normal\")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([l],o),extendPrototype([l],h),h.prototype.getValueAtTime=function(t){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime=l?m<0?i:a:i+c*Math.pow((s-t)/m,1/r),p[f]=n,f+=1,o+=256/255;return p.join(\" \")},SVGProLevelsFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e,r=this.filterManager.effectElements;this.feFuncRComposed&&(t||r[3].p._mdf||r[4].p._mdf||r[5].p._mdf||r[6].p._mdf||r[7].p._mdf)&&(e=this.getTableValue(r[3].p.v,r[4].p.v,r[5].p.v,r[6].p.v,r[7].p.v),this.feFuncRComposed.setAttribute(\"tableValues\",e),this.feFuncGComposed.setAttribute(\"tableValues\",e),this.feFuncBComposed.setAttribute(\"tableValues\",e)),this.feFuncR&&(t||r[10].p._mdf||r[11].p._mdf||r[12].p._mdf||r[13].p._mdf||r[14].p._mdf)&&(e=this.getTableValue(r[10].p.v,r[11].p.v,r[12].p.v,r[13].p.v,r[14].p.v),this.feFuncR.setAttribute(\"tableValues\",e)),this.feFuncG&&(t||r[17].p._mdf||r[18].p._mdf||r[19].p._mdf||r[20].p._mdf||r[21].p._mdf)&&(e=this.getTableValue(r[17].p.v,r[18].p.v,r[19].p.v,r[20].p.v,r[21].p.v),this.feFuncG.setAttribute(\"tableValues\",e)),this.feFuncB&&(t||r[24].p._mdf||r[25].p._mdf||r[26].p._mdf||r[27].p._mdf||r[28].p._mdf)&&(e=this.getTableValue(r[24].p.v,r[25].p.v,r[26].p.v,r[27].p.v,r[28].p.v),this.feFuncB.setAttribute(\"tableValues\",e)),this.feFuncA&&(t||r[31].p._mdf||r[32].p._mdf||r[33].p._mdf||r[34].p._mdf||r[35].p._mdf)&&(e=this.getTableValue(r[31].p.v,r[32].p.v,r[33].p.v,r[34].p.v,r[35].p.v),this.feFuncA.setAttribute(\"tableValues\",e))}},extendPrototype([SVGComposableEffect],SVGDropShadowEffect),SVGDropShadowEffect.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){if((t||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute(\"stdDeviation\",this.filterManager.effectElements[4].p.v/4),t||this.filterManager.effectElements[0].p._mdf){var e=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute(\"flood-color\",rgbToHex(Math.round(255*e[0]),Math.round(255*e[1]),Math.round(255*e[2])))}if((t||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute(\"flood-opacity\",this.filterManager.effectElements[1].p.v/255),t||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var r=this.filterManager.effectElements[3].p.v,i=(this.filterManager.effectElements[2].p.v-90)*degToRads,a=r*Math.cos(i),s=r*Math.sin(i);this.feOffset.setAttribute(\"dx\",a),this.feOffset.setAttribute(\"dy\",s)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(t,e,r){this.initialized=!1,this.filterManager=e,this.filterElem=t,this.elem=r,r.matteElement=createNS(\"g\"),r.matteElement.appendChild(r.layerElement),r.matteElement.appendChild(r.transformedElement),r.baseElement=r.matteElement}function SVGGaussianBlurEffect(t,e,r,i){t.setAttribute(\"x\",\"-100%\"),t.setAttribute(\"y\",\"-100%\"),t.setAttribute(\"width\",\"300%\"),t.setAttribute(\"height\",\"300%\"),this.filterManager=e;var a=createNS(\"feGaussianBlur\");a.setAttribute(\"result\",i),t.appendChild(a),this.feGaussianBlur=a}return SVGMatte3Effect.prototype.findSymbol=function(t){for(var e=0,r=_svgMatteSymbols.length;e div {\\n margin-right: 5px;\\n margin-left: 5px;\\n}\\n.lf-player-controls > div:first-child {\\n margin-left: 0px;\\n}\\n.lf-player-controls > div:last-child {\\n margin-right: 0px;\\n}\\n\",stylesheet=\".lf-progress {\\n -webkit-appearance: none;\\n -moz-apperance: none;\\n width: 100%;\\n /* margin: 0 10px; */\\n height: 4px;\\n border-radius: 3px;\\n cursor: pointer;\\n}\\n.lf-progress:focus {\\n outline: none;\\n border: none;\\n}\\n.lf-progress::-moz-range-track {\\n cursor: pointer;\\n background: none;\\n border: none;\\n outline: none;\\n}\\n.lf-progress::-webkit-slider-thumb {\\n -webkit-appearance: none !important;\\n height: 13px;\\n width: 13px;\\n border: 0;\\n border-radius: 50%;\\n background: #0fccce;\\n cursor: pointer;\\n}\\n.lf-progress::-moz-range-thumb {\\n -moz-appearance: none !important;\\n height: 13px;\\n width: 13px;\\n border: 0;\\n border-radius: 50%;\\n background: #0fccce;\\n cursor: pointer;\\n}\\n.lf-progress::-ms-track {\\n width: 100%;\\n height: 3px;\\n cursor: pointer;\\n background: transparent;\\n border-color: transparent;\\n color: transparent;\\n}\\n.lf-progress::-ms-fill-lower {\\n background: #ccc;\\n border-radius: 3px;\\n}\\n.lf-progress::-ms-fill-upper {\\n background: #ccc;\\n border-radius: 3px;\\n}\\n.lf-progress::-ms-thumb {\\n border: 0;\\n height: 15px;\\n width: 15px;\\n border-radius: 50%;\\n background: #0fccce;\\n cursor: pointer;\\n}\\n.lf-progress:focus::-ms-fill-lower {\\n background: #ccc;\\n}\\n.lf-progress:focus::-ms-fill-upper {\\n background: #ccc;\\n}\\n.lf-player-container :focus {\\n outline: 0;\\n}\\n.lf-popover {\\n position: relative;\\n}\\n\\n.lf-popover-content {\\n display: inline-block;\\n position: absolute;\\n opacity: 1;\\n visibility: visible;\\n transform: translate(0, -10px);\\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\\n transition: all 0.3s cubic-bezier(0.75, -0.02, 0.2, 0.97);\\n}\\n\\n.lf-popover-content.hidden {\\n opacity: 0;\\n visibility: hidden;\\n transform: translate(0, 0px);\\n}\\n\\n.lf-player-btn-container {\\n display: flex;\\n align-items: center;\\n}\\n.lf-player-btn {\\n cursor: pointer;\\n fill: #999;\\n width: 14px;\\n}\\n\\n.lf-player-btn.active {\\n fill: #555;\\n}\\n\\n.lf-popover {\\n position: relative;\\n}\\n\\n.lf-popover-content {\\n display: inline-block;\\n position: absolute;\\n background-color: #ffffff;\\n opacity: 1;\\n\\n transform: translate(0, -10px);\\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\\n transition: all 0.3s cubic-bezier(0.75, -0.02, 0.2, 0.97);\\n padding: 10px;\\n}\\n\\n.lf-popover-content.hidden {\\n opacity: 0;\\n visibility: hidden;\\n transform: translate(0, 0px);\\n}\\n\\n.lf-arrow {\\n position: absolute;\\n z-index: -1;\\n content: '';\\n bottom: -9px;\\n border-style: solid;\\n border-width: 10px 10px 0px 10px;\\n}\\n\\n.lf-left-align,\\n.lf-left-align .lfarrow {\\n left: 0;\\n right: unset;\\n}\\n\\n.lf-right-align,\\n.lf-right-align .lf-arrow {\\n right: 0;\\n left: unset;\\n}\\n\\n.lf-text-input {\\n border: 1px #ccc solid;\\n border-radius: 5px;\\n padding: 3px;\\n width: 60px;\\n margin: 0;\\n}\\n\\n.lf-color-picker {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n height: 90px;\\n}\\n\\n.lf-color-selectors {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n}\\n\\n.lf-color-component {\\n display: flex;\\n flex-direction: row;\\n font-size: 12px;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.lf-color-component strong {\\n width: 40px;\\n}\\n\\n.lf-color-component input[type='range'] {\\n margin: 0 0 0 10px;\\n}\\n\\n.lf-color-component input[type='number'] {\\n width: 50px;\\n margin: 0 0 0 10px;\\n}\\n\\n.lf-color-preview {\\n font-size: 12px;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: space-between;\\n padding-left: 5px;\\n}\\n\\n.lf-preview {\\n height: 60px;\\n width: 60px;\\n}\\n\\n.lf-popover-snapshot {\\n width: 150px;\\n}\\n.lf-popover-snapshot h5 {\\n margin: 5px 0 10px 0;\\n font-size: 0.75rem;\\n}\\n.lf-popover-snapshot a {\\n display: block;\\n text-decoration: none;\\n}\\n.lf-popover-snapshot a:before {\\n content: '⥼';\\n margin-right: 5px;\\n}\\n.lf-popover-snapshot .lf-note {\\n display: block;\\n margin-top: 10px;\\n color: #999;\\n}\\n.lf-player-controls > div {\\n margin-right: 5px;\\n margin-left: 5px;\\n}\\n.lf-player-controls > div:first-child {\\n margin-left: 0px;\\n}\\n.lf-player-controls > div:last-child {\\n margin-right: 0px;\\n}\\n\";styleInject(css_248z);var ColorPicker=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={red:0,green:0,blue:0,rgba:null,hex:\"#000000\",colorComponents:[]},e.handleChange=function(t,r){if(\"r\"===t){var i=\"#\"+(256|r).toString(16).slice(1)+(256|e.state.green).toString(16).slice(1)+(256|e.state.blue).toString(16).slice(1);e.setState({hex:i})}else if(\"g\"===t){i=\"#\"+(256|e.state.red).toString(16).slice(1)+(256|r).toString(16).slice(1)+(256|e.state.blue).toString(16).slice(1);e.setState({hex:i})}else if(\"b\"===t){i=\"#\"+(256|e.state.red).toString(16).slice(1)+(256|e.state.green).toString(16).slice(1)+(256|r).toString(16).slice(1);e.setState({hex:i})}},e.parseColor=function(t){var r;if(\"string\"==typeof t){if(\"#\"===t[0]){var i=4===t.length?[t.slice(1,2),t.slice(2,3),t.slice(3,4)].map((function(t){return parseInt(\"\"+t+t,16)})):[t.slice(1,3),t.slice(3,5),t.slice(5,7)].map((function(t){return parseInt(t,16)}));e.setState({colorComponents:i})}else if(t.startsWith(\"rgb\")){void 0!==(i=null===(r=t.match(/\\d+/g))||void 0===r?void 0:r.map((function(t){return parseInt(t)})))&&e.setState({colorComponents:i})}e.state.colorComponents.length&&(e.setState({red:e.state.colorComponents[0]}),e.setState({green:e.state.colorComponents[1]}),e.setState({blue:e.state.colorComponents[2]}))}},e}return __extends(e,t),e.prototype.componentDidUpdate=function(t,e){return this.props.colorChangedEvent&&this.state.hex!==e.hex&&this.props.colorChangedEvent(this.state.hex),!0},e.prototype.render=function(){var t=this;return React.createElement(\"div\",{className:\"lf-color-picker\"},React.createElement(\"div\",{className:\"lf-color-selectors\"},React.createElement(\"div\",{className:\"lf-color-component\"},React.createElement(\"strong\",null,\"Red\"),React.createElement(\"input\",{type:\"range\",min:\"0\",max:\"255\",value:this.state.red,onChange:function(e){t.setState({red:e.target.value}),t.handleChange(\"r\",e.target.value)}}),React.createElement(\"input\",{className:\"lf-text-input\",type:\"number\",min:\"0\",max:\"255\",value:this.state.red,onChange:function(e){t.setState({red:e.target.value}),t.handleChange(\"r\",e.target.value)}})),React.createElement(\"div\",{className:\"lf-color-component\"},React.createElement(\"strong\",null,\"Green\"),React.createElement(\"input\",{type:\"range\",min:\"0\",max:\"255\",value:this.state.green,onChange:function(e){t.setState({green:e.target.value}),t.handleChange(\"g\",e.target.value)}}),React.createElement(\"input\",{className:\"lf-text-input\",type:\"number\",min:\"0\",max:\"255\",value:this.state.green,onChange:function(e){t.setState({green:e.target.value}),t.handleChange(\"g\",e.target.value)}})),React.createElement(\"div\",{className:\"lf-color-component\"},React.createElement(\"strong\",null,\"Blue\"),React.createElement(\"input\",{type:\"range\",min:\"0\",max:\"255\",value:this.state.blue,onChange:function(e){t.setState({blue:e.target.value}),t.handleChange(\"b\",e.target.value)}}),React.createElement(\"input\",{className:\"lf-text-input\",type:\"number\",min:\"0\",max:\"255\",value:this.state.blue,onChange:function(e){t.setState({blue:e.target.value}),t.handleChange(\"b\",e.target.value)}}))),React.createElement(\"div\",{className:\"lf-color-preview\"},React.createElement(\"div\",{className:\"lf-preview\",style:{background:\"rgb(\"+this.state.red+\", \"+this.state.green+\", \"+this.state.blue+\")\"}}),React.createElement(\"div\",null,React.createElement(\"input\",{className:\"lf-text-input\",type:\"text\",value:this.state.hex,onChange:function(e){t.setState({hex:e.target.value}),t.parseColor(e.target.value)}}))))},e}(React.Component),Popover=function(t){var e=t.children,r=t.icon,i=useState(null),a=i[0],s=i[1],n=useState(null),o=n[0],h=n[1],l=useState(null),p=l[0],f=l[1],c=useState(!1),m=c[0],d=c[1];useEffect((function(){if(a&&o){var t=a.getBoundingClientRect(),e=o.getBoundingClientRect(),r=t.left+e.width>window.innerWidth?-1:0;f(r)}}),[p,o,a]);return React.createElement(\"div\",{className:\"lf-popover\",onMouseOver:function(){d(!0)},onMouseLeave:function(){d(!1)},ref:function(t){s(t)}},React.createElement(\"div\",{className:\" lf-player-btn\"},r),React.createElement(\"div\",{className:\"lf-popover-content\",ref:function(t){h(t)},style:{bottom:\"22px\",right:\"0px\",zIndex:2,visibility:m?\"visible\":\"hidden\"}},e))},Seeker=function(t){function e(e){var r=t.call(this,e)||this;return r.inputRef=React.createRef(),r.handleChange=function(){return function(t){var e=t.target.value,i=Math.floor(e/100*r.props.max);r.props.onChange(i)}},r.state={value:0},r}return __extends(e,t),e.prototype.render=function(){var t=this.props.value/this.props.max*100,e={backgroundImage:\"-webkit-gradient(linear, left top, right top, color-stop(\"+t+\"%, rgba(15, 204, 206, 0.4)), color-stop(\"+t+\"%, #DAE1E7))\"},r={position:\"absolute\",left:0,marginTop:\"8px\",width:\"20px\",display:\"block\",border:\"0px\",backgroundColor:this.props.darkTheme?\"#505050\":\"rgb(218, 225, 231)\",color:this.props.darkTheme?\"#B9B9B9\":\"#555\",padding:\"2px\",textAlign:\"center\",borderRadius:\"3px\",fontSize:\"8px\",fontWeight:\"bold\"},i={position:\"absolute\",right:0,marginTop:\"8px\",width:\"20px\",display:\"block\",border:\"0px\",backgroundColor:this.props.darkTheme?\"#505050\":\"rgb(218, 225, 231)\",color:this.props.darkTheme?\"#B9B9B9\":\"#555\",padding:\"2px\",textAlign:\"center\",borderRadius:\"3px\",fontSize:\"8px\",fontWeight:\"bold\"};return React.createElement(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",width:\"100%\",marginRight:\"5px\",marginLeft:\"5px\",position:\"relative\"}},React.createElement(\"input\",{ref:this.inputRef,id:\"track\",className:\"lf-progress\",name:\"progress\",\"aria-label\":\"progress\",type:\"range\",min:\"0\",max:\"100\",step:\"0.1\",value:t,onInput:this.handleChange(),onChange:this.handleChange(),style:e}),this.props.showLabels&&React.createElement(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\"}},React.createElement(\"div\",{style:r},this.props.min),React.createElement(\"div\",{style:i},this.props.max)))},e}(React.Component),ControlButtonStyle={display:\"inline-flex\",cursor:\"pointer\"},Controls=function(t){function e(e){var r=t.call(this,e)||this;return r.state={activeFrame:0,mouseDown:!1},r}return __extends(e,t),e.prototype.render=function(){var t=this,e=this.props,r=e.instance,i=e.playerState,a=e.seeker,s=e.setLoop,n=e.setSeeker,o=e.play,h=e.pause,l=e.stop,p=e.visible,f=e.buttons;if(!r)return null;if(!p)return null;var c=!f||f.includes(\"play\"),m=!f||f.includes(\"stop\"),d=!f||f.includes(\"repeat\"),u=!f||f.includes(\"frame\"),y=!f||f.includes(\"background\"),g=!f||f.includes(\"snapshot\"),v={width:14,height:14,viewBox:\"0 0 24 24\"},b=Math.round(r.currentFrame);return React.createElement(\"div\",{className:\"lf-player-controls\",style:{display:\"flex\",justifyContent:\"space-between\",height:\"60px\",alignItems:\"center\",backgroundColor:this.props.transparentTheme?\"transparent\":this.props.darkTheme?\"#3C3C3C\":\"#ffffff\",paddingLeft:\"10px\",paddingRight:\"10px\"}},c&&React.createElement(\"div\",{role:\"button\",\"aria-label\":i===PlayerState.Playing?PlayerEvent.Pause:PlayerEvent.Play,tabIndex:0,onClick:function(){i===PlayerState.Playing?\"function\"==typeof h&&h():\"function\"==typeof o&&o()},onKeyDown:function(){i===PlayerState.Playing?\"function\"==typeof h&&h():\"function\"==typeof o&&o()},className:\"lf-player-btn\",style:ControlButtonStyle},i===PlayerState.Playing?React.createElement(\"svg\",__assign({},v),React.createElement(\"rect\",{height:\"22.9\",rx:\"1.9\",width:\"7.6\",x:\"14\",y:\".5\"}),React.createElement(\"rect\",{height:\"22.9\",rx:\"1.9\",width:\"7.6\",x:\"2\",y:\".5\"})):React.createElement(\"svg\",__assign({},v),React.createElement(\"path\",{d:\"M2 3.4C2 1.9 3.5 1 4.8 1.8l16.5 9.6c1.2.7 1.2 2.5 0 3.2L4.8 24.2C3.5 25 2 24.1 2 22.6V3.4z\"}))),m&&React.createElement(\"div\",{tabIndex:0,role:\"button\",\"aria-label\":PlayerEvent.Stop,onClick:function(){return l&&l()},onKeyDown:function(){return l&&l()},className:i===PlayerState.Stopped?\"lf-player-btn active\":\"lf-player-btn\",style:ControlButtonStyle},React.createElement(\"svg\",__assign({},v),React.createElement(\"path\",{d:\"M2 3.667A1.67 1.67 0 0 1 3.667 2h16.666A1.67 1.67 0 0 1 22 3.667v16.666A1.67 1.67 0 0 1 20.333\\n 22H3.667A1.67 1.67 0 0 1 2 20.333z\"}))),React.createElement(Seeker,{min:0,step:1,max:r?r.totalFrames:1,value:a||0,onChange:function(e){n&&t.setState({activeFrame:e},(function(){n(e,!1)}))},onChangeEnd:function(e){n&&t.setState({activeFrame:e},(function(){n(e,!1)}))},showLabels:this.props.showLabels,darkTheme:this.props.darkTheme}),u&&React.createElement(\"div\",{role:\"button\",className:\"lf-player-btn-container\"},React.createElement(\"input\",{style:{outline:\"none\",border:this.props.darkTheme?\"1px #505050 solid\":\"1px #ccc solid\",borderRadius:\"3px\",width:\"40px\",textAlign:\"center\",backgroundColor:this.props.darkTheme?\"#505050\":\"#ffffff\",color:this.props.darkTheme?\"#B9B9B9\":\"#999\",fontSize:\"0.7rem\",padding:\"0\",fontFamily:\"inherit\"},type:\"text\",value:b,readOnly:!0})),d&&React.createElement(\"div\",{role:\"button\",\"aria-label\":PlayerEvent.Loop,tabIndex:0,onClick:function(){r&&s&&s(!r.loop)},onKeyDown:function(){r&&s&&s(!r.loop)},className:r.loop?\"lf-player-btn active\":\"lf-player-btn\",style:ControlButtonStyle},React.createElement(\"svg\",__assign({},v),React.createElement(\"path\",{d:\"M12.5 16.8137h-.13v1.8939h4.9696c3.6455 0 6.6113-2.9658 6.6113-6.6116\\n 0-3.64549-2.9658-6.61131-6.6113-6.61131-.5231 0-.947.42391-.947.94696 0 .52304.4239.94696.947.94696 2.6011 0\\n 4.7174 2.11634 4.7174 4.71739 0 2.6014-2.1166 4.7177-4.7174 4.7177H12.5zM13.6025\\n 5.61469v-.13H7.48137C3.83582 5.48469.87 8.45051.87 12.096c0 3.6509 3.17269 6.6117 6.81304 6.6117.52304 0\\n .94696-.424.94696-.947 0-.5231-.42392-.947-.94696-.947-2.60804 0-4.91907-2.1231-4.91907-4.7176 0-2.60115\\n 2.11634-4.71744 4.7174-4.71744h6.12113V5.61469z\",stroke:\"#8795A1\",strokeWidth:\".26\"}),React.createElement(\"path\",{d:\"M11.1482\\n 2.20355h0l-.001-.00116c-.3412-.40061-.9405-.44558-1.33668-.0996h-.00001c-.39526.34519-.43936.94795-.09898\\n 1.34767l2.51487 3.03683-2.51894 3.06468c-.33872.40088-.29282 1.00363.10347\\n 1.34723l.08517-.0982-.08517.0982c.17853.1549.39807.2308.61647.2308.2671 0 .5328-.114.72-.3347h0l.0011-.0014\\n 3.0435-3.68655.0006-.00068c.3035-.35872.3025-.88754-.0019-1.24526l-3.0425-3.65786zM13.9453\\n 21.7965h0l.001.0011c.3413.4006.9407.4456 1.337.0996h0c.3953-.3452.4395-.9479.099-1.3477l-2.5154-3.0368\\n 2.5195-3.0647c.3388-.4008.2929-1.0036-.1035-1.3472l-.0852.0982.0852-.0982c-.1786-.1549-.3981-.2308-.6166-.2308-.2671\\n 0-.5329.114-.7202.3347h0l-.0011.0014-3.0442\\n 3.6865c-.0001.0003-.0003.0005-.0005.0007-.3036.3587-.3027.8876.0019 1.2453l3.0431 3.6579z\",fill:\"#8795A1\",stroke:\"#8795A1\",strokeWidth:\".26\"}))),y&&React.createElement(Popover,{icon:React.createElement(\"svg\",__assign({},v),React.createElement(\"path\",{d:\"M12 3.1L6.1 8.6a7.6 7.6 0 00-2.2 4 7.2 7.2 0 00.4 4.4 7.9 7.9 0 003 3.5 8.7 8.7 0 004.7 1.3c1.6 0\\n 3.2-.5 4.6-1.3s2.4-2 3-3.5a7.2 7.2 0 00.5-4.5 7.6 7.6 0 00-2.2-4L12 3.2zM12 0l7.5 7a9.8 9.8 0 013 5.1\\n 9.3 9.3 0 01-.6 5.8c-.9 1.8-2.2 3.3-4 4.4A11.2 11.2 0 0112 24a11.2 11.2 0\\n 01-6-1.7c-1.7-1-3-2.6-3.9-4.4a9.3 9.3 0 01-.6-5.8c.4-2 1.5-3.7 3-5L12 0zM6 14h12c0 1.5-.7 3-1.8 4s-2.6\\n 1.6-4.2 1.6S9 19 7.8 18s-1.7-2.5-1.7-4z\"}))},React.createElement(\"div\",{slot:\"content\",className:\"lf-popover popover-background\"},React.createElement(ColorPicker,{colorChangedEvent:this.props.colorChangedEvent}))),g&&React.createElement(Popover,{icon:React.createElement(\"svg\",__assign({},v),React.createElement(\"path\",{clipRule:\"evenodd\",d:\"M0 3.01A2.983 2.983 0 012.983.027H16.99a2.983 2.983 0 012.983 2.983v14.008a2.982 2.982 0 01-2.983\\n 2.983H2.983A2.983 2.983 0 010 17.018zm2.983-.941a.941.941 0 00-.942.94v14.01c0\\n .52.422.94.942.94H16.99a.94.94 0 00.941-.94V3.008a.941.941 0 00-.94-.94H2.981z\",fillRule:\"evenodd\"}),React.createElement(\"path\",{d:\"M12.229 7.945l-2.07 4.598-2.586-2.605-2.414 2.758v2.146h9.656V11.93z\"}),React.createElement(\"circle\",{cx:\"7.444\",cy:\"6.513\",r:\"2.032\"}),React.createElement(\"path\",{d:\"M9.561 23.916h11.25a2.929 2.929 0 002.926-2.927V9.954a1.06 1.06 0 10-2.122 0v11.035a.805.805 0\\n 01-.803.804H9.562a1.061 1.061 0 100 2.123z\",stroke:\"#8795a1\",strokeWidth:\".215\"}))},React.createElement(\"div\",{slot:\"content\",className:\"lf-popover lf-popover-snapshot\",onWheel:function(t){n&&n(b+(t.deltaY>0?-1:1),!1)}},React.createElement(\"h5\",null,\"Frame \",b),React.createElement(\"div\",{style:{cursor:\"pointer\",color:\"#0FCCCE\"},onClick:this.props.snapshot},\"Download SVG\"),React.createElement(\"div\",{style:{cursor:\"pointer\",color:\"#0FCCCE\"},onClick:this.props.snapshot},\"Download PNG\"),React.createElement(\"i\",{className:\"lf-note\"},\"Scroll with mousewheel to find exact frame\"))))},e}(React.Component);export{Controls,Player,PlayerEvent,PlayerState,Seeker,parseSrc};\n//# sourceMappingURL=lottie-react.esm.js.map\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loadGoogleMapScript = exports.isBrowser = void 0;\nvar isBrowser = typeof window !== \"undefined\" && window.document;\nexports.isBrowser = isBrowser;\n\nvar loadGoogleMapScript = function loadGoogleMapScript(googleMapsScriptBaseUrl, googleMapsScriptUrl) {\n if (!isBrowser) return Promise.resolve();\n\n if (typeof google !== \"undefined\") {\n if (google.maps && google.maps.api) return Promise.resolve();\n }\n\n var scriptElements = document.querySelectorAll(\"script[src*=\\\"\".concat(googleMapsScriptBaseUrl, \"\\\"]\"));\n\n if (scriptElements && scriptElements.length) {\n return new Promise(function (resolve) {\n // in case we already have a script on the page and it's loaded we resolve\n if (typeof google !== \"undefined\") return resolve(); // otherwise we wait until it's loaded and resolve\n\n scriptElements[0].addEventListener(\"load\", function () {\n return resolve();\n });\n });\n }\n\n var scriptUrl = new URL(googleMapsScriptUrl);\n scriptUrl.searchParams.set(\"callback\", \"__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__\");\n var el = document.createElement(\"script\");\n el.src = scriptUrl.toString();\n return new Promise(function (resolve) {\n window.__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__ = resolve;\n document.body.appendChild(el);\n });\n};\n\nexports.loadGoogleMapScript = loadGoogleMapScript;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GOOGLE_MAP_SCRIPT_BASE_URL = void 0;\nvar GOOGLE_MAP_SCRIPT_BASE_URL = \"https://maps.googleapis.com/maps/api/js\";\nexports.GOOGLE_MAP_SCRIPT_BASE_URL = GOOGLE_MAP_SCRIPT_BASE_URL;","'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","'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","/* @flow */\n\nimport * as React from 'react';\nimport deepmerge from 'deepmerge';\nimport createThemeProvider from './createThemeProvider';\nimport createWithTheme from './createWithTheme';\nimport type { WithThemeType } from './createWithTheme';\nimport type { ThemeProviderType } from './createThemeProvider';\nimport type { $DeepShape } from './types';\n\nexport type ThemingType = {\n ThemeProvider: ThemeProviderType,\n withTheme: WithThemeType,\n useTheme(overrides?: $DeepShape): T,\n};\n\nexport default function createTheming(\n defaultTheme: T\n): ThemingType {\n const ThemeContext: React.Context = React.createContext(defaultTheme);\n\n const ThemeProvider: ThemeProviderType = createThemeProvider(\n defaultTheme,\n ThemeContext\n );\n\n const withTheme: WithThemeType = createWithTheme(\n ThemeProvider,\n ThemeContext\n );\n\n const useTheme = (overrides?: $DeepShape): T => {\n const theme = React.useContext(ThemeContext);\n const result = React.useMemo(\n () =>\n theme && overrides ? deepmerge(theme, overrides) : theme || overrides,\n [theme, overrides]\n );\n\n return result;\n };\n\n return {\n ThemeContext,\n ThemeProvider,\n withTheme,\n useTheme,\n };\n}\n","/* @flow */\n\nimport * as React from 'react';\n\nexport type ThemeProviderType = React.ComponentType<{\n children: React.Node,\n theme?: T,\n}>;\n\nfunction createThemeProvider(\n defaultTheme: T,\n ThemeContext: React.Context\n): ThemeProviderType {\n return class ThemeProvider extends React.Component<*> {\n static defaultProps = {\n theme: defaultTheme,\n };\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n };\n}\n\nexport default createThemeProvider;\n","/* @flow */\n\nimport * as React from 'react';\nimport deepmerge from 'deepmerge';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nimport type { ThemeProviderType } from './createThemeProvider';\nimport type { $DeepShape } from './types';\n\nexport type WithThemeType = >(\n Comp: C\n) => C &\n React.ComponentType<\n $Diff, { theme: T }> & { theme?: $DeepShape }\n >;\n\nconst createWithTheme = >(\n ThemeProvider: ThemeProviderType,\n ThemeContext: React.Context\n) =>\n function withTheme(Comp: *) {\n class ThemedComponent extends React.Component<*> {\n _previous: ?{ a: T, b: ?S, result: T };\n\n _merge = (a: T, b: ?S) => {\n const previous = this._previous;\n\n if (previous && previous.a === a && previous.b === b) {\n return previous.result;\n }\n\n const result = a && b && a !== b ? deepmerge(a, b) : a || b;\n\n this._previous = { a, b, result };\n\n return result;\n };\n\n render() {\n const { _reactThemeProviderForwardedRef, ...rest } = this.props;\n\n return (\n \n {theme => (\n \n )}\n \n );\n }\n }\n\n const ResultComponent = React.forwardRef((props, ref) => (\n \n ));\n\n ResultComponent.displayName = `withTheme(${Comp.displayName || Comp.name})`;\n\n hoistNonReactStatics(ResultComponent, Comp);\n\n return (ResultComponent: any);\n };\n\nexport default createWithTheme;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAAAlklEQVR4Ae3a1REDMRDG4A3VmHbcUFLigf0exn/mkxuQjmELAAAAAD5Eq5atP6+rZeuPhGz9kZCtPxKy9fs6Zuuf60CfPn369OnTp0+fPn369OnTfx36X1vh+nO6/pytL+D1BCexy+iNhFPt6/dIOEiQIEGCBAkSJEiQ8B0k+PwoQYKhP2OXAYOvRo+vD38bvwcAAACABXF8ILs1PQqpAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABVCAQAAAChx3/YAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfkAQMKHDc9iQjuAAACmUlEQVRo3r3ZS2sUQRAH8M5zklwWg0K8mKBB/AIqXhTEi1cTPQe9iH4AUXBNjh79EooKgggSHyCICIIQL7NV1T2bze6EFS/xoms0ie0hs+sa9zE901U79/3R8+iu+pdSnn/VfbCAz/Um2r+XV8AO0jH9pP3vvSN2COdhGX8xInbIzNMKbv1PeEPsiLmEn2i7E+EJsSN4Az+UtjoTXpBwlG7CGnQlPCA2oFtQxZ3uRG7EBnAvjHsTOREbwB2s9bpRuZHKGCzCer9V5ELi8ehuOiIzYkejBUTYTkNkREyAV5DgdzoiE2ICuoYaUxMZEBPQdYpdCGfkzbA+rUsugDNiAnOGwJVwQipj0XlCd8IBscN0wv1GOSEmCE9qyEakREyAZ4myEqkQE+hzupydSIHE4+aUjvIQfZH6hL6QbxV9kfqEnqP1vEQPxA6YA3hReyB6IOUC3vZDdEXKBVPUG36ILkhlihbxqy+iI1KZogf4xW0zd0TWDuJD+AYWLRuyOo2P0DOxB6nM4Fv87pv4B1mdxhfY8E+0IeaIfok/OIgWEs3q97DJQyTI5xn9FBpcBFqlVDgLz6CBlu9S8SS9JlYCraKlTv2qb+QdN4FWYV0AEVkJLQH/M4kn9Sv2t0vkOxH64pt7F9f22LYLVw8D9y4sdJ40T0bgPRmVUqp+iP2MF6pWkrrrPnPdJVRB7tbCVMQNZkSkqlfKDtD+kLs/Eem0xHpGoe631cdHzIhIIiGUrSQp0XHmlEgo7xJK7loZZMiMJGlqjTVNbebCRKy5cPJsLjMn3EJZvdDUQWh+krwCReZJUHOmVaqxzrSEpnNCc0ahiWlz9ksrrLNfoSn27sgf5mCZfrIiStnB8lF8rHdYEaWU+ljQV/dW0X8Ac6zWpmDZsO8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDEtMDNUMTA6Mjg6NTIrMDA6MDD7fVVWAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAxLTAzVDEwOjI4OjUyKzAwOjAwiiDt6gAAAABJRU5ErkJggg==\"","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\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\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst 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 (let 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(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\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst 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","const 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\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let 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\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst 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\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet 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\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst 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","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap} */ var $wm;\n\t/** @type {Map} */ var $m;\n\t/** @type {import('.').RootNode} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @typedef {(...args: unknown[]) => unknown} Func */\n\n/** @type {(fn: T, length: number, loose?: boolean) => T} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (obj === global) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addQuarters from \"../addQuarters/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * const result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nexport default function subQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n return time >= startTime && time <= endTime;\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import {createElement,Component}from'react';import {findDOMNode}from'react-dom';function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n // Also cover shadowRoot node by checking current.host\n\n\n while (current.parentNode || current.host) {\n // Only check normal node without shadowRoot\n if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode || current.host;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};function autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();var passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = {};\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions.passive = !instance.props.preventDefault;\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n }\n /**\n * Remove all document's event listeners for this component\n */\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n }\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n ;\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props;\n _this$props.excludeScrollbar;\n var props = _objectWithoutPropertiesLoose(_this$props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}export default onClickOutsideHOC;export{IGNORE_CLASS_NAME};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n if (_typeof(values) !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n var date = toDate(dirtyDate);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n return date;\n}","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_native_1 = require(\"react-native\");\nvar NotificationWillDisplayEvent_1 = __importDefault(require(\"./NotificationWillDisplayEvent\"));\nvar events_1 = require(\"./events\");\nvar eventList = [\n events_1.PERMISSION_CHANGED,\n events_1.SUBSCRIPTION_CHANGED,\n events_1.NOTIFICATION_WILL_DISPLAY,\n events_1.NOTIFICATION_CLICKED,\n events_1.IN_APP_MESSAGE_CLICKED,\n events_1.IN_APP_MESSAGE_WILL_DISPLAY,\n events_1.IN_APP_MESSAGE_WILL_DISMISS,\n events_1.IN_APP_MESSAGE_DID_DISMISS,\n events_1.IN_APP_MESSAGE_DID_DISPLAY,\n];\nvar EventManager = /** @class */ (function () {\n function EventManager(RNOneSignal) {\n this.RNOneSignal = RNOneSignal;\n this.oneSignalEventEmitter = new react_native_1.NativeEventEmitter(RNOneSignal);\n this.eventListenerArrayMap = new Map(); // used for adders (multiple callbacks possible)\n this.listeners = {};\n this.setupListeners();\n }\n EventManager.prototype.setupListeners = function () {\n // set up the event emitter and listeners\n if (this.RNOneSignal != null) {\n for (var i = 0; i < eventList.length; i++) {\n var eventName = eventList[i];\n this.listeners[eventName] = this.generateEventListener(eventName);\n }\n }\n };\n /**\n * Adds the event handler to the corresponding handler array on the JS side of the bridge\n * @param {string} eventName\n * @param {function} handler\n * @returns void\n */\n EventManager.prototype.addEventListener = function (eventName, handler) {\n var handlerArray = this.eventListenerArrayMap.get(eventName);\n handlerArray && handlerArray.length > 0\n ? handlerArray.push(handler)\n : this.eventListenerArrayMap.set(eventName, [handler]);\n };\n /**\n * clears the event handler(s) for the event name\n * @param {string} eventName\n * @param {function} handler\n * @returns void\n */\n EventManager.prototype.removeEventListener = function (eventName, handler) {\n var handlerArray = this.eventListenerArrayMap.get(eventName);\n if (!handlerArray) {\n return;\n }\n var index = handlerArray.indexOf(handler);\n if (index !== -1) {\n handlerArray.splice(index, 1);\n }\n if (handlerArray.length === 0) {\n this.eventListenerArrayMap.delete(eventName);\n }\n };\n // returns an event listener with the js to native mapping\n EventManager.prototype.generateEventListener = function (eventName) {\n var _this = this;\n var addListenerCallback = function (payload) {\n var handlerArray = _this.eventListenerArrayMap.get(eventName);\n if (handlerArray) {\n if (eventName === events_1.NOTIFICATION_WILL_DISPLAY) {\n handlerArray.forEach(function (handler) {\n handler(new NotificationWillDisplayEvent_1.default(payload));\n });\n }\n else if (eventName === events_1.PERMISSION_CHANGED) {\n var typedPayload_1 = payload;\n handlerArray.forEach(function (handler) {\n handler(typedPayload_1.permission);\n });\n }\n else {\n handlerArray.forEach(function (handler) {\n handler(payload);\n });\n }\n }\n };\n return this.oneSignalEventEmitter.addListener(eventName, addListenerCallback);\n };\n return EventManager;\n}());\nexports.default = EventManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OSNotificationPermission = void 0;\nvar OSNotificationPermission;\n(function (OSNotificationPermission) {\n OSNotificationPermission[OSNotificationPermission[\"NotDetermined\"] = 0] = \"NotDetermined\";\n OSNotificationPermission[OSNotificationPermission[\"Denied\"] = 1] = \"Denied\";\n OSNotificationPermission[OSNotificationPermission[\"Authorized\"] = 2] = \"Authorized\";\n OSNotificationPermission[OSNotificationPermission[\"Provisional\"] = 3] = \"Provisional\";\n OSNotificationPermission[OSNotificationPermission[\"Ephemeral\"] = 4] = \"Ephemeral\";\n})(OSNotificationPermission = exports.OSNotificationPermission || (exports.OSNotificationPermission = {}));\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNativeModuleLoaded = exports.isValidCallback = void 0;\nvar invariant_1 = __importDefault(require(\"invariant\"));\nfunction isValidCallback(handler) {\n invariant_1.default(typeof handler === 'function', 'Must provide a valid callback');\n}\nexports.isValidCallback = isValidCallback;\nfunction isNativeModuleLoaded(module) {\n if (module == null) {\n console.error('Could not load RNOneSignal native module. Make sure native dependencies are properly linked.');\n return false;\n }\n return true;\n}\nexports.isNativeModuleLoaded = isNativeModuleLoaded;\n","/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\n\nexport default F;","/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\nexport default T;","/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\nexport default {\n '@@functional/placeholder': true\n};","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\n_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\n\nexport default add;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","import _concat from \"./internal/_concat.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\n_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\nexport default addIndex;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust =\n/*#__PURE__*/\n_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n\n var start = idx < 0 ? list.length : 0;\n\n var _idx = start + idx;\n\n var _list = _concat(list);\n\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\nexport default adjust;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAll =\n/*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall =\n/*#__PURE__*/\n_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\n});\n\nexport default _xall;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xall from \"./internal/_xall.js\";\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\nexport default all;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\n_curry2(function max(a, b) {\n return b > a ? b : a;\n});\n\nexport default max;","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n return path([p], obj);\n});\n\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\n_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\nexport default pluck;","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\nvar allPass =\n/*#__PURE__*/\n_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n });\n});\n\nexport default allPass;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always =\n/*#__PURE__*/\n_curry1(function always(val) {\n return function () {\n return val;\n };\n});\n\nexport default always;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and =\n/*#__PURE__*/\n_curry2(function and(a, b) {\n return a && b;\n});\n\nexport default and;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAny =\n/*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany =\n/*#__PURE__*/\n_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\nexport default _xany;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xany from \"./internal/_xany.js\";\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\nexport default any;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\nvar anyPass =\n/*#__PURE__*/\n_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n });\n});\n\nexport default anyPass;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport map from \"./map.js\";\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap =\n/*#__PURE__*/\n_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\n\nexport default ap;","export default function _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n\n return acc;\n}","import _concat from \"./_concat.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAperture =\n/*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n XAperture.prototype.getCopy = function () {\n return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture =\n/*#__PURE__*/\n_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\n\nexport default _xaperture;","import _aperture from \"./internal/_aperture.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xaperture from \"./internal/_xaperture.js\";\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\nvar aperture =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xaperture, _aperture));\n\nexport default aperture;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\n_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\n\nexport default append;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\nvar apply =\n/*#__PURE__*/\n_curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\nexport default apply;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import _curry1 from \"./internal/_curry1.js\";\nimport apply from \"./apply.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\nimport keys from \"./keys.js\";\nimport values from \"./values.js\"; // Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\nfunction mapValues(fn, obj) {\n return keys(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\n\n\nvar applySpec =\n/*#__PURE__*/\n_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\n\nexport default applySpec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\nvar applyTo =\n/*#__PURE__*/\n_curry2(function applyTo(x, f) {\n return f(x);\n});\n\nexport default applyTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar ascend =\n/*#__PURE__*/\n_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\nexport default ascend;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\n_curry3(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\nexport default assoc;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport assoc from \"./assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\n\nexport default assocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\nvar nAry =\n/*#__PURE__*/\n_curry2(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\nexport default nAry;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\nvar binary =\n/*#__PURE__*/\n_curry1(function binary(fn) {\n return nAry(2, fn);\n});\n\nexport default binary;","export default function _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport ap from \"./ap.js\";\nimport curryN from \"./curryN.js\";\nimport map from \"./map.js\";\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN =\n/*#__PURE__*/\n_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\nexport default liftN;","import _curry1 from \"./internal/_curry1.js\";\nimport liftN from \"./liftN.js\";\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift =\n/*#__PURE__*/\n_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\n\nexport default lift;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport and from \"./and.js\";\nimport lift from \"./lift.js\";\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\nvar both =\n/*#__PURE__*/\n_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\n\nexport default both;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\n_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\n\nexport default curry;","import curry from \"./curry.js\";\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\nvar call =\n/*#__PURE__*/\ncurry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\nexport default call;","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}","import _forceReduced from \"./_forceReduced.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\n\nexport default _flatCat;","export default function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\nimport _xchain from \"./internal/_xchain.js\";\nimport map from \"./map.js\";\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return _makeFlat(false)(map(fn, monad));\n}));\n\nexport default chain;","import _curry2 from \"./_curry2.js\";\nimport _flatCat from \"./_flatCat.js\";\nimport map from \"../map.js\";\n\nvar _xchain =\n/*#__PURE__*/\n_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\n\nexport default _xchain;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\nvar clamp =\n/*#__PURE__*/\n_curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n\n return value < min ? min : value > max ? max : value;\n});\n\nexport default clamp;","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nexport default type;","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (type(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return _cloneRegExp(value);\n\n default:\n return value;\n }\n}","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone =\n/*#__PURE__*/\n_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\n\nexport default clone;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator =\n/*#__PURE__*/\n_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\nexport default comparator;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not =\n/*#__PURE__*/\n_curry1(function not(a) {\n return !a;\n});\n\nexport default not;","import lift from \"./lift.js\";\nimport not from \"./not.js\";\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement =\n/*#__PURE__*/\nlift(not);\nexport default complement;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nexport default tail;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","import chain from \"./chain.js\";\nimport compose from \"./compose.js\";\nimport map from \"./map.js\";\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\nexport default function composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return compose(compose.apply(this, map(chain, init)), last);\n}","export default function _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _pipeP from \"./internal/_pipeP.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The first argument may have any arity; the remaining arguments\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\nexport default function pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipeP, arguments[0], tail(arguments)));\n}","import pipeP from \"./pipeP.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The last arguments may have any arity; the remaining\n * arguments must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\nexport default function composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n\n return pipeP.apply(this, reverse(arguments));\n}","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nnth(0);\nexport default head;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport head from \"./head.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport tail from \"./tail.js\";\nimport identity from \"./identity.js\";\n/**\n * Performs left-to-right function composition using transforming function. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried. Transforming function is not used on the\n * first argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, g(...args)))\n */\n\nvar pipeWith =\n/*#__PURE__*/\n_curry2(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\n }\n\n var headList = head(list);\n var tailList = tail(list);\n return _arity(headList.length, function () {\n return _reduce(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\n\nexport default pipeWith;","import _curry2 from \"./internal/_curry2.js\";\nimport pipeWith from \"./pipeWith.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition using transforming function. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried. Transforming function is not used on the\n * last argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, i(...args)))\n */\n\nvar composeWith =\n/*#__PURE__*/\n_curry2(function composeWith(xf, list) {\n return pipeWith.apply(this, [xf, reverse(list)]);\n});\n\nexport default composeWith;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\n_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\nexport default _xfilter;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nexport default filter;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\n_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\n\nexport default reject;","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\n_curry1(function toString(val) {\n return _toString(val, []);\n});\n\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport _isString from \"./internal/_isString.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\n_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(b) + ' is not an array');\n }\n\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n\n throw new TypeError(toString(b) + ' is not a string');\n }\n\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\nexport default concat;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\n_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\nexport default cond;","import _curry2 from \"./internal/_curry2.js\";\nimport curry from \"./curry.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\nvar constructN =\n/*#__PURE__*/\n_curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n\n return curry(nAry(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n\n case 2:\n return new Fn($0, $1);\n\n case 3:\n return new Fn($0, $1, $2);\n\n case 4:\n return new Fn($0, $1, $2, $3);\n\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\nexport default constructN;","import _curry1 from \"./internal/_curry1.js\";\nimport constructN from \"./constructN.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\nvar construct =\n/*#__PURE__*/\n_curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\n});\n\nexport default construct;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\nvar contains =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default contains;","import _curry2 from \"./internal/_curry2.js\";\nimport _map from \"./internal/_map.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge =\n/*#__PURE__*/\n_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\nexport default converge;","import _curryN from \"./_curryN.js\";\nimport _has from \"./_has.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XReduceBy =\n/*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy =\n/*#__PURE__*/\n_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\nexport default _xreduceBy;","import _clone from \"./internal/_clone.js\";\nimport _curryN from \"./internal/_curryN.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _has from \"./internal/_has.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xreduceBy from \"./internal/_xreduceBy.js\";\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy =\n/*#__PURE__*/\n_curryN(4, [],\n/*#__PURE__*/\n_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\nexport default reduceBy;","import reduceBy from \"./reduceBy.js\";\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\nvar countBy =\n/*#__PURE__*/\nreduceBy(function (acc, elem) {\n return acc + 1;\n}, 0);\nexport default countBy;","import add from \"./add.js\";\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec =\n/*#__PURE__*/\nadd(-1);\nexport default dec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\n_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\nexport default defaultTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\nvar descend =\n/*#__PURE__*/\n_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\nexport default descend;","import _includes from \"./_includes.js\";\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\nexport default _Set;","import _curry2 from \"./internal/_curry2.js\";\nimport _Set from \"./internal/_Set.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference =\n/*#__PURE__*/\n_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default difference;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\nvar differenceWith =\n/*#__PURE__*/\n_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default differenceWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc =\n/*#__PURE__*/\n_curry2(function dissoc(prop, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n});\n\nexport default dissoc;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\nexport default remove;","import _curry3 from \"./internal/_curry3.js\";\nimport adjust from \"./adjust.js\";\nimport always from \"./always.js\";\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update =\n/*#__PURE__*/\n_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\n\nexport default update;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\nimport dissoc from \"./dissoc.js\";\nimport remove from \"./remove.js\";\nimport update from \"./update.js\";\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath =\n/*#__PURE__*/\n_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (_isInteger(head) && _isArray(obj)) {\n return update(head, dissocPath(tail, obj[head]), obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\nexport default dissocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide =\n/*#__PURE__*/\n_curry2(function divide(a, b) {\n return a / b;\n});\n\nexport default divide;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDrop =\n/*#__PURE__*/\nfunction () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop =\n/*#__PURE__*/\n_curry2(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\n\nexport default _xdrop;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdrop from \"./internal/_xdrop.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\nvar drop =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\n\nexport default drop;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTake =\n/*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake =\n/*#__PURE__*/\n_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\nexport default _xtake;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtake from \"./internal/_xtake.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\n\nexport default take;","import take from \"../take.js\";\nexport default function dropLast(n, xs) {\n return take(n < xs.length ? xs.length - n : 0, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLast =\n/*#__PURE__*/\nfunction () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n\n this.store(input);\n return result;\n };\n\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast =\n/*#__PURE__*/\n_curry2(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\n\nexport default _xdropLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLast from \"./internal/_dropLast.js\";\nimport _xdropLast from \"./internal/_xdropLast.js\";\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\nvar dropLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropLast, _dropLast));\n\nexport default dropLast;","import slice from \"../slice.js\";\nexport default function dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return slice(0, idx + 1, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLastWhile =\n/*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile =\n/*#__PURE__*/\n_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\nexport default _xdropLastWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLastWhile from \"./internal/_dropLastWhile.js\";\nimport _xdropLastWhile from \"./internal/_xdropLastWhile.js\";\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropLastWhile, _dropLastWhile));\n\nexport default dropLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropRepeatsWith =\n/*#__PURE__*/\nfunction () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith =\n/*#__PURE__*/\n_curry2(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\n\nexport default _xdropRepeatsWith;","import nth from \"./nth.js\";\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nnth(-1);\nexport default last;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport last from \"./last.js\";\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n\n if (len !== 0) {\n result[0] = list[0];\n\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n }\n\n return result;\n}));\n\nexport default dropRepeatsWith;","import _curry1 from \"./internal/_curry1.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport dropRepeatsWith from \"./dropRepeatsWith.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\nvar dropRepeats =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_dispatchable([],\n/*#__PURE__*/\n_xdropRepeatsWith(equals),\n/*#__PURE__*/\ndropRepeatsWith(equals)));\n\nexport default dropRepeats;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropWhile =\n/*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile =\n/*#__PURE__*/\n_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\nexport default _xdropWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropWhile from \"./internal/_xdropWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return slice(idx, Infinity, xs);\n}));\n\nexport default dropWhile;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either, R.xor\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\nvar or =\n/*#__PURE__*/\n_curry2(function or(a, b) {\n return a || b;\n});\n\nexport default or;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport lift from \"./lift.js\";\nimport or from \"./or.js\";\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\nvar either =\n/*#__PURE__*/\n_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\n\nexport default either;","import _curry1 from \"./internal/_curry1.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty =\n/*#__PURE__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\nexport default empty;","import _curry2 from \"./internal/_curry2.js\";\nimport drop from \"./drop.js\";\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast =\n/*#__PURE__*/\n_curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\n});\n\nexport default takeLast;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport takeLast from \"./takeLast.js\";\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar endsWith =\n/*#__PURE__*/\n_curry2(function (suffix, list) {\n return equals(takeLast(suffix.length, list), suffix);\n});\n\nexport default endsWith;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\nvar eqBy =\n/*#__PURE__*/\n_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\n\nexport default eqBy;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\nvar eqProps =\n/*#__PURE__*/\n_curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\n});\n\nexport default eqProps;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\nvar evolve =\n/*#__PURE__*/\n_curry2(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n\n return result;\n});\n\nexport default evolve;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex =\n/*#__PURE__*/\n_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\nexport default _xfindIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\nexport default findIndex;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast =\n/*#__PURE__*/\n_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\nexport default _xfindLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLast from \"./internal/_xfindLast.js\";\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\nexport default findLast;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLastIndex =\n/*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex =\n/*#__PURE__*/\n_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\n\nexport default _xfindLastIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLastIndex from \"./internal/_xfindLastIndex.js\";\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n}));\n\nexport default findLastIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_makeFlat(true));\n\nexport default flatten;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip =\n/*#__PURE__*/\n_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\nexport default flip;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\nexport default forEach;","import _curry2 from \"./internal/_curry2.js\";\nimport keys from \"./keys.js\";\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\nvar forEachObjIndexed =\n/*#__PURE__*/\n_curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n\n return obj;\n});\n\nexport default forEachObjIndexed;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs =\n/*#__PURE__*/\n_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\nexport default fromPairs;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport reduceBy from \"./reduceBy.js\";\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('groupBy',\n/*#__PURE__*/\nreduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\nexport default groupBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\nvar groupWith =\n/*#__PURE__*/\n_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n var nextidx = idx + 1;\n\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n\n return res;\n});\n\nexport default groupWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\nvar gt =\n/*#__PURE__*/\n_curry2(function gt(a, b) {\n return a > b;\n});\n\nexport default gt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\nvar gte =\n/*#__PURE__*/\n_curry2(function gte(a, b) {\n return a >= b;\n});\n\nexport default gte;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\n_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!isNil(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\nexport default hasPath;","import _curry2 from \"./internal/_curry2.js\";\nimport hasPath from \"./hasPath.js\";\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has =\n/*#__PURE__*/\n_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\n\nexport default has;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\nvar hasIn =\n/*#__PURE__*/\n_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\n\nexport default hasIn;","import _objectIs from \"./internal/_objectIs.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\nvar identical =\n/*#__PURE__*/\n_curry2(_objectIs);\n\nexport default identical;","import _curry3 from \"./internal/_curry3.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\nvar ifElse =\n/*#__PURE__*/\n_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\nexport default ifElse;","import add from \"./add.js\";\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc =\n/*#__PURE__*/\nadd(1);\nexport default inc;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default includes;","import reduceBy from \"./reduceBy.js\";\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\nvar indexBy =\n/*#__PURE__*/\nreduceBy(function (acc, elem) {\n return elem;\n}, null);\nexport default indexBy;","import _curry2 from \"./internal/_curry2.js\";\nimport _indexOf from \"./internal/_indexOf.js\";\nimport _isArray from \"./internal/_isArray.js\";\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf =\n/*#__PURE__*/\n_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\n\nexport default indexOf;","import slice from \"./slice.js\";\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init =\n/*#__PURE__*/\nslice(0, -1);\nexport default init;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _filter from \"./internal/_filter.js\";\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin =\n/*#__PURE__*/\n_curry3(function innerJoin(pred, xs, ys) {\n return _filter(function (x) {\n return _includesWith(pred, x, ys);\n }, xs);\n});\n\nexport default innerJoin;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert =\n/*#__PURE__*/\n_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\nexport default insert;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll =\n/*#__PURE__*/\n_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\nexport default insertAll;","import _Set from \"./internal/_Set.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\n_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqBy;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nuniqBy(identity);\nexport default uniq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _filter from \"./internal/_filter.js\";\nimport flip from \"./flip.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection =\n/*#__PURE__*/\n_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\n});\n\nexport default intersection;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\nvar intersperse =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n\n idx += 1;\n }\n\n return out;\n}));\n\nexport default intersperse;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf =\n/*#__PURE__*/\n_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\nexport default objOf;","import _objectAssign from \"./_objectAssign.js\";\nimport _identity from \"./_identity.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _isTransformer from \"./_isTransformer.js\";\nimport objOf from \"../objOf.js\";\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\nexport default function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}","import _clone from \"./internal/_clone.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _isTransformer from \"./internal/_isTransformer.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _stepCat from \"./internal/_stepCat.js\";\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into =\n/*#__PURE__*/\n_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\n\nexport default into;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport keys from \"./keys.js\";\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\nvar invert =\n/*#__PURE__*/\n_curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = _has(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invert;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\nvar invertObj =\n/*#__PURE__*/\n_curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invertObj;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport curryN from \"./curryN.js\";\nimport toString from \"./toString.js\";\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker =\n/*#__PURE__*/\n_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\nexport default invoker;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\n_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\nexport default is;","import _curry1 from \"./internal/_curry1.js\";\nimport empty from \"./empty.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty =\n/*#__PURE__*/\n_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\n\nexport default isEmpty;","import invoker from \"./invoker.js\";\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join =\n/*#__PURE__*/\ninvoker(1, 'join');\nexport default join;","import _curry1 from \"./internal/_curry1.js\";\nimport converge from \"./converge.js\";\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt =\n/*#__PURE__*/\n_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\nexport default juxt;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn =\n/*#__PURE__*/\n_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\nexport default keysIn;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar lastIndexOf =\n/*#__PURE__*/\n_curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n }\n});\n\nexport default lastIndexOf;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length =\n/*#__PURE__*/\n_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\n\nexport default length;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\n_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\nexport default lens;","import _curry1 from \"./internal/_curry1.js\";\nimport lens from \"./lens.js\";\nimport nth from \"./nth.js\";\nimport update from \"./update.js\";\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over, R.nth\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\nvar lensIndex =\n/*#__PURE__*/\n_curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\n\nexport default lensIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport assocPath from \"./assocPath.js\";\nimport lens from \"./lens.js\";\nimport path from \"./path.js\";\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\n_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\n\nexport default lensPath;","import _curry1 from \"./internal/_curry1.js\";\nimport assoc from \"./assoc.js\";\nimport lens from \"./lens.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp =\n/*#__PURE__*/\n_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\n\nexport default lensProp;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\nvar lt =\n/*#__PURE__*/\n_curry2(function lt(a, b) {\n return a < b;\n});\n\nexport default lt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\nvar lte =\n/*#__PURE__*/\n_curry2(function lte(a, b) {\n return a <= b;\n});\n\nexport default lte;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\nvar mapAccum =\n/*#__PURE__*/\n_curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccum;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\nvar mapAccumRight =\n/*#__PURE__*/\n_curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccumRight;","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport keys from \"./keys.js\";\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\nvar mapObjIndexed =\n/*#__PURE__*/\n_curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\n\nexport default mapObjIndexed;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\nvar match =\n/*#__PURE__*/\n_curry2(function match(rx, str) {\n return str.match(rx) || [];\n});\n\nexport default match;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\nvar mathMod =\n/*#__PURE__*/\n_curry2(function mathMod(m, p) {\n if (!_isInteger(m)) {\n return NaN;\n }\n\n if (!_isInteger(p) || p < 1) {\n return NaN;\n }\n\n return (m % p + p) % p;\n});\n\nexport default mathMod;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\nvar maxBy =\n/*#__PURE__*/\n_curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\nexport default maxBy;","import add from \"./add.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nreduce(add, 0);\nexport default sum;","import _curry1 from \"./internal/_curry1.js\";\nimport sum from \"./sum.js\";\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean =\n/*#__PURE__*/\n_curry1(function mean(list) {\n return sum(list) / list.length;\n});\n\nexport default mean;","import _curry1 from \"./internal/_curry1.js\";\nimport mean from \"./mean.js\";\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\nvar median =\n/*#__PURE__*/\n_curry1(function median(list) {\n var len = list.length;\n\n if (len === 0) {\n return NaN;\n }\n\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\nexport default median;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith =\n/*#__PURE__*/\n_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\nexport default memoizeWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge =\n/*#__PURE__*/\n_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default merge;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\n_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\n\nexport default mergeAll;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft =\n/*#__PURE__*/\n_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepLeft;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight =\n/*#__PURE__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWith =\n/*#__PURE__*/\n_curry3(function mergeDeepWith(fn, lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\n\nexport default mergeDeepWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\nvar mergeLeft =\n/*#__PURE__*/\n_curry2(function mergeLeft(l, r) {\n return _objectAssign({}, r, l);\n});\n\nexport default mergeLeft;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith =\n/*#__PURE__*/\n_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\nexport default mergeWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min =\n/*#__PURE__*/\n_curry2(function min(a, b) {\n return b < a ? b : a;\n});\n\nexport default min;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\nvar minBy =\n/*#__PURE__*/\n_curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\nexport default minBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\nvar modulo =\n/*#__PURE__*/\n_curry2(function modulo(a, b) {\n return a % b;\n});\n\nexport default modulo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\nvar move =\n/*#__PURE__*/\n_curry3(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\nexport default move;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\nvar multiply =\n/*#__PURE__*/\n_curry2(function multiply(a, b) {\n return a * b;\n});\n\nexport default multiply;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\nvar negate =\n/*#__PURE__*/\n_curry1(function negate(n) {\n return -n;\n});\n\nexport default negate;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport all from \"./all.js\";\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\nvar none =\n/*#__PURE__*/\n_curry2(function none(fn, input) {\n return all(_complement(fn), input);\n});\n\nexport default none;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\nvar nthArg =\n/*#__PURE__*/\n_curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function () {\n return nth(n, arguments);\n });\n});\n\nexport default nthArg;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\nvar o =\n/*#__PURE__*/\n_curry3(function o(f, g, x) {\n return f(g(x));\n});\n\nexport default o;","export default function _of(x) {\n return [x];\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _of from \"./internal/_of.js\";\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of =\n/*#__PURE__*/\n_curry1(_of);\n\nexport default of;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\n_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default omit;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once =\n/*#__PURE__*/\n_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\nexport default once;","import _isFunction from \"./_isFunction.js\";\nimport _toString from \"./_toString.js\";\nexport default function _assertPromise(name, p) {\n if (p == null || !_isFunction(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + _toString(p, []));\n }\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\nvar otherwise =\n/*#__PURE__*/\n_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n\n return p.then(null, f);\n});\n\nexport default otherwise;","import _curry3 from \"./internal/_curry3.js\"; // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over =\n/*#__PURE__*/\n_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\nexport default over;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\nvar pair =\n/*#__PURE__*/\n_curry2(function pair(fst, snd) {\n return [fst, snd];\n});\n\nexport default pair;","import _arity from \"./_arity.js\";\nimport _curry2 from \"./_curry2.js\";\nexport default function _createPartialApplicator(concat) {\n return _curry2(function (fn, args) {\n return _arity(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial =\n/*#__PURE__*/\n_createPartialApplicator(_concat);\n\nexport default partial;","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\nimport flip from \"./flip.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\nvar partialRight =\n/*#__PURE__*/\n_createPartialApplicator(\n/*#__PURE__*/\nflip(_concat));\n\nexport default partialRight;","import filter from \"./filter.js\";\nimport juxt from \"./juxt.js\";\nimport reject from \"./reject.js\";\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition =\n/*#__PURE__*/\njuxt([filter, reject]);\nexport default partition;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\nimport path from \"./path.js\";\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq =\n/*#__PURE__*/\n_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\n\nexport default pathEq;","import _curry3 from \"./internal/_curry3.js\";\nimport defaultTo from \"./defaultTo.js\";\nimport path from \"./path.js\";\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr =\n/*#__PURE__*/\n_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\n\nexport default pathOr;","import _curry3 from \"./internal/_curry3.js\";\nimport path from \"./path.js\";\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n * R.pathSatisfies(R.is(Object), [], {x: {y: 2}}); //=> true\n */\n\nvar pathSatisfies =\n/*#__PURE__*/\n_curry3(function pathSatisfies(pred, propPath, obj) {\n return pred(path(propPath, obj));\n});\n\nexport default pathSatisfies;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\n_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default pick;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll =\n/*#__PURE__*/\n_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\nexport default pickAll;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy =\n/*#__PURE__*/\n_curry2(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default pickBy;","import composeK from \"./composeK.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\nexport default function pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n\n return composeK.apply(this, reverse(arguments));\n}","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend =\n/*#__PURE__*/\n_curry2(function prepend(el, list) {\n return _concat([el], list);\n});\n\nexport default prepend;","import multiply from \"./multiply.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\nvar product =\n/*#__PURE__*/\nreduce(multiply, 1);\nexport default product;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith =\n/*#__PURE__*/\n_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\nexport default useWith;","import _map from \"./internal/_map.js\";\nimport identity from \"./identity.js\";\nimport pickAll from \"./pickAll.js\";\nimport useWith from \"./useWith.js\";\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project =\n/*#__PURE__*/\nuseWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\n\nexport default project;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\n\nexport default propEq;","import _curry3 from \"./internal/_curry3.js\";\nimport is from \"./is.js\";\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\nvar propIs =\n/*#__PURE__*/\n_curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\n});\n\nexport default propIs;","import _curry3 from \"./internal/_curry3.js\";\nimport pathOr from \"./pathOr.js\";\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr =\n/*#__PURE__*/\n_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\n});\n\nexport default propOr;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\nvar propSatisfies =\n/*#__PURE__*/\n_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\nexport default propSatisfies;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props =\n/*#__PURE__*/\n_curry2(function props(ps, obj) {\n return ps.map(function (p) {\n return path([p], obj);\n });\n});\n\nexport default props;","import _curry2 from \"./internal/_curry2.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\n_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\nexport default range;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight =\n/*#__PURE__*/\n_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\nexport default reduceRight;","import _curryN from \"./internal/_curryN.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile =\n/*#__PURE__*/\n_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\n\nexport default reduceWhile;","import _curry1 from \"./internal/_curry1.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\nvar reduced =\n/*#__PURE__*/\n_curry1(_reduced);\n\nexport default reduced;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times =\n/*#__PURE__*/\n_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = new Array(len);\n\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n\n return list;\n});\n\nexport default times;","import _curry2 from \"./internal/_curry2.js\";\nimport always from \"./always.js\";\nimport times from \"./times.js\";\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat =\n/*#__PURE__*/\n_curry2(function repeat(value, n) {\n return times(always(value), n);\n});\n\nexport default repeat;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\n_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\nexport default replace;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\nvar scan =\n/*#__PURE__*/\n_curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n\n return result;\n});\n\nexport default scan;","import _curry2 from \"./internal/_curry2.js\";\nimport ap from \"./ap.js\";\nimport map from \"./map.js\";\nimport prepend from \"./prepend.js\";\nimport reduceRight from \"./reduceRight.js\";\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence =\n/*#__PURE__*/\n_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\n\nexport default sequence;","import _curry3 from \"./internal/_curry3.js\";\nimport always from \"./always.js\";\nimport over from \"./over.js\";\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set =\n/*#__PURE__*/\n_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\n\nexport default set;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\nvar sort =\n/*#__PURE__*/\n_curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\nexport default sort;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy =\n/*#__PURE__*/\n_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\nexport default sortBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith =\n/*#__PURE__*/\n_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\nexport default sortWith;","import invoker from \"./invoker.js\";\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split =\n/*#__PURE__*/\ninvoker(1, 'split');\nexport default split;","import _curry2 from \"./internal/_curry2.js\";\nimport length from \"./length.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt =\n/*#__PURE__*/\n_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\n\nexport default splitAt;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\nvar splitEvery =\n/*#__PURE__*/\n_curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n\n return result;\n});\n\nexport default splitEvery;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen =\n/*#__PURE__*/\n_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\nexport default splitWhen;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport take from \"./take.js\";\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith =\n/*#__PURE__*/\n_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\n});\n\nexport default startsWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\nvar subtract =\n/*#__PURE__*/\n_curry2(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\nexport default subtract;","import _curry2 from \"./internal/_curry2.js\";\nimport concat from \"./concat.js\";\nimport difference from \"./difference.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\nvar symmetricDifference =\n/*#__PURE__*/\n_curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\n});\n\nexport default symmetricDifference;","import _curry3 from \"./internal/_curry3.js\";\nimport concat from \"./concat.js\";\nimport differenceWith from \"./differenceWith.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\nvar symmetricDifferenceWith =\n/*#__PURE__*/\n_curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\n});\n\nexport default symmetricDifferenceWith;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\nvar takeLastWhile =\n/*#__PURE__*/\n_curry2(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n\n return slice(idx + 1, Infinity, xs);\n});\n\nexport default takeLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTakeWhile =\n/*#__PURE__*/\nfunction () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile =\n/*#__PURE__*/\n_curry2(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\n\nexport default _xtakeWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtakeWhile from \"./internal/_xtakeWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\nvar takeWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n\n return slice(0, idx, xs);\n}));\n\nexport default takeWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTap =\n/*#__PURE__*/\nfunction () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap =\n/*#__PURE__*/\n_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\n\nexport default _xtap;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtap from \"./internal/_xtap.js\";\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\nvar tap =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\n}));\n\nexport default tap;","import _cloneRegExp from \"./internal/_cloneRegExp.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _isRegExp from \"./internal/_isRegExp.js\";\nimport toString from \"./toString.js\";\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test =\n/*#__PURE__*/\n_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n\n return _cloneRegExp(pattern).test(str);\n});\n\nexport default test;","export default function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.andThen(R.pick(['firstName', 'lastName']))\n * );\n */\n\nvar andThen =\n/*#__PURE__*/\n_curry2(function andThen(f, p) {\n _assertPromise('andThen', p);\n\n return p.then(f);\n});\n\nexport default andThen;","import invoker from \"./invoker.js\";\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\nvar toLower =\n/*#__PURE__*/\ninvoker(0, 'toLowerCase');\nexport default toLower;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\n_curry1(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\nexport default toPairs;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\nvar toPairsIn =\n/*#__PURE__*/\n_curry1(function toPairsIn(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n\n return pairs;\n});\n\nexport default toPairsIn;","import invoker from \"./invoker.js\";\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\nvar toUpper =\n/*#__PURE__*/\ninvoker(0, 'toUpperCase');\nexport default toUpper;","import _reduce from \"./internal/_reduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce =\n/*#__PURE__*/\ncurryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\nexport default transduce;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\n_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\nexport default transpose;","import _curry3 from \"./internal/_curry3.js\";\nimport map from \"./map.js\";\nimport sequence from \"./sequence.js\";\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse =\n/*#__PURE__*/\n_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\n\nexport default traverse;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _arity from \"./internal/_arity.js\";\nimport _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch =\n/*#__PURE__*/\n_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\n\nexport default tryCatch;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\nvar unapply =\n/*#__PURE__*/\n_curry1(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\nexport default unapply;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\nvar unary =\n/*#__PURE__*/\n_curry1(function unary(fn) {\n return nAry(1, fn);\n});\n\nexport default unary;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\nvar uncurryN =\n/*#__PURE__*/\n_curry2(function uncurryN(depth, fn) {\n return curryN(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n\n return value;\n });\n});\n\nexport default uncurryN;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\nvar unfold =\n/*#__PURE__*/\n_curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n\n return result;\n});\n\nexport default unfold;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport compose from \"./compose.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\ncompose(uniq, _concat));\n\nexport default union;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith =\n/*#__PURE__*/\n_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqWith;","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport uniqWith from \"./uniqWith.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith =\n/*#__PURE__*/\n_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\n\nexport default unionWith;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\nvar unless =\n/*#__PURE__*/\n_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\nexport default unless;","import _identity from \"./internal/_identity.js\";\nimport chain from \"./chain.js\";\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest =\n/*#__PURE__*/\nchain(_identity);\nexport default unnest;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until =\n/*#__PURE__*/\n_curry3(function until(pred, fn, init) {\n var val = init;\n\n while (!pred(val)) {\n val = fn(val);\n }\n\n return val;\n});\n\nexport default until;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\nvar valuesIn =\n/*#__PURE__*/\n_curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n\n return vs;\n});\n\nexport default valuesIn;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\n_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\nexport default view;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\nvar when =\n/*#__PURE__*/\n_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\nexport default when;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\nvar where =\n/*#__PURE__*/\n_curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n\n return true;\n});\n\nexport default where;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport map from \"./map.js\";\nimport where from \"./where.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\nvar whereEq =\n/*#__PURE__*/\n_curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\n});\n\nexport default whereEq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport flip from \"./flip.js\";\nimport reject from \"./reject.js\";\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\n_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\n});\n\nexport default without;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Exclusive disjunction logical operation.\n * Returns `true` if one of the arguments is truthy and the other is falsy.\n * Otherwise, it returns `false`.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {Any} a\n * @param {Any} b\n * @return {Boolean} true if one of the arguments is truthy and the other is falsy\n * @see R.or, R.and\n * @example\n *\n * R.xor(true, true); //=> false\n * R.xor(true, false); //=> true\n * R.xor(false, true); //=> true\n * R.xor(false, false); //=> false\n */\n\nvar xor =\n/*#__PURE__*/\n_curry2(function xor(a, b) {\n return Boolean(!a ^ !b);\n});\n\nexport default xor;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod =\n/*#__PURE__*/\n_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default xprod;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip =\n/*#__PURE__*/\n_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zip;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar zipObj =\n/*#__PURE__*/\n_curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n\n return out;\n});\n\nexport default zipObj;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\n_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zipWith;","import curryN from \"./curryN.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\nvar thunkify =\n/*#__PURE__*/\n_curry1(function thunkify(fn) {\n return curryN(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\nexport default thunkify;","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n }, []);\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","export default 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}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _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}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _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}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./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}\nexport default function _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}","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\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(\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","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import type { ClientOptions, CustomSamplingContext, TransactionContext } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { getMainCarrier } from '../hub';\nimport { spanToTraceHeader } from '../utils/spanUtils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { sampleTransaction } from './sampling';\nimport { Transaction } from './transaction';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const span = scope.getSpan();\n\n return span\n ? {\n 'sentry-trace': spanToTraceHeader(span),\n }\n : {};\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n const configInstrumenter = options.instrumenter || 'sentry';\n const transactionInstrumenter = transactionContext.instrumenter || 'sentry';\n\n if (configInstrumenter !== transactionInstrumenter) {\n DEBUG_BUILD &&\n logger.error(\n `A transaction was started with instrumenter=\\`${transactionInstrumenter}\\`, but the SDK is configured with the \\`${configInstrumenter}\\` instrumenter.\nThe transaction will not be sampled. Please use the ${configInstrumenter} instrumentation to start transactions.`,\n );\n\n // eslint-disable-next-line deprecation/deprecation\n transactionContext.sampled = false;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new Transaction(transactionContext, this);\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout: number,\n finalTimeout: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n heartbeatInterval?: number,\n delayAutoFinishUntilSignal: boolean = false,\n): IdleTransaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new IdleTransaction(\n transactionContext,\n hub,\n idleTimeout,\n finalTimeout,\n heartbeatInterval,\n onScope,\n delayAutoFinishUntilSignal,\n );\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Adds tracing extensions to the global hub.\n */\nexport function addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n\n registerErrorInstrumentation();\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { OverlayContainer } from '@react-native-aria/overlays';\nimport React from 'react';\nimport type { ViewStyle } from 'react-native';\nimport { Modal, Platform } from 'react-native';\nimport { useKeyboardDismissable } from '../../../hooks';\nimport { ExitAnimationContext } from './ExitAnimationContext';\n\nexport interface IOverlayProps {\n isOpen?: boolean;\n children?: any;\n // We use RN modal on android if needed as it supports shifting accessiblity focus to the opened view. IOS automatically shifts focus if an absolutely placed view appears in front.\n useRNModalOnAndroid?: boolean;\n useRNModal?: boolean;\n onRequestClose?: any;\n isKeyboardDismissable?: boolean;\n animationPreset?: 'fade' | 'slide' | 'none';\n style?: ViewStyle;\n unmountOnExit?: boolean;\n}\n\nexport function Overlay({\n children,\n isOpen,\n useRNModal = false,\n useRNModalOnAndroid = false,\n isKeyboardDismissable = true,\n //@ts-ignore\n animationPreset = 'fade',\n onRequestClose,\n style,\n unmountOnExit,\n}: IOverlayProps) {\n const [exited, setExited] = React.useState(!isOpen);\n\n useKeyboardDismissable({\n enabled: isOpen && isKeyboardDismissable,\n callback: onRequestClose ? onRequestClose : () => {},\n });\n const styleObj = { ...style };\n if (animationPreset === 'slide') {\n styleObj.overflow = 'hidden';\n styleObj.display = 'flex';\n } else {\n styleObj.display = exited && !isOpen ? 'none' : 'flex';\n }\n\n if (unmountOnExit && !isOpen && exited) {\n return null;\n }\n\n if (useRNModal || (useRNModalOnAndroid && Platform.OS === 'android')) {\n return (\n \n \n {children}\n \n \n );\n }\n\n if (unmountOnExit && !isOpen && exited) {\n return null;\n }\n\n return (\n //@ts-ignore\n \n \n {children}\n \n \n );\n}\n","import React from 'react';\nimport { useEffect } from 'react';\nimport { BackHandler } from 'react-native';\n\ntype IParams = {\n enabled?: boolean;\n callback: () => any;\n};\n\nlet keyboardDismissHandlers: Array<() => any> = [];\nexport const keyboardDismissHandlerManager = {\n push: (handler: () => any) => {\n keyboardDismissHandlers.push(handler);\n return () => {\n keyboardDismissHandlers = keyboardDismissHandlers.filter(\n (h) => h !== handler\n );\n };\n },\n length: () => keyboardDismissHandlers.length,\n pop: () => {\n return keyboardDismissHandlers.pop();\n },\n};\n\n/**\n * Handles attaching callback for Escape key listener on web and Back button listener on Android\n */\nexport const useKeyboardDismissable = ({ enabled, callback }: IParams) => {\n React.useEffect(() => {\n let cleanupFn = () => {};\n if (enabled) {\n cleanupFn = keyboardDismissHandlerManager.push(callback);\n } else {\n cleanupFn();\n }\n return () => {\n cleanupFn();\n };\n }, [enabled, callback]);\n\n useBackHandler({ enabled, callback });\n};\n\nexport function useBackHandler({ enabled, callback }: IParams) {\n useEffect(() => {\n let backHandler = () => {\n callback();\n return true;\n };\n if (enabled) {\n BackHandler.addEventListener('hardwareBackPress', backHandler);\n } else {\n BackHandler.removeEventListener('hardwareBackPress', backHandler);\n }\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', backHandler);\n }, [enabled, callback]);\n}\n","import * as React from 'react';\nimport { Keyboard, Platform, KeyboardEvent } from 'react-native';\n\nexport const useKeyboardBottomInset = () => {\n const [bottom, setBottom] = React.useState(0);\n const subscriptions = React.useRef([]);\n\n React.useEffect(() => {\n function onKeyboardChange(e: KeyboardEvent) {\n if (\n e.startCoordinates &&\n e.endCoordinates.screenY <= e.startCoordinates.screenY\n )\n setBottom(e.endCoordinates.height / 2);\n else setBottom(0);\n }\n\n if (Platform.OS === 'ios') {\n subscriptions.current = [\n Keyboard.addListener('keyboardWillChangeFrame', onKeyboardChange),\n ];\n } else {\n subscriptions.current = [\n Keyboard.addListener('keyboardDidHide', onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', onKeyboardChange),\n ];\n }\n return () => {\n subscriptions.current.forEach((subscription) => {\n subscription.remove();\n });\n };\n }, [setBottom, subscriptions]);\n\n return bottom;\n};\n","export const combineContextAndProps = (context: any, props: any) => {\n return {\n ...context,\n ...props,\n };\n};\n","export const ariaAttr = (condition: boolean | undefined) =>\n condition ? true : undefined;\n","import React from 'react';\nimport { useId } from '@react-native-aria/utils';\nimport omit from 'lodash.omit';\nimport type { IFormControlProps } from './types';\nimport { ariaAttr } from '../../../utils';\nimport { ResponsiveQueryContext } from '../../../utils/useResponsiveQuery/ResponsiveQueryProvider';\nimport uniqueId from 'lodash.uniqueid';\n\nexport type IFormControlContext = Omit<\n ReturnType,\n 'htmlProps'\n>;\n\nexport const FormControlContext = React.createContext({});\n\nexport function useFormControlProvider(props: IFormControlProps) {\n const {\n nativeID: idProp,\n isRequired,\n isInvalid,\n isDisabled,\n isReadOnly,\n ...htmlProps\n } = props;\n\n let id = uniqueId();\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n\n if (!disableCSSMediaQueries) {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n id = useId();\n }\n\n // const id = '';\n // Generate all the required ids\n const nativeID = idProp || `field-${id}`;\n\n const labelId = `${nativeID}-label`;\n const feedbackId = `${nativeID}-feedback`;\n const helpTextId = `${nativeID}-helptext`;\n\n /**\n * Track whether the `FormErrorMessage` has been rendered.\n * We use this to append its id the the `aria-describedby` of the `input`.\n */\n const [hasFeedbackText, setHasFeedbackText] = React.useState(false);\n\n /**\n * Track whether the `FormHelperText` has been rendered.\n * We use this to append its id the the `aria-describedby` of the `input`.\n */\n const [hasHelpText, setHasHelpText] = React.useState(false);\n\n const context = {\n isRequired: !!isRequired,\n isInvalid: !!isInvalid,\n isReadOnly: !!isReadOnly,\n isDisabled: !!isDisabled,\n hasFeedbackText,\n setHasFeedbackText,\n hasHelpText,\n setHasHelpText,\n nativeID,\n labelId,\n feedbackId,\n helpTextId,\n htmlProps,\n };\n\n return context;\n}\n\n/**\n * React hook that provides the props that should be spread on to\n * input fields (`input`, `select`, `textarea`, etc.).\n *\n * It provides a convenient way to control a form fields, validation\n * and helper text.\n */\nexport function useFormControl(props: IFormControlProps) {\n const field = useFormControlContext();\n const describedBy: any[] = [];\n\n // Error message must be described first in all scenarios.\n if (field?.hasFeedbackText) describedBy.push(field?.feedbackId);\n if (field?.hasHelpText) describedBy.push(field?.helpTextId);\n const ariaDescribedBy = describedBy.join(' ');\n\n const cleanProps = omit(props, [\n 'isInvalid',\n 'isDisabled',\n 'isReadOnly',\n 'isRequired',\n ]);\n\n let nativeID = props?.nativeID;\n\n if (!nativeID && field?.nativeID) {\n nativeID = `${field?.nativeID}-input`;\n }\n\n return {\n ...cleanProps,\n nativeID: nativeID,\n disabled: props.isDisabled || field?.isDisabled,\n readOnly: props.isReadOnly || field?.isReadOnly,\n required: props.isRequired || field?.isRequired,\n accessibilityInvalid: ariaAttr(props.isInvalid || field?.isInvalid),\n accessibilityRequired: ariaAttr(props.isRequired || field?.isRequired),\n accessibilityReadOnly: ariaAttr(props.isReadOnly || field?.isReadOnly),\n accessibilityDescribedBy: ariaDescribedBy || undefined,\n };\n}\n\nexport const useFormControlContext = () => {\n return (React.useContext(\n FormControlContext\n ) as unknown) as IFormControlContext;\n};\n","import { addTracingExtensions, getMainCarrier } from '@sentry/core';\nimport type { Integration, IntegrationClass } from '@sentry/types';\nimport { dynamicRequire, isNodeEnv, loadModule } from '@sentry/utils';\n\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n\n const packageToIntegrationMapping: Record Integration> = {\n mongodb() {\n const integration = dynamicRequire(module, './node/integrations/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo();\n },\n mongoose() {\n const integration = dynamicRequire(module, './node/integrations/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo();\n },\n mysql() {\n const integration = dynamicRequire(module, './node/integrations/mysql') as {\n Mysql: IntegrationClass;\n };\n return new integration.Mysql();\n },\n pg() {\n const integration = dynamicRequire(module, './node/integrations/postgres') as {\n Postgres: IntegrationClass;\n };\n return new integration.Postgres();\n },\n };\n\n const mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(moduleName => !!loadModule(moduleName))\n .map(pkg => {\n try {\n return packageToIntegrationMapping[pkg]();\n } catch (e) {\n return undefined;\n }\n })\n .filter(p => p) as Integration[];\n\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods(): void {\n addTracingExtensions();\n\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataDom } from '@sentry/types';\n\nimport { uuid4 } from '../misc';\nimport { addNonEnumerableProperty, fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype SentryWrappedTarget = HTMLElement & { _sentryId?: string };\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID: number | undefined;\nlet lastCapturedEventType: string | undefined;\nlet lastCapturedEventTargetId: string | undefined;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addClickKeypressInstrumentationHandler(handler: (data: HandlerDataDom) => void): void {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nexport function instrumentDOM(): void {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW as any)[target] && (WINDOW as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event: Event): boolean {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target as SentryWrappedTarget)._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType: string, target: SentryWrappedTarget | null): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler: (data: HandlerDataDom) => void,\n globalListener: boolean = false,\n): (event: Event) => void {\n return (event: Event & { _sentryCaptured?: true }): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData: HandlerDataDom = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event: Event): SentryWrappedTarget | null {\n try {\n return event.target as SentryWrappedTarget | null;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n","import type { TransportMakeRequestResponse } from '@sentry/types';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n { statusCode, headers }: TransportMakeRequestResponse,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *

,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n","import React, { forwardRef } from 'react';\nimport { View as RNView } from 'react-native';\nimport { usePropsResolution } from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport type { IViewProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledView: any = makeStyledComponent(RNView);\n\nexport const View = forwardRef((props: IViewProps, ref: any) => {\n const { ...resolvedProps } = usePropsResolution('View', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n});\n","import React, { forwardRef } from 'react';\nimport { ScrollView as RNScrollView } from 'react-native';\nimport {\n usePropsResolution,\n useStyledSystemPropsResolver,\n} from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport type { IScrollViewProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledScrollView: any = makeStyledComponent(RNScrollView);\n\nexport const ScrollView = forwardRef((props: IScrollViewProps, ref: any) => {\n const {\n _contentContainerStyle,\n contentContainerStyle,\n ...resolvedProps\n } = usePropsResolution('ScrollView', props, {});\n const resolved_ContentContainerStyle = useStyledSystemPropsResolver(\n _contentContainerStyle || {}\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n );\n});\n","import React, { forwardRef } from 'react';\nimport { FlatList as RNFlatList } from 'react-native';\nimport {\n usePropsResolution,\n useStyledSystemPropsResolver,\n} from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport type { IFlatListProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledFlatList: any = makeStyledComponent(RNFlatList);\n\nconst FlatListComponent = (\n props: IFlatListProps,\n ref: any\n) => {\n const {\n _contentContainerStyle,\n contentContainerStyle,\n ...resolvedProps\n } = usePropsResolution('FlatList', props);\n const resolved_ContentContainerStyle = useStyledSystemPropsResolver(\n _contentContainerStyle || {}\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n );\n};\n\nexport const FlatList = forwardRef(FlatListComponent) as (\n props: IFlatListProps,\n ref: any\n) => any;\n","import React from 'react';\n\nexport function useControllableProp(prop: T | undefined, state: T) {\n const { current: isControlled } = React.useRef(prop !== undefined);\n const value = isControlled && typeof prop !== 'undefined' ? prop : state;\n return [isControlled, value] as const;\n}\n\nexport interface UseControllableStateProps {\n /**\n * The value to used in controlled mode\n */\n value?: T;\n /**\n * The initial value to be used, in uncontrolled mode\n */\n defaultValue?: T | (() => T);\n /**\n * The callback fired when the value changes\n */\n onChange?: (value: T) => void;\n /**\n * The component name (for warnings)\n */\n name?: string;\n}\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nexport function useControllableState(props: UseControllableStateProps) {\n const { value: valueProp, defaultValue, onChange } = props;\n\n const [valueState, setValue] = React.useState(defaultValue as T);\n const isControlled = valueProp !== undefined;\n\n const value = isControlled ? (valueProp as T) : valueState;\n\n const updateValue = React.useCallback(\n (next: any) => {\n const nextValue = typeof next === 'function' ? next(value) : next;\n if (!isControlled) {\n setValue(nextValue);\n }\n onChange && onChange(nextValue);\n },\n [isControlled, onChange, value]\n );\n\n return [value, updateValue] as [T, React.Dispatch>];\n}\n","import React from 'react';\nimport { createIcon } from '../createIcon';\nimport { Path } from '../nbSvg';\n\nexport const CloseIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M12 9.77778L4.22222 2L2 4.22222L9.77778 12L2 19.7778L4.22222 22L12 14.2222L19.7778 22L22 19.7778L14.2222 12L22 4.22222L19.7778 2L12 9.77778Z',\n});\n\nexport const SmallCloseIcon = createIcon({\n viewBox: '0 0 16 16',\n path: (\n \n ),\n});\n","import React from 'react';\nimport { createIcon } from '../createIcon';\nimport { G, Path } from '../nbSvg';\n\nexport const InfoOutlineIcon = createIcon({\n viewBox: '0 0 24 24',\n path: (\n \n \n \n \n \n ),\n});\n\nexport const InfoIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M12 0C9.62663 0 7.30655 0.703788 5.33316 2.02236C3.35977 3.34094 1.8217 5.21509 0.913451 7.4078C0.00519948 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693605 16.6689 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6935 24 14.3734 24 12C23.9966 8.81846 22.7312 5.76821 20.4815 3.51852C18.2318 1.26883 15.1815 0.00344108 12 0ZM12.25 5C12.5467 5 12.8367 5.08797 13.0834 5.25279C13.33 5.41762 13.5223 5.65189 13.6358 5.92597C13.7494 6.20006 13.7791 6.50166 13.7212 6.79263C13.6633 7.08361 13.5204 7.35088 13.3107 7.56066C13.1009 7.77044 12.8336 7.9133 12.5426 7.97118C12.2517 8.02905 11.9501 7.99935 11.676 7.88582C11.4019 7.77229 11.1676 7.58003 11.0028 7.33335C10.838 7.08668 10.75 6.79667 10.75 6.5C10.75 6.10217 10.908 5.72064 11.1893 5.43934C11.4706 5.15803 11.8522 5 12.25 5ZM14.5 18.5H10.5C10.2348 18.5 9.98043 18.3946 9.7929 18.2071C9.60536 18.0196 9.5 17.7652 9.5 17.5C9.5 17.2348 9.60536 16.9804 9.7929 16.7929C9.98043 16.6054 10.2348 16.5 10.5 16.5H11.25C11.3163 16.5 11.3799 16.4737 11.4268 16.4268C11.4737 16.3799 11.5 16.3163 11.5 16.25V11.75C11.5 11.6837 11.4737 11.6201 11.4268 11.5732C11.3799 11.5263 11.3163 11.5 11.25 11.5H10.5C10.2348 11.5 9.98043 11.3946 9.7929 11.2071C9.60536 11.0196 9.5 10.7652 9.5 10.5C9.5 10.2348 9.60536 9.98043 9.7929 9.79289C9.98043 9.60536 10.2348 9.5 10.5 9.5H11.5C12.0304 9.5 12.5391 9.71071 12.9142 10.0858C13.2893 10.4609 13.5 10.9696 13.5 11.5V16.25C13.5 16.3163 13.5263 16.3799 13.5732 16.4268C13.6201 16.4737 13.6837 16.5 13.75 16.5H14.5C14.7652 16.5 15.0196 16.6054 15.2071 16.7929C15.3946 16.9804 15.5 17.2348 15.5 17.5C15.5 17.7652 15.3946 18.0196 15.2071 18.2071C15.0196 18.3946 14.7652 18.5 14.5 18.5Z',\n});\n","import { Overlay } from '../../primitives/Overlay';\nimport { PresenceTransition } from '../Transitions';\nimport VStack from '../../primitives/Stack/VStack';\nimport React, {\n createContext,\n MutableRefObject,\n useState,\n useMemo,\n} from 'react';\nimport { AccessibilityInfo, Platform, SafeAreaView } from 'react-native';\nimport Box from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks';\nimport type { IToastContext, IToastInfo, IToast, IToastProps } from './types';\nimport { useKeyboardBottomInset } from '../../../utils';\n\nconst INSET = 50;\n\nconst POSITIONS = {\n 'top': {\n top: INSET,\n left: 0,\n right: 0,\n },\n 'top-right': {\n top: INSET,\n right: 0,\n },\n 'top-left': {\n top: INSET,\n left: 0,\n },\n 'bottom': {\n bottom: INSET,\n left: 0,\n right: 0,\n },\n 'bottom-left': {\n bottom: INSET,\n left: 0,\n },\n 'bottom-right': {\n bottom: INSET,\n right: 0,\n },\n};\n\nconst initialAnimationOffset = 24;\n\nconst transitionConfig: any = {\n 'bottom': initialAnimationOffset,\n 'top': -initialAnimationOffset,\n 'top-right': -initialAnimationOffset,\n 'top-left': -initialAnimationOffset,\n 'bottom-left': initialAnimationOffset,\n 'bottom-right': initialAnimationOffset,\n};\n\nconst ToastContext = createContext({\n toastInfo: {},\n setToastInfo: () => {},\n setToast: () => {},\n removeToast: () => {},\n hideAll: () => {},\n isActive: () => false,\n visibleToasts: {},\n setVisibleToasts: () => {},\n hideToast: () => {},\n});\n\nconst CustomToast = ({ _overlay, _stack, _presenceTransition }: any) => {\n const { toastInfo, visibleToasts, removeToast } = React.useContext(\n ToastContext\n );\n\n const bottomInset = useKeyboardBottomInset() * 2;\n const getPositions = () => {\n return Object.keys(toastInfo);\n };\n\n let hasToastOnOverlay = false;\n getPositions().map((position) => {\n if (toastInfo[position]?.length > 0) hasToastOnOverlay = true;\n });\n\n return getPositions().length > 0 ? (\n \n {getPositions().map((position: string) => {\n if (Object.keys(POSITIONS).includes(position))\n return (\n \n {\n // @ts-ignore\n toastInfo[position].map((toast: IToast) => (\n {\n if (status === 'exited') {\n removeToast(toast.id);\n toast.config?.onCloseComplete &&\n toast.config?.onCloseComplete();\n }\n }}\n initial={{\n opacity: 0,\n translateY: transitionConfig[position],\n }}\n >\n \n \n {toast.component}\n \n \n \n ))\n }\n \n );\n else return null;\n })}\n \n ) : null;\n};\n\nexport const ToastProvider = ({ children }: { children: any }) => {\n const [toastInfo, setToastInfo] = useState({});\n const [visibleToasts, setVisibleToasts] = useState<\n {\n [key in string]: boolean;\n }\n >({});\n\n const [themeProps] = useState(usePropsResolution('Toast', {}));\n const toastIndex = React.useRef(1);\n\n const hideAll = React.useCallback(() => {\n setVisibleToasts({});\n }, [setVisibleToasts]);\n\n const hideToast = React.useCallback(\n (id: any) => {\n setVisibleToasts((prevVisibleToasts) => ({\n ...prevVisibleToasts,\n [id]: false,\n }));\n },\n [setVisibleToasts]\n );\n\n const isActive = React.useCallback(\n (id: any) => {\n for (const toastPosition of Object.keys(toastInfo)) {\n const positionArray: Array = toastInfo[toastPosition];\n return positionArray.findIndex((toastData) => toastData.id === id) > -1;\n }\n\n return false;\n },\n [toastInfo]\n );\n\n const removeToast = React.useCallback(\n (id: any) => {\n setToastInfo((prev) => {\n for (const toastPosition of Object.keys(prev)) {\n const positionArray: Array = prev[toastPosition];\n const isToastPresent =\n positionArray.findIndex((toastData) => toastData.id === id) > -1;\n\n if (isToastPresent) {\n const newPositionArray = positionArray.filter(\n (item) => item.id !== id\n );\n const temp: any = {};\n temp[toastPosition] = newPositionArray;\n\n const newToastInfo = { ...prev, ...temp };\n return newToastInfo;\n }\n }\n\n return prev;\n });\n },\n [setToastInfo]\n );\n\n const setToast = React.useCallback(\n (props: IToastProps): number => {\n const {\n placement = 'bottom',\n title,\n render,\n id = toastIndex.current++,\n description,\n duration = 5000,\n _title,\n _description,\n accessibilityAnnouncement,\n // @ts-ignore\n avoidKeyboard = false, //eslint-disable-line\n ...rest\n } = props;\n\n let positionToastArray = toastInfo[placement];\n if (!positionToastArray) positionToastArray = [];\n\n let component = null;\n\n if (render) {\n component = render({ id });\n } else {\n component = (\n // Below VStack is the default component where all the direct props spread.\n \n {title}\n {description && (\n \n {description}\n \n )}\n \n );\n }\n\n toastInfo[placement] = [\n ...positionToastArray,\n { component, id, config: props },\n ];\n\n setToastInfo({ ...toastInfo });\n\n setVisibleToasts({ ...visibleToasts, [id]: true });\n if (duration !== null) {\n setTimeout(function () {\n hideToast(id);\n }, duration);\n }\n\n // iOS doesn't support accessibilityLiveRegion\n if (accessibilityAnnouncement && Platform.OS === 'ios') {\n AccessibilityInfo.announceForAccessibility(accessibilityAnnouncement);\n }\n\n return id;\n },\n [themeProps, toastInfo, visibleToasts, hideToast]\n );\n\n const contextValue = React.useMemo(() => {\n return {\n toastInfo,\n setToastInfo,\n setToast,\n removeToast,\n hideAll,\n isActive,\n visibleToasts,\n setVisibleToasts,\n hideToast,\n };\n }, [\n toastInfo,\n setToastInfo,\n setToast,\n removeToast,\n hideAll,\n isActive,\n visibleToasts,\n setVisibleToasts,\n hideToast,\n ]);\n\n return (\n \n {children}\n \n \n );\n};\n\nexport const useToast = () => {\n const { setToast, hideAll, isActive, hideToast } = React.useContext(\n ToastContext\n );\n\n const toast = useMemo(\n () => ({\n show: setToast,\n close: hideToast,\n closeAll: hideAll,\n isActive,\n }),\n [setToast, hideAll, isActive, hideToast]\n );\n\n return toast;\n};\n\nexport type IToastService = ReturnType;\n\nexport const ToastRef = React.createRef() as MutableRefObject;\n\nexport const Toast: IToastService = {\n show: (props: IToastProps) => ToastRef.current?.show(props),\n close: (id: any) => ToastRef.current?.close(id),\n closeAll: () => ToastRef.current?.closeAll(),\n isActive: (id: any) => ToastRef.current?.isActive(id),\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { useSafeAreaInsets } from './SafeAreaContext';\n// prettier-ignore\nconst TOP = 0b1000,\n RIGHT = 0b0100,\n BOTTOM = 0b0010,\n LEFT = 0b0001,\n ALL = 0b1111;\n\n/* eslint-disable no-bitwise */\n\nconst edgeBitmaskMap = {\n top: TOP,\n right: RIGHT,\n bottom: BOTTOM,\n left: LEFT\n};\nexport const SafeAreaView = /*#__PURE__*/React.forwardRef(({\n style = {},\n mode,\n edges,\n ...rest\n}, ref) => {\n const insets = useSafeAreaInsets();\n const edgeBitmask = edges != null ? Array.isArray(edges) ? edges.reduce((acc, edge) => acc | edgeBitmaskMap[edge], 0) : Object.keys(edges).reduce((acc, edge) => acc | edgeBitmaskMap[edge], 0) : ALL;\n const appliedStyle = React.useMemo(() => {\n const insetTop = edgeBitmask & TOP ? insets.top : 0;\n const insetRight = edgeBitmask & RIGHT ? insets.right : 0;\n const insetBottom = edgeBitmask & BOTTOM ? insets.bottom : 0;\n const insetLeft = edgeBitmask & LEFT ? insets.left : 0;\n const flatStyle = StyleSheet.flatten(style);\n if (mode === 'margin') {\n const {\n margin = 0,\n marginVertical = margin,\n marginHorizontal = margin,\n marginTop = marginVertical,\n marginRight = marginHorizontal,\n marginBottom = marginVertical,\n marginLeft = marginHorizontal\n } = flatStyle;\n const marginStyle = {\n marginTop: marginTop + insetTop,\n marginRight: marginRight + insetRight,\n marginBottom: marginBottom + insetBottom,\n marginLeft: marginLeft + insetLeft\n };\n return [style, marginStyle];\n } else {\n const {\n padding = 0,\n paddingVertical = padding,\n paddingHorizontal = padding,\n paddingTop = paddingVertical,\n paddingRight = paddingHorizontal,\n paddingBottom = paddingVertical,\n paddingLeft = paddingHorizontal\n } = flatStyle;\n const paddingStyle = {\n paddingTop: paddingTop + insetTop,\n paddingRight: paddingRight + insetRight,\n paddingBottom: paddingBottom + insetBottom,\n paddingLeft: paddingLeft + insetLeft\n };\n return [style, paddingStyle];\n }\n }, [style, insets, mode, edgeBitmask]);\n return /*#__PURE__*/React.createElement(View, _extends({\n style: appliedStyle\n }, rest, {\n ref: ref\n }));\n});\n//# sourceMappingURL=SafeAreaView.web.js.map","import React, { forwardRef } from 'react';\nimport { StatusBar as RNStatusBar, StatusBarProps } from 'react-native';\n// import type { IStatusBarProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport const StatusBar = forwardRef((props: StatusBarProps, ref: any) => {\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n});\n","export default function getHeaderTitle(options, fallback) {\n return typeof options.headerTitle === 'string' ? options.headerTitle : options.title !== undefined ? options.title : fallback;\n}\n//# sourceMappingURL=getHeaderTitle.js.map","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n return theme;\n}\n//# sourceMappingURL=useTheme.js.map","export const initialWindowMetrics = null;\n\n/**\n * @deprecated\n */\nexport const initialWindowSafeAreaInsets = null;\n//# sourceMappingURL=InitialWindow.js.map","import React, { memo, forwardRef } from 'react';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport Box from '../../primitives/Box';\nimport type { ICenterProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Center = (props: ICenterProps, ref: any) => {\n const resolvedProps = usePropsResolution('Center', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(Center));\n","import React, { forwardRef } from 'react';\nimport { KeyboardAvoidingView as RNKeyboardAvoidingView } from 'react-native';\nimport { usePropsResolution } from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport type { IKeyboardAvoidingViewProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledKeyboardAvoidingView: any = makeStyledComponent(\n RNKeyboardAvoidingView\n);\n\nexport const KeyboardAvoidingView = forwardRef(\n (props: IKeyboardAvoidingViewProps, ref: any) => {\n const { ...resolvedProps } = usePropsResolution(\n 'KeyboardAvoidingView',\n props,\n {}\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n }\n);\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nimport { BaseNavigationContainer, getActionFromState, getPathFromState, getStateFromPath, validatePathConfig } from '@react-navigation/core';\nimport * as React from 'react';\nimport LinkingContext from './LinkingContext';\nimport DefaultTheme from './theming/DefaultTheme';\nimport ThemeProvider from './theming/ThemeProvider';\nimport useBackButton from './useBackButton';\nimport useDocumentTitle from './useDocumentTitle';\nimport useLinking from './useLinking';\nimport useThenable from './useThenable';\nglobal.REACT_NAVIGATION_DEVTOOLS = new WeakMap();\n/**\n * Container component which holds the navigation state designed for React Native apps.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree. When deep link handling is enabled, this will override deep links when specified. Make sure that you don't specify an `initialState` when there's a deep link (`Linking.getInitialURL()`).\n * @param props.onReady Callback which is called after the navigation tree mounts.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.theme Theme object for the navigators.\n * @param props.linking Options for deep linking. Deep link handling is enabled when this prop is provided, unless `linking.enabled` is `false`.\n * @param props.fallback Fallback component to render until we have finished getting initial state when linking is enabled. Defaults to `null`.\n * @param props.documentTitle Options to configure the document title on Web. Updating document title is handled by default unless `documentTitle.enabled` is `false`.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nfunction NavigationContainerInner(_ref, ref) {\n let {\n theme = DefaultTheme,\n linking,\n fallback = null,\n documentTitle,\n onReady,\n ...rest\n } = _ref;\n const isLinkingEnabled = linking ? linking.enabled !== false : false;\n if (linking !== null && linking !== void 0 && linking.config) {\n validatePathConfig(linking.config);\n }\n const refContainer = React.useRef(null);\n useBackButton(refContainer);\n useDocumentTitle(refContainer, documentTitle);\n const {\n getInitialState\n } = useLinking(refContainer, {\n independent: rest.independent,\n enabled: isLinkingEnabled,\n prefixes: [],\n ...linking\n });\n\n // Add additional linking related info to the ref\n // This will be used by the devtools\n React.useEffect(() => {\n if (refContainer.current) {\n REACT_NAVIGATION_DEVTOOLS.set(refContainer.current, {\n get linking() {\n return {\n ...linking,\n enabled: isLinkingEnabled,\n prefixes: (linking === null || linking === void 0 ? void 0 : linking.prefixes) ?? [],\n getStateFromPath: (linking === null || linking === void 0 ? void 0 : linking.getStateFromPath) ?? getStateFromPath,\n getPathFromState: (linking === null || linking === void 0 ? void 0 : linking.getPathFromState) ?? getPathFromState,\n getActionFromState: (linking === null || linking === void 0 ? void 0 : linking.getActionFromState) ?? getActionFromState\n };\n }\n });\n }\n });\n const [isResolved, initialState] = useThenable(getInitialState);\n React.useImperativeHandle(ref, () => refContainer.current);\n const linkingContext = React.useMemo(() => ({\n options: linking\n }), [linking]);\n const isReady = rest.initialState != null || !isLinkingEnabled || isResolved;\n const onReadyRef = React.useRef(onReady);\n React.useEffect(() => {\n onReadyRef.current = onReady;\n });\n React.useEffect(() => {\n if (isReady) {\n var _onReadyRef$current;\n (_onReadyRef$current = onReadyRef.current) === null || _onReadyRef$current === void 0 ? void 0 : _onReadyRef$current.call(onReadyRef);\n }\n }, [isReady]);\n if (!isReady) {\n // This is temporary until we have Suspense for data-fetching\n // Then the fallback will be handled by a parent `Suspense` component\n return fallback;\n }\n return /*#__PURE__*/React.createElement(LinkingContext.Provider, {\n value: linkingContext\n }, /*#__PURE__*/React.createElement(ThemeProvider, {\n value: theme\n }, /*#__PURE__*/React.createElement(BaseNavigationContainer, _extends({}, rest, {\n initialState: rest.initialState == null ? initialState : rest.initialState,\n ref: refContainer\n }))));\n}\nconst NavigationContainer = /*#__PURE__*/React.forwardRef(NavigationContainerInner);\nexport default NavigationContainer;\n//# sourceMappingURL=NavigationContainer.js.map","import { theme as defaultTheme, Theme } from './../theme';\nimport mergeWith from 'lodash.mergewith';\n\nfunction isFunction(value: any): boolean {\n return typeof value === 'function';\n}\n\ntype ThemeUtil = Theme | (Record & {});\n\nexport function extendTheme(\n overrides: T,\n ...restOverrides: T[]\n) {\n function customizer(source: any, override: any) {\n if (isFunction(source)) {\n return (...args: any[]) => {\n const sourceValue = source(...args);\n const overrideValue = isFunction(override)\n ? override(...args)\n : override;\n return mergeWith({}, sourceValue, overrideValue, customizer);\n };\n }\n return undefined;\n }\n\n const finalOverrides = [overrides, ...restOverrides].reduce(\n (prevValue, currentValue) => {\n return mergeWith({}, prevValue, currentValue, customizer);\n },\n defaultTheme\n );\n\n return finalOverrides as T & Theme;\n}\n","import type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn, StackFrame } from '@sentry/types';\nimport { getEventDescription, logger, stringMatchesSomePattern } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\nconst DEFAULT_IGNORE_TRANSACTIONS = [\n /^.*\\/healthcheck$/,\n /^.*\\/healthy$/,\n /^.*\\/live$/,\n /^.*\\/ready$/,\n /^.*\\/heartbeat$/,\n /^.*\\/health$/,\n /^.*\\/healthz$/,\n];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreTransactions: Array;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n disableTransactionDefaults: boolean;\n}\n\nconst INTEGRATION_NAME = 'InboundFilters';\nconst _inboundFiltersIntegration = ((options: Partial = {}) => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n processEvent(event, _hint, client) {\n const clientOptions = client.getOptions();\n const mergedOptions = _mergeOptions(options, clientOptions);\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n}) satisfies IntegrationFn;\n\nexport const inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);\n\n/**\n * Inbound filters configurable by the user.\n * @deprecated Use `inboundFiltersIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const InboundFilters = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n inboundFiltersIntegration,\n) as IntegrationClass void }> & {\n new (\n options?: Partial<{\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreTransactions: Array;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n disableTransactionDefaults: boolean;\n }>,\n ): Integration;\n};\n\nfunction _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [\n ...(internalOptions.ignoreTransactions || []),\n ...(clientOptions.ignoreTransactions || []),\n ...(internalOptions.disableTransactionDefaults ? [] : DEFAULT_IGNORE_TRANSACTIONS),\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\nfunction _shouldDropEvent(event: Event, options: Partial): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event: Event, ignoreTransactions?: Array): boolean {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n const possibleMessages: string[] = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n if (DEBUG_BUILD && possibleMessages.length === 0) {\n logger.error(`Could not extract message for event ${getEventDescription(event)}`);\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","import type { Client, Integration, IntegrationClass, IntegrationFn, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\nimport { getClient } from '../exports';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\nlet originalFunctionToString: () => void;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() as Client) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nexport const functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * @deprecated Use `functionToStringIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const FunctionToString = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n functionToStringIntegration,\n) as IntegrationClass void }>;\n\n// eslint-disable-next-line deprecation/deprecation\nexport type FunctionToString = typeof FunctionToString;\n","import type { BrowserOptions } from '@sentry/browser';\nimport { init as browserInit } from '@sentry/browser';\nimport { applySdkMetadata } from '@sentry/core';\n\n/**\n * Inits the React SDK\n */\nexport function init(options: BrowserOptions): void {\n const opts = {\n ...options,\n };\n\n applySdkMetadata(opts, 'react');\n\n browserInit(opts);\n}\n","import type { Options } from '@sentry/types';\nimport { SDK_VERSION } from '../version';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nexport function applySdkMetadata(options: Options, name: string, names = [name], source = 'npm'): void {\n const metadata = options._metadata || {};\n\n if (!metadata.sdk) {\n metadata.sdk = {\n name: `sentry.javascript.${name}`,\n packages: names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n };\n }\n\n options._metadata = metadata;\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { getClient } from '@sentry/core';\nimport type {\n Event,\n EventHint,\n Exception,\n ParameterizedString,\n Severity,\n SeverityLevel,\n StackFrame,\n StackParser,\n} from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isParameterizedString,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nexport function exceptionFromError(stackParser: StackParser, ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n stackParser: StackParser,\n exception: Record,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception as { values: Exception[] }).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(stackParser: StackParser, ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(\n stackParser: StackParser,\n ex: Error & { framesToPop?: number; stacktrace?: string },\n): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n stackParser: StackParser,\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(stackParser, errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(stackParser, exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(\n stackParser: StackParser,\n message: ParameterizedString,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception: Record,\n { isUnhandledRejection }: { isUnhandledRejection?: boolean },\n): string {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj: unknown): string | undefined | void {\n try {\n const prototype: Prototype | null = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n","import type { browserTracingIntegration } from '@sentry-internal/tracing';\nimport { BrowserTracing } from '@sentry-internal/tracing';\nimport { captureException, withScope } from '@sentry/core';\nimport type { DsnLike, Integration, Mechanism, WrappedFunction } from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getOriginalFunction,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped: WrappedFunction = function (this: unknown): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n *\n * @deprecated This type will be removed in the next major version of the Sentry SDK. `showReportDialog` will still be around, however the `eventId` option will now be required.\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(this: void): void;\n /** Callback after reportDialog closed */\n onClose?(this: void): void;\n}\n\n/**\n * This is a slim shim of `browserTracingIntegration` for the CDN bundles.\n * Since the actual functional integration uses a different code from `BrowserTracing`,\n * we want to avoid shipping both of them in the CDN bundles, as that would blow up the size.\n * Instead, we provide a functional integration with the same API, but the old implementation.\n * This means that it's not possible to register custom routing instrumentation, but that's OK for now.\n * We also don't expose the utilities for this anyhow in the CDN bundles.\n * For users that need custom routing in CDN bundles, they have to continue using `new BrowserTracing()` until v8.\n */\nexport function bundleBrowserTracingIntegration(\n options: Parameters[0] = {},\n): Integration {\n // Migrate some options from the old integration to the new one\n // eslint-disable-next-line deprecation/deprecation\n const opts: ConstructorParameters[0] = options;\n\n if (typeof options.markBackgroundSpan === 'boolean') {\n opts.markBackgroundTransactions = options.markBackgroundSpan;\n }\n\n if (typeof options.instrumentPageLoad === 'boolean') {\n opts.startTransactionOnPageLoad = options.instrumentPageLoad;\n }\n\n if (typeof options.instrumentNavigation === 'boolean') {\n opts.startTransactionOnLocationChange = options.instrumentNavigation;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return new BrowserTracing(opts);\n}\n","import type { Scope } from '@sentry/core';\nimport { applySdkMetadata } from '@sentry/core';\nimport { BaseClient } from '@sentry/core';\nimport type {\n BrowserClientProfilingOptions,\n BrowserClientReplayOptions,\n ClientOptions,\n Event,\n EventHint,\n Options,\n ParameterizedString,\n Severity,\n SeverityLevel,\n UserFeedback,\n} from '@sentry/types';\nimport { createClientReportEnvelope, dsnToString, getSDKSource, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { WINDOW } from './helpers';\nimport type { BrowserTransportOptions } from './transports/types';\nimport { createUserFeedbackEnvelope } from './userfeedback';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\nexport type BrowserOptions = Options &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport type BrowserClientOptions = ClientOptions &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserClientOptions) {\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(options, 'browser', ['browser'], sdkSource);\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n ): PromiseLike {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n */\n public captureUserFeedback(feedback: UserFeedback): void {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n private _flushOutcomes(): void {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n}\n","import type { DsnComponents, EventEnvelope, SdkMetadata, UserFeedback, UserFeedbackItem } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nexport function createUserFeedbackEnvelope(\n feedback: UserFeedback,\n {\n metadata,\n tunnel,\n dsn,\n }: {\n metadata: SdkMetadata | undefined;\n tunnel: string | undefined;\n dsn: DsnComponents | undefined;\n },\n): EventEnvelope {\n const headers: EventEnvelope[0] = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback: UserFeedback): UserFeedbackItem {\n const feedbackHeaders: UserFeedbackItem[0] = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n","import type { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { ConsoleLevel, HandlerDataConsole } from '@sentry/types';\n\nimport { CONSOLE_LEVELS, originalConsoleMethods } from '../logger';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addConsoleInstrumentationHandler(handler: (data: HandlerDataConsole) => void): void {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole(): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: ConsoleLevel): void {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod: () => any): Function {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args: any[]): void {\n const handlerData: HandlerDataConsole = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n","/* eslint-disable deprecation/deprecation */\nimport type { Severity, SeverityLevel } from '@sentry/types';\n\n// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nexport const validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: Severity | SeverityLevel | string): Severity {\n return severityLevelFromString(level) as Severity;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') as SeverityLevel;\n}\n","/* eslint-disable max-lines */\nimport { addBreadcrumb, convertIntegrationFnToClass, defineIntegration, getClient } from '@sentry/core';\nimport type {\n Client,\n Event as SentryEvent,\n HandlerDataConsole,\n HandlerDataDom,\n HandlerDataFetch,\n HandlerDataHistory,\n HandlerDataXhr,\n Integration,\n IntegrationClass,\n IntegrationFn,\n} from '@sentry/types';\nimport type {\n Breadcrumb,\n FetchBreadcrumbData,\n FetchBreadcrumbHint,\n XhrBreadcrumbData,\n XhrBreadcrumbHint,\n} from '@sentry/types/build/types/breadcrumb';\nimport {\n SENTRY_XHR_DATA_KEY,\n addClickKeypressInstrumentationHandler,\n addConsoleInstrumentationHandler,\n addFetchInstrumentationHandler,\n addHistoryInstrumentationHandler,\n addXhrInstrumentationHandler,\n getComponentName,\n getEventDescription,\n htmlTreeAsString,\n logger,\n parseUrl,\n safeJoin,\n severityLevelFromString,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ninterface BreadcrumbsOptions {\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options: Partial = {}) => {\n const _options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n setup(client) {\n if (_options.console) {\n addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n }\n if (_options.dom) {\n addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n }\n if (_options.xhr) {\n addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n }\n if (_options.fetch) {\n addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n }\n if (_options.history) {\n addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n }\n if (_options.sentry && client.on) {\n client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Default Breadcrumbs instrumentations\n *\n * @deprecated Use `breadcrumbsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const Breadcrumbs = convertIntegrationFnToClass(INTEGRATION_NAME, breadcrumbsIntegration) as IntegrationClass<\n Integration & { setup: (client: Client) => void }\n> & {\n new (\n options?: Partial<{\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n }>,\n ): Integration;\n};\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client: Client): (event: SentryEvent) => void {\n return function addSentryBreadcrumb(event: SentryEvent): void {\n if (getClient() !== client) {\n return;\n }\n\n addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n };\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n client: Client,\n dom: BreadcrumbsOptions['dom'],\n): (handlerData: HandlerDataDom) => void {\n return function _innerDomBreadcrumb(handlerData: HandlerDataDom): void {\n if (getClient() !== client) {\n return;\n }\n\n let target;\n let componentName;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event as Event | Node;\n const element = _isEvent(event) ? event.target : event;\n\n target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n componentName = getComponentName(element);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n const breadcrumb: Breadcrumb = {\n category: `ui.${handlerData.name}`,\n message: target,\n };\n\n if (componentName) {\n breadcrumb.data = { 'ui.component_name': componentName };\n }\n\n addBreadcrumb(breadcrumb, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client: Client): (handlerData: HandlerDataConsole) => void {\n return function _consoleBreadcrumb(handlerData: HandlerDataConsole): void {\n if (getClient() !== client) {\n return;\n }\n\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client: Client): (handlerData: HandlerDataXhr) => void {\n return function _xhrBreadcrumb(handlerData: HandlerDataXhr): void {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data: XhrBreadcrumbData = {\n method,\n url,\n status_code,\n };\n\n const hint: XhrBreadcrumbHint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n },\n hint,\n );\n };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client: Client): (handlerData: HandlerDataFetch) => void {\n return function _fetchBreadcrumb(handlerData: HandlerDataFetch): void {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data: FetchBreadcrumbData = handlerData.fetchData;\n const hint: FetchBreadcrumbHint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const response = handlerData.response as Response | undefined;\n const data: FetchBreadcrumbData = {\n ...handlerData.fetchData,\n status_code: response && response.status,\n };\n const hint: FetchBreadcrumbHint = {\n input: handlerData.args,\n response,\n startTimestamp,\n endTimestamp,\n };\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n },\n hint,\n );\n }\n };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client: Client): (handlerData: HandlerDataHistory) => void {\n return function _historyBreadcrumb(handlerData: HandlerDataHistory): void {\n if (getClient() !== client) {\n return;\n }\n\n let from: string | undefined = handlerData.from;\n let to: string | undefined = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = from ? parseUrl(from) : undefined;\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom || !parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n };\n}\n\nfunction _isEvent(event: unknown): event is Event {\n return !!event && !!(event as Record).target;\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Event, Exception, Integration, IntegrationClass, IntegrationFn, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent: Event | undefined;\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/**\n * Deduplication filter.\n * @deprecated Use `dedupeIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const Dedupe = convertIntegrationFnToClass(INTEGRATION_NAME, dedupeIntegration) as IntegrationClass<\n Integration & { processEvent: (event: Event) => Event }\n>;\n\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-expect-error Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { captureEvent, convertIntegrationFnToClass, defineIntegration, getClient } from '@sentry/core';\nimport type {\n Client,\n Event,\n Integration,\n IntegrationClass,\n IntegrationFn,\n Primitive,\n StackParser,\n} from '@sentry/types';\nimport {\n addGlobalErrorInstrumentationHandler,\n addGlobalUnhandledRejectionInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport type { BrowserClient } from '../client';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\ntype GlobalHandlersIntegrations = Record;\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options: Partial = {}) => {\n const _options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n Error.stackTraceLimit = 50;\n },\n setup(client) {\n if (_options.onerror) {\n _installGlobalOnErrorHandler(client);\n globalHandlerLog('onerror');\n }\n if (_options.onunhandledrejection) {\n _installGlobalOnUnhandledRejectionHandler(client);\n globalHandlerLog('onunhandledrejection');\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\n/**\n * Global handlers.\n * @deprecated Use `globalHandlersIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const GlobalHandlers = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n globalHandlersIntegration,\n) as IntegrationClass void }> & {\n new (options?: Partial): Integration;\n};\n\nfunction _installGlobalOnErrorHandler(client: Client): void {\n addGlobalErrorInstrumentationHandler(data => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const { msg, url, line, column, error } = data;\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onerror',\n },\n });\n });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client: Client): void {\n addGlobalUnhandledRejectionInstrumentationHandler(e => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const error = _getUnhandledRejectionError(e as unknown);\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onunhandledrejection',\n },\n });\n });\n}\n\nfunction _getUnhandledRejectionError(error: unknown): unknown {\n if (isPrimitive(error)) {\n return error;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const e = error as any;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n return e.reason;\n }\n\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n return e.detail.reason;\n }\n } catch {} // eslint-disable-line no-empty\n\n return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions(): { stackParser: StackParser; attachStacktrace?: boolean } {\n const client = getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return options;\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Event, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\n\nimport { WINDOW } from '../helpers';\n\nconst INTEGRATION_NAME = 'HttpContext';\n\nconst _httpContextIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n preprocessEvent(event) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n },\n };\n}) satisfies IntegrationFn;\n\nexport const httpContextIntegration = defineIntegration(_httpContextIntegration);\n\n/**\n * HttpContext integration collects information about HTTP request headers.\n * @deprecated Use `httpContextIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const HttpContext = convertIntegrationFnToClass(INTEGRATION_NAME, httpContextIntegration) as IntegrationClass<\n Integration & { preprocessEvent: (event: Event) => void }\n>;\n","import type { Event, EventHint, Exception, ExtendedError, StackParser } from '@sentry/types';\n\nimport { isInstanceOf } from './is';\nimport { truncate } from './string';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n maxValueLimit: number = 250,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): void {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException: Exception | undefined =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException as ExtendedError,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n prevExceptions: Exception[],\n exception: Exception,\n exceptionId: number,\n): Exception[] {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception: Exception, exceptionId: number): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception: Exception,\n source: string,\n exceptionId: number,\n parentId: number | undefined,\n): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions: Exception[], maxValueLength: number): Exception[] {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder';\n\ninterface LinkedErrorsOptions {\n key?: string;\n limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) satisfies IntegrationFn;\n\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\n/**\n * Aggregrate linked errors in an event.\n * @deprecated Use `linkedErrorsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const LinkedErrors = convertIntegrationFnToClass(INTEGRATION_NAME, linkedErrorsIntegration) as IntegrationClass<\n Integration & { preprocessEvent: (event: Event, hint: EventHint, client: Client) => void }\n> & { new (options?: { key?: string; limit?: number }): Integration };\n","import { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { Integration, IntegrationClass, IntegrationFn, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\n\nimport { WINDOW, wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'TryCatch';\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\nconst _browserApiErrorsIntegration = ((options: Partial = {}) => {\n const _options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO: This currently only works for the first client this is setup\n // We may want to adjust this to check for client etc.\n setupOnce() {\n if (_options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (_options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (_options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = _options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n },\n };\n}) satisfies IntegrationFn;\n\nexport const browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n * @deprecated Use `browserApiErrorsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const TryCatch = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n browserApiErrorsIntegration,\n) as IntegrationClass & {\n new (options?: {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n }): Integration;\n};\n\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: VoidFunction,): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","// This was originally forked from https://github.com/csnover/TraceKit, and was largely\n// re - written as part of raven - js.\n//\n// This code was later copied to the JavaScript mono - repo and further modified and\n// refactored over the years.\n\n// Copyright (c) 2013 Onur Can Cakmak onur.cakmak@gmail.com and all TraceKit contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this\n// software and associated documentation files(the 'Software'), to deal in the Software\n// without restriction, including without limitation the rights to use, copy, modify,\n// merge, publish, distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to the following\n// conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies\n// or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\n// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { StackFrame, StackLineParser, StackLineParserFn } from '@sentry/types';\nimport { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { SentryError } from './error';\nimport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array>;\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit?: number): PromiseBuffer {\n const buffer: Array> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): PromiseLike {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","import type {\n Envelope,\n EnvelopeItem,\n EnvelopeItemType,\n Event,\n EventDropReason,\n EventItem,\n InternalBaseTransportOptions,\n Transport,\n TransportMakeRequestResponse,\n TransportRequestExecutor,\n} from '@sentry/types';\nimport type { PromiseBuffer, RateLimits } from '@sentry/utils';\nimport {\n SentryError,\n createEnvelope,\n envelopeItemTypeToDataCategory,\n forEachEnvelopeItem,\n isRateLimited,\n logger,\n makePromiseBuffer,\n resolvedSyncPromise,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n): Transport {\n let rateLimits: RateLimits = {};\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const filteredEnvelopeItems: EnvelopeItem[] = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope: Envelope = createEnvelope(envelope[0], filteredEnvelopeItems as any);\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason: EventDropReason): void => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = (): PromiseLike =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n DEBUG_BUILD && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n DEBUG_BUILD && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n // We use this to identifify if the transport is the base transport\n // TODO (v8): Remove this again as we'll no longer need it\n send.__sentry__baseTransport__ = true;\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item: Envelope[1][number], type: EnvelopeItemType): Event | undefined {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item as EventItem)[1] : undefined;\n}\n","import { isNativeFetch, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\nlet cachedFetchImpl: FetchImpl | undefined = undefined;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n DEBUG_BUILD && logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nexport function clearCachedFetchImplementation(): void {\n cachedFetchImpl = undefined;\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\nimport type { FetchImpl } from './utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n options: BrowserTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): Transport {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request: TransportRequest): PromiseLike {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60_000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedFetchImplementation();\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeXHRTransport(options: BrowserTransportOptions): Transport {\n function makeRequest(request: TransportRequest): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n","import type { Hub } from '@sentry/core';\nimport { functionToStringIntegration, inboundFiltersIntegration } from '@sentry/core';\nimport {\n captureSession,\n getClient,\n getCurrentHub,\n getIntegrationsToSetup,\n getReportDialogEndpoint,\n initAndBind,\n startSession,\n} from '@sentry/core';\nimport type { Integration, Options, UserFeedback } from '@sentry/types';\nimport {\n addHistoryInstrumentationHandler,\n logger,\n stackParserFromStackParserOptions,\n supportsFetch,\n} from '@sentry/utils';\n\nimport type { BrowserClientOptions, BrowserOptions } from './client';\nimport { BrowserClient } from './client';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { ReportDialogOptions } from './helpers';\nimport { WINDOW, wrap as internalWrap } from './helpers';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs';\nimport { dedupeIntegration } from './integrations/dedupe';\nimport { globalHandlersIntegration } from './integrations/globalhandlers';\nimport { httpContextIntegration } from './integrations/httpcontext';\nimport { linkedErrorsIntegration } from './integrations/linkederrors';\nimport { browserApiErrorsIntegration } from './integrations/trycatch';\nimport { defaultStackParser } from './stack-parsers';\nimport { makeFetchTransport, makeXHRTransport } from './transports';\n\n/** @deprecated Use `getDefaultIntegrations(options)` instead. */\nexport const defaultIntegrations = [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n browserApiErrorsIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n];\n\n/** Get the default integrations for the browser SDK. */\nexport function getDefaultIntegrations(_options: Options): Integration[] {\n // We return a copy of the defaultIntegrations here to avoid mutating this\n return [\n // eslint-disable-next-line deprecation/deprecation\n ...defaultIntegrations,\n ];\n}\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\ndeclare const __SENTRY_RELEASE__: string | undefined;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = getDefaultIntegrations(options);\n }\n if (options.release === undefined) {\n // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n if (typeof __SENTRY_RELEASE__ === 'string') {\n options.release = __SENTRY_RELEASE__;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions: BrowserClientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\ntype NewReportDialogOptions = ReportDialogOptions & { eventId: string }; // eslint-disable-line\n\ninterface ShowReportDialogFunction {\n /**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\n (options: NewReportDialogOptions): void;\n\n /**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n *\n * @deprecated Please always pass an `options` argument with `eventId`. The `hub` argument will not be used in the next version of the SDK.\n */\n // eslint-disable-next-line deprecation/deprecation\n (options?: ReportDialogOptions, hub?: Hub): void;\n}\n\nexport const showReportDialog: ShowReportDialogFunction = (\n // eslint-disable-next-line deprecation/deprecation\n options: ReportDialogOptions = {},\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub = getCurrentHub(),\n) => {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n // TODO(v8): Remove this entire if statement. `eventId` will be a required option.\n // eslint-disable-next-line deprecation/deprecation\n if (!options.eventId) {\n // eslint-disable-next-line deprecation/deprecation\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const { onClose } = options;\n if (onClose) {\n const reportDialogClosedMessageHandler = (event: MessageEvent): void => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n};\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @deprecated This function will be removed in v8.\n * It is not part of Sentry's official API and it's easily replaceable by using a try/catch block\n * and calling Sentry.captureException.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// TODO(v8): Remove this function\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n if (typeof WINDOW.document === 'undefined') {\n DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSession({ ignoreDuration: true });\n captureSession();\n\n // We want to create a session for every navigation as well\n addHistoryInstrumentationHandler(({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from !== undefined && from !== to) {\n startSession({ ignoreDuration: true });\n captureSession();\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n */\nexport function captureUserFeedback(feedback: UserFeedback): void {\n const client = getClient();\n if (client) {\n client.captureUserFeedback(feedback);\n }\n}\n","export const transparent = 'rgba(255, 255, 255, 0)';\n\nexport const red50 = '#ffebee';\nexport const red100 = '#ffcdd2';\nexport const red200 = '#ef9a9a';\nexport const red300 = '#e57373';\nexport const red400 = '#ef5350';\nexport const red500 = '#f44336';\nexport const red600 = '#e53935';\nexport const red700 = '#d32f2f';\nexport const red800 = '#c62828';\nexport const red900 = '#b71c1c';\nexport const redA100 = '#ff8a80';\nexport const redA200 = '#ff5252';\nexport const redA400 = '#ff1744';\nexport const redA700 = '#d50000';\n\nexport const pink50 = '#fce4ec';\nexport const pink100 = '#f8bbd0';\nexport const pink200 = '#f48fb1';\nexport const pink300 = '#f06292';\nexport const pink400 = '#ec407a';\nexport const pink500 = '#e91e63';\nexport const pink600 = '#d81b60';\nexport const pink700 = '#c2185b';\nexport const pink800 = '#ad1457';\nexport const pink900 = '#880e4f';\nexport const pinkA100 = '#ff80ab';\nexport const pinkA200 = '#ff4081';\nexport const pinkA400 = '#f50057';\nexport const pinkA700 = '#c51162';\n\nexport const purple50 = '#f3e5f5';\nexport const purple100 = '#e1bee7';\nexport const purple200 = '#ce93d8';\nexport const purple300 = '#ba68c8';\nexport const purple400 = '#ab47bc';\nexport const purple500 = '#9c27b0';\nexport const purple600 = '#8e24aa';\nexport const purple700 = '#7b1fa2';\nexport const purple800 = '#6a1b9a';\nexport const purple900 = '#4a148c';\nexport const purpleA100 = '#ea80fc';\nexport const purpleA200 = '#e040fb';\nexport const purpleA400 = '#d500f9';\nexport const purpleA700 = '#aa00ff';\n\nexport const deepPurple50 = '#ede7f6';\nexport const deepPurple100 = '#d1c4e9';\nexport const deepPurple200 = '#b39ddb';\nexport const deepPurple300 = '#9575cd';\nexport const deepPurple400 = '#7e57c2';\nexport const deepPurple500 = '#673ab7';\nexport const deepPurple600 = '#5e35b1';\nexport const deepPurple700 = '#512da8';\nexport const deepPurple800 = '#4527a0';\nexport const deepPurple900 = '#311b92';\nexport const deepPurpleA100 = '#b388ff';\nexport const deepPurpleA200 = '#7c4dff';\nexport const deepPurpleA400 = '#651fff';\nexport const deepPurpleA700 = '#6200ea';\n\nexport const indigo50 = '#e8eaf6';\nexport const indigo100 = '#c5cae9';\nexport const indigo200 = '#9fa8da';\nexport const indigo300 = '#7986cb';\nexport const indigo400 = '#5c6bc0';\nexport const indigo500 = '#3f51b5';\nexport const indigo600 = '#3949ab';\nexport const indigo700 = '#303f9f';\nexport const indigo800 = '#283593';\nexport const indigo900 = '#1a237e';\nexport const indigoA100 = '#8c9eff';\nexport const indigoA200 = '#536dfe';\nexport const indigoA400 = '#3d5afe';\nexport const indigoA700 = '#304ffe';\n\nexport const blue50 = '#e3f2fd';\nexport const blue100 = '#bbdefb';\nexport const blue200 = '#90caf9';\nexport const blue300 = '#64b5f6';\nexport const blue400 = '#42a5f5';\nexport const blue500 = '#2196f3';\nexport const blue600 = '#1e88e5';\nexport const blue700 = '#1976d2';\nexport const blue800 = '#1565c0';\nexport const blue900 = '#0d47a1';\nexport const blueA100 = '#82b1ff';\nexport const blueA200 = '#448aff';\nexport const blueA400 = '#2979ff';\nexport const blueA700 = '#2962ff';\n\nexport const lightBlue50 = '#e1f5fe';\nexport const lightBlue100 = '#b3e5fc';\nexport const lightBlue200 = '#81d4fa';\nexport const lightBlue300 = '#4fc3f7';\nexport const lightBlue400 = '#29b6f6';\nexport const lightBlue500 = '#03a9f4';\nexport const lightBlue600 = '#039be5';\nexport const lightBlue700 = '#0288d1';\nexport const lightBlue800 = '#0277bd';\nexport const lightBlue900 = '#01579b';\nexport const lightBlueA100 = '#80d8ff';\nexport const lightBlueA200 = '#40c4ff';\nexport const lightBlueA400 = '#00b0ff';\nexport const lightBlueA700 = '#0091ea';\n\nexport const cyan50 = '#e0f7fa';\nexport const cyan100 = '#b2ebf2';\nexport const cyan200 = '#80deea';\nexport const cyan300 = '#4dd0e1';\nexport const cyan400 = '#26c6da';\nexport const cyan500 = '#00bcd4';\nexport const cyan600 = '#00acc1';\nexport const cyan700 = '#0097a7';\nexport const cyan800 = '#00838f';\nexport const cyan900 = '#006064';\nexport const cyanA100 = '#84ffff';\nexport const cyanA200 = '#18ffff';\nexport const cyanA400 = '#00e5ff';\nexport const cyanA700 = '#00b8d4';\n\nexport const teal50 = '#e0f2f1';\nexport const teal100 = '#b2dfdb';\nexport const teal200 = '#80cbc4';\nexport const teal300 = '#4db6ac';\nexport const teal400 = '#26a69a';\nexport const teal500 = '#009688';\nexport const teal600 = '#00897b';\nexport const teal700 = '#00796b';\nexport const teal800 = '#00695c';\nexport const teal900 = '#004d40';\nexport const tealA100 = '#a7ffeb';\nexport const tealA200 = '#64ffda';\nexport const tealA400 = '#1de9b6';\nexport const tealA700 = '#00bfa5';\n\nexport const green50 = '#e8f5e9';\nexport const green100 = '#c8e6c9';\nexport const green200 = '#a5d6a7';\nexport const green300 = '#81c784';\nexport const green400 = '#66bb6a';\nexport const green500 = '#4caf50';\nexport const green600 = '#43a047';\nexport const green700 = '#388e3c';\nexport const green800 = '#2e7d32';\nexport const green900 = '#1b5e20';\nexport const greenA100 = '#b9f6ca';\nexport const greenA200 = '#69f0ae';\nexport const greenA400 = '#00e676';\nexport const greenA700 = '#00c853';\n\nexport const lightGreen50 = '#f1f8e9';\nexport const lightGreen100 = '#dcedc8';\nexport const lightGreen200 = '#c5e1a5';\nexport const lightGreen300 = '#aed581';\nexport const lightGreen400 = '#9ccc65';\nexport const lightGreen500 = '#8bc34a';\nexport const lightGreen600 = '#7cb342';\nexport const lightGreen700 = '#689f38';\nexport const lightGreen800 = '#558b2f';\nexport const lightGreen900 = '#33691e';\nexport const lightGreenA100 = '#ccff90';\nexport const lightGreenA200 = '#b2ff59';\nexport const lightGreenA400 = '#76ff03';\nexport const lightGreenA700 = '#64dd17';\n\nexport const lime50 = '#f9fbe7';\nexport const lime100 = '#f0f4c3';\nexport const lime200 = '#e6ee9c';\nexport const lime300 = '#dce775';\nexport const lime400 = '#d4e157';\nexport const lime500 = '#cddc39';\nexport const lime600 = '#c0ca33';\nexport const lime700 = '#afb42b';\nexport const lime800 = '#9e9d24';\nexport const lime900 = '#827717';\nexport const limeA100 = '#f4ff81';\nexport const limeA200 = '#eeff41';\nexport const limeA400 = '#c6ff00';\nexport const limeA700 = '#aeea00';\n\nexport const yellow50 = '#fffde7';\nexport const yellow100 = '#fff9c4';\nexport const yellow200 = '#fff59d';\nexport const yellow300 = '#fff176';\nexport const yellow400 = '#ffee58';\nexport const yellow500 = '#ffeb3b';\nexport const yellow600 = '#fdd835';\nexport const yellow700 = '#fbc02d';\nexport const yellow800 = '#f9a825';\nexport const yellow900 = '#f57f17';\nexport const yellowA100 = '#ffff8d';\nexport const yellowA200 = '#ffff00';\nexport const yellowA400 = '#ffea00';\nexport const yellowA700 = '#ffd600';\n\nexport const amber50 = '#fff8e1';\nexport const amber100 = '#ffecb3';\nexport const amber200 = '#ffe082';\nexport const amber300 = '#ffd54f';\nexport const amber400 = '#ffca28';\nexport const amber500 = '#ffc107';\nexport const amber600 = '#ffb300';\nexport const amber700 = '#ffa000';\nexport const amber800 = '#ff8f00';\nexport const amber900 = '#ff6f00';\nexport const amberA100 = '#ffe57f';\nexport const amberA200 = '#ffd740';\nexport const amberA400 = '#ffc400';\nexport const amberA700 = '#ffab00';\n\nexport const orange50 = '#fff3e0';\nexport const orange100 = '#ffe0b2';\nexport const orange200 = '#ffcc80';\nexport const orange300 = '#ffb74d';\nexport const orange400 = '#ffa726';\nexport const orange500 = '#ff9800';\nexport const orange600 = '#fb8c00';\nexport const orange700 = '#f57c00';\nexport const orange800 = '#ef6c00';\nexport const orange900 = '#e65100';\nexport const orangeA100 = '#ffd180';\nexport const orangeA200 = '#ffab40';\nexport const orangeA400 = '#ff9100';\nexport const orangeA700 = '#ff6d00';\n\nexport const deepOrange50 = '#fbe9e7';\nexport const deepOrange100 = '#ffccbc';\nexport const deepOrange200 = '#ffab91';\nexport const deepOrange300 = '#ff8a65';\nexport const deepOrange400 = '#ff7043';\nexport const deepOrange500 = '#ff5722';\nexport const deepOrange600 = '#f4511e';\nexport const deepOrange700 = '#e64a19';\nexport const deepOrange800 = '#d84315';\nexport const deepOrange900 = '#bf360c';\nexport const deepOrangeA100 = '#ff9e80';\nexport const deepOrangeA200 = '#ff6e40';\nexport const deepOrangeA400 = '#ff3d00';\nexport const deepOrangeA700 = '#dd2c00';\n\nexport const brown50 = '#efebe9';\nexport const brown100 = '#d7ccc8';\nexport const brown200 = '#bcaaa4';\nexport const brown300 = '#a1887f';\nexport const brown400 = '#8d6e63';\nexport const brown500 = '#795548';\nexport const brown600 = '#6d4c41';\nexport const brown700 = '#5d4037';\nexport const brown800 = '#4e342e';\nexport const brown900 = '#3e2723';\n\nexport const blueGrey50 = '#eceff1';\nexport const blueGrey100 = '#cfd8dc';\nexport const blueGrey200 = '#b0bec5';\nexport const blueGrey300 = '#90a4ae';\nexport const blueGrey400 = '#78909c';\nexport const blueGrey500 = '#607d8b';\nexport const blueGrey600 = '#546e7a';\nexport const blueGrey700 = '#455a64';\nexport const blueGrey800 = '#37474f';\nexport const blueGrey900 = '#263238';\n\nexport const grey50 = '#fafafa';\nexport const grey100 = '#f5f5f5';\nexport const grey200 = '#eeeeee';\nexport const grey300 = '#e0e0e0';\nexport const grey400 = '#bdbdbd';\nexport const grey500 = '#9e9e9e';\nexport const grey600 = '#757575';\nexport const grey700 = '#616161';\nexport const grey800 = '#424242';\nexport const grey900 = '#212121';\n\nexport const black = '#000000';\nexport const white = '#ffffff';\n","import { Platform, PlatformOSType } from 'react-native';\nimport type { Fonts } from '../types';\n\nconst fontConfig = {\n web: {\n regular: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '400' as '400',\n },\n medium: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '500' as '500',\n },\n light: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '300' as '300',\n },\n thin: {\n fontFamily: 'Roboto, \"Helvetica Neue\", Helvetica, Arial, sans-serif',\n fontWeight: '100' as '100',\n },\n },\n ios: {\n regular: {\n fontFamily: 'System',\n fontWeight: '400' as '400',\n },\n medium: {\n fontFamily: 'System',\n fontWeight: '500' as '500',\n },\n light: {\n fontFamily: 'System',\n fontWeight: '300' as '300',\n },\n thin: {\n fontFamily: 'System',\n fontWeight: '100' as '100',\n },\n },\n default: {\n regular: {\n fontFamily: 'sans-serif',\n fontWeight: 'normal' as 'normal',\n },\n medium: {\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal' as 'normal',\n },\n light: {\n fontFamily: 'sans-serif-light',\n fontWeight: 'normal' as 'normal',\n },\n thin: {\n fontFamily: 'sans-serif-thin',\n fontWeight: 'normal' as 'normal',\n },\n },\n};\n\nexport default function configureFonts(config?: {\n [platform in PlatformOSType | 'default']?: Fonts;\n}): Fonts {\n const fonts = Platform.select({ ...fontConfig, ...config }) as Fonts;\n return fonts;\n}\n","import color from 'color';\nimport { black, white, pinkA400 } from './colors';\nimport configureFonts from './fonts';\nimport type { Theme } from '../types';\n\nconst DefaultTheme: Theme = {\n dark: false,\n roundness: 4,\n colors: {\n primary: '#6200ee',\n accent: '#03dac4',\n background: '#f6f6f6',\n surface: white,\n error: '#B00020',\n text: black,\n onSurface: '#000000',\n disabled: color(black).alpha(0.26).rgb().string(),\n placeholder: color(black).alpha(0.54).rgb().string(),\n backdrop: color(black).alpha(0.5).rgb().string(),\n notification: pinkA400,\n },\n fonts: configureFonts(),\n animation: {\n scale: 1.0,\n },\n};\n\nexport default DefaultTheme;\n","import { createTheming } from '@callstack/react-theme-provider';\nimport DefaultTheme from '../styles/DefaultTheme';\n\nexport const { ThemeProvider, withTheme, useTheme } =\n createTheming(DefaultTheme as ReactNativePaper.Theme);\n","import * as React from 'react';\nimport {\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n GestureResponderEvent,\n Platform,\n} from 'react-native';\nimport color from 'color';\nimport { withTheme } from '../../core/theming';\n\nexport type Props = React.ComponentPropsWithRef<\n typeof TouchableWithoutFeedback\n> & {\n /**\n * Whether to render the ripple outside the view bounds.\n */\n borderless?: boolean;\n /**\n * Type of background drawabale to display the feedback (Android).\n * https://reactnative.dev/docs/touchablenativefeedback#background\n */\n background?: Object;\n /**\n * Whether to start the ripple at the center (Web).\n */\n centered?: boolean;\n /**\n * Whether to prevent interaction with the touchable.\n */\n disabled?: boolean;\n /**\n * Function to execute on press. If not set, will cause the touchable to be disabled.\n */\n onPress?: (e: GestureResponderEvent) => void;\n /**\n * Function to execute on long press.\n */\n onLongPress?: (e: GestureResponderEvent) => void;\n /**\n * Color of the ripple effect (Android >= 5.0 and Web).\n */\n rippleColor?: string;\n /**\n * Color of the underlay for the highlight effect (Android < 5.0 and iOS).\n */\n underlayColor?: string;\n /**\n * Content of the `TouchableRipple`.\n */\n children: React.ReactNode;\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * A wrapper for views that should respond to touches.\n * Provides a material \"ink ripple\" interaction effect for supported platforms (>= Android Lollipop).\n * On unsupported platforms, it falls back to a highlight effect.\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { View } from 'react-native';\n * import { Text, TouchableRipple } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}\n * rippleColor=\"rgba(0, 0, 0, .32)\"\n * >\n * Press anywhere\n * \n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableWithoutFeedback props https://reactnative.dev/docs/touchablewithoutfeedback#props\n */\nconst TouchableRipple = ({\n style,\n background: _background,\n borderless = false,\n disabled: disabledProp,\n rippleColor,\n underlayColor: _underlayColor,\n children,\n theme,\n ...rest\n}: Props) => {\n const handlePressIn = (e: any) => {\n const { centered, onPressIn } = rest;\n\n onPressIn?.(e);\n\n const { dark, colors } = theme;\n const calculatedRippleColor =\n rippleColor ||\n color(colors.text)\n .alpha(dark ? 0.32 : 0.2)\n .rgb()\n .string();\n\n const button = e.currentTarget;\n const style = window.getComputedStyle(button);\n const dimensions = button.getBoundingClientRect();\n\n let touchX;\n let touchY;\n\n const { changedTouches, touches } = e.nativeEvent;\n const touch = touches?.[0] ?? changedTouches?.[0];\n\n // If centered or it was pressed using keyboard - enter or space\n if (centered || !touch) {\n touchX = dimensions.width / 2;\n touchY = dimensions.height / 2;\n } else {\n touchX = touch.locationX ?? e.pageX;\n touchY = touch.locationY ?? e.pageY;\n }\n\n // Get the size of the button to determine how big the ripple should be\n const size = centered\n ? // If ripple is always centered, we don't need to make it too big\n Math.min(dimensions.width, dimensions.height) * 1.25\n : // Otherwise make it twice as big so clicking on one end spreads ripple to other\n Math.max(dimensions.width, dimensions.height) * 2;\n\n // Create a container for our ripple effect so we don't need to change the parent's style\n const container = document.createElement('span');\n\n container.setAttribute('data-paper-ripple', '');\n\n Object.assign(container.style, {\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n borderTopLeftRadius: style.borderTopLeftRadius,\n borderTopRightRadius: style.borderTopRightRadius,\n borderBottomRightRadius: style.borderBottomRightRadius,\n borderBottomLeftRadius: style.borderBottomLeftRadius,\n overflow: centered ? 'visible' : 'hidden',\n });\n\n // Create span to show the ripple effect\n const ripple = document.createElement('span');\n\n Object.assign(ripple.style, {\n position: 'absolute',\n pointerEvents: 'none',\n backgroundColor: calculatedRippleColor,\n borderRadius: '50%',\n\n /* Transition configuration */\n transitionProperty: 'transform opacity',\n transitionDuration: `${Math.min(size * 1.5, 350)}ms`,\n transitionTimingFunction: 'linear',\n transformOrigin: 'center',\n\n /* We'll animate these properties */\n transform: 'translate3d(-50%, -50%, 0) scale3d(0.1, 0.1, 0.1)',\n opacity: '0.5',\n\n // Position the ripple where cursor was\n left: `${touchX}px`,\n top: `${touchY}px`,\n width: `${size}px`,\n height: `${size}px`,\n });\n\n // Finally, append it to DOM\n container.appendChild(ripple);\n button.appendChild(container);\n\n // rAF runs in the same frame as the event handler\n // Use double rAF to ensure the transition class is added in next frame\n // This will make sure that the transition animation is triggered\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n Object.assign(ripple.style, {\n transform: 'translate3d(-50%, -50%, 0) scale3d(1, 1, 1)',\n opacity: '1',\n });\n });\n });\n };\n\n const handlePressOut = (e: any) => {\n rest.onPressOut?.(e);\n\n const containers = e.currentTarget.querySelectorAll(\n '[data-paper-ripple]'\n ) as HTMLElement[];\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n containers.forEach((container) => {\n const ripple = container.firstChild as HTMLSpanElement;\n\n Object.assign(ripple.style, {\n transitionDuration: '250ms',\n opacity: 0,\n });\n\n // Finally remove the span after the transition\n setTimeout(() => {\n const { parentNode } = container;\n\n if (parentNode) {\n parentNode.removeChild(container);\n }\n }, 500);\n });\n });\n });\n };\n\n const disabled = disabledProp || !rest.onPress;\n\n return (\n \n \n {React.Children.only(children)}\n \n \n );\n};\n\n/**\n * Whether ripple effect is supported.\n */\nTouchableRipple.supported = true;\n\nconst styles = StyleSheet.create({\n touchable: {\n position: 'relative',\n ...(Platform.OS === 'web' && { cursor: 'pointer' }),\n },\n borderless: {\n overflow: 'hidden',\n },\n});\n\nexport default withTheme(TouchableRipple);\n","import * as React from 'react';\nimport { StyleSheet, Text, Platform, TextProps, ViewProps } from 'react-native';\n\nexport type IconProps = {\n name: string;\n color: string;\n size: number;\n direction: 'rtl' | 'ltr';\n allowFontScaling?: boolean;\n};\n\nlet MaterialCommunityIcons: React.ComponentType<\n TextProps & {\n name: string;\n color: string;\n size: number;\n pointerEvents?: ViewProps['pointerEvents'];\n }\n>;\n\ntry {\n // Optionally require vector-icons\n MaterialCommunityIcons =\n require('react-native-vector-icons/MaterialCommunityIcons').default;\n} catch (e) {\n let isErrorLogged = false;\n\n // Fallback component for icons\n MaterialCommunityIcons = ({ name, color, size, ...rest }) => {\n /* eslint-disable no-console */\n if (!isErrorLogged) {\n if (\n !/(Cannot find module|Module not found|Cannot resolve module)/.test(\n (e as any).message\n )\n ) {\n console.error(e);\n }\n\n console.warn(\n `Tried to use the icon '${name}' in a component from 'react-native-paper', but 'react-native-vector-icons/MaterialCommunityIcons' could not be loaded.`,\n `To remove this warning, try installing 'react-native-vector-icons' or use another method to specify icon: https://callstack.github.io/react-native-paper/icons.html.`\n );\n\n isErrorLogged = true;\n }\n\n return (\n \n □\n \n );\n };\n}\n\nexport const accessibilityProps =\n Platform.OS === 'web'\n ? {\n role: 'img',\n focusable: false,\n }\n : {\n accessibilityElementsHidden: true,\n importantForAccessibility:\n 'no-hide-descendants' as 'no-hide-descendants',\n };\n\nconst defaultIcon = ({\n name,\n color,\n size,\n direction,\n allowFontScaling,\n}: IconProps) => (\n \n);\n\nconst styles = StyleSheet.create({\n icon: {\n backgroundColor: 'transparent',\n },\n});\n\nexport default defaultIcon;\n","import * as React from 'react';\nimport MaterialCommunityIcon, {\n IconProps,\n} from '../components/MaterialCommunityIcon';\n\nexport type Settings = {\n icon: ({ name, color, size, direction }: IconProps) => React.ReactNode;\n};\n\nexport const { Provider, Consumer } = React.createContext({\n icon: MaterialCommunityIcon,\n});\n","import React, { memo, forwardRef } from 'react';\nimport { useToken, usePropsResolution } from '../../../hooks';\nimport type { IIconProps } from './types';\nimport SVGIcon from './SVGIcon';\nimport { Factory } from '../../../factory';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Icon = (props: IIconProps, ref?: any) => {\n const { as, size, ...resolvedProps } = usePropsResolution('Icon', props);\n const tokenizedFontSize = useToken('space', size);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n if (!as) {\n return ;\n }\n const isJSX = React.isValidElement(as);\n const StyledAs = Factory(\n isJSX\n ? (resolvedProps) =>\n React.cloneElement(as, {\n ...resolvedProps,\n //@ts-ignore\n ...as.props,\n })\n : as\n );\n\n return (\n \n );\n};\n\nexport default memo(forwardRef(Icon));\n","import * as React from 'react';\nimport { Animated, StyleSheet, View } from 'react-native';\nimport Icon, { isValidIcon, IconSource, isEqualIcon } from './Icon';\n\nimport { withTheme } from '../core/theming';\n\ntype Props = {\n /**\n * Icon to display for the `CrossFadeIcon`.\n */\n source: IconSource;\n /**\n * Color of the icon.\n */\n color: string;\n /**\n * Size of the icon.\n */\n size: number;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\nconst CrossFadeIcon = ({ color, size, source, theme }: Props) => {\n const [currentIcon, setCurrentIcon] = React.useState(\n () => source\n );\n const [previousIcon, setPreviousIcon] = React.useState(\n null\n );\n const { current: fade } = React.useRef(new Animated.Value(1));\n\n const { scale } = theme.animation;\n\n if (currentIcon !== source) {\n setPreviousIcon(() => currentIcon);\n setCurrentIcon(() => source);\n }\n\n React.useEffect(() => {\n if (isValidIcon(previousIcon) && !isEqualIcon(previousIcon, currentIcon)) {\n fade.setValue(1);\n\n Animated.timing(fade, {\n duration: scale * 200,\n toValue: 0,\n useNativeDriver: true,\n }).start();\n }\n }, [currentIcon, previousIcon, fade, scale]);\n\n const opacityPrev = fade;\n const opacityNext = previousIcon\n ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n })\n : 1;\n\n const rotatePrev = fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['-90deg', '0deg'],\n });\n\n const rotateNext = previousIcon\n ? fade.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '-180deg'],\n })\n : '0deg';\n\n return (\n \n {previousIcon ? (\n \n \n \n ) : null}\n \n \n \n \n );\n};\n\nexport default withTheme(CrossFadeIcon);\n\nconst styles = StyleSheet.create({\n content: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n});\n","import * as React from 'react';\nimport {\n View,\n ViewStyle,\n StyleSheet,\n StyleProp,\n GestureResponderEvent,\n TouchableWithoutFeedback,\n} from 'react-native';\nimport color from 'color';\n\nimport TouchableRipple from './TouchableRipple/TouchableRipple';\nimport Icon, { IconSource } from './Icon';\nimport CrossFadeIcon from './CrossFadeIcon';\nimport { withTheme } from '../core/theming';\n\nimport type { $RemoveChildren } from '../types';\n\nexport type Props = $RemoveChildren & {\n /**\n * Icon to display.\n */\n icon: IconSource;\n /**\n * Color of the icon.\n */\n color?: string;\n /**\n * Size of the icon.\n */\n size?: number;\n /**\n * Whether the button is disabled. A disabled button is greyed out and `onPress` is not called on touch.\n */\n disabled?: boolean;\n /**\n * Whether an icon change is animated.\n */\n animated?: boolean;\n /**\n * Accessibility label for the button. This is read by the screen reader when the user taps the button.\n */\n accessibilityLabel?: string;\n /**\n * Function to execute on press.\n */\n onPress?: (e: GestureResponderEvent) => void;\n style?: StyleProp;\n ref?: React.RefObject;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * An icon button is a button which displays only an icon without a label.\n * By default button has 150% size of the icon.\n *\n *
\n *
\n * \n *
Icon button
\n *
\n *
\n * \n *
Pressed icon button
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { IconButton, Colors } from 'react-native-paper';\n *\n * const MyComponent = () => (\n * console.log('Pressed')}\n * />\n * );\n *\n * export default MyComponent;\n * ```\n *\n * @extends TouchableRipple props https://callstack.github.io/react-native-paper/touchable-ripple.html\n */\nconst IconButton = ({\n icon,\n color: customColor,\n size = 24,\n accessibilityLabel,\n disabled,\n onPress,\n animated = false,\n theme,\n style,\n ...rest\n}: Props) => {\n const iconColor =\n typeof customColor !== 'undefined' ? customColor : theme.colors.text;\n const rippleColor = color(iconColor).alpha(0.32).rgb().string();\n const IconComponent = animated ? CrossFadeIcon : Icon;\n const buttonSize = size * 1.5;\n return (\n \n \n \n \n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n margin: 6,\n },\n disabled: {\n opacity: 0.32,\n },\n});\n\nexport default withTheme(IconButton);\n","import React from 'react';\nimport { View, StyleSheet, StyleProp, ViewStyle } from 'react-native';\n\nimport IconButton from '../../IconButton';\nimport type { $Omit } from '../../../../src/types';\nimport type { IconSource } from '../../Icon';\n\nexport type Props = $Omit<\n React.ComponentProps,\n 'icon' | 'theme' | 'color'\n> & {\n /**\n * Icon to show.\n */\n name: IconSource;\n /**\n * Function to execute on press.\n */\n onPress?: () => void;\n /**\n * Whether the TextInput will focus after onPress.\n */\n forceTextInputFocus?: boolean;\n /**\n * Color of the icon or a function receiving a boolean indicating whether the TextInput is focused and returning the color.\n */\n color?: ((isTextInputFocused: boolean) => string | undefined) | string;\n style?: StyleProp;\n /**\n * @optional\n */\n theme?: ReactNativePaper.Theme;\n};\n\nexport const ICON_SIZE = 24;\nconst ICON_OFFSET = 12;\n\ntype StyleContextType = {\n style: StyleProp;\n isTextInputFocused: boolean;\n forceFocus: () => void;\n};\n\nconst StyleContext = React.createContext({\n style: {},\n isTextInputFocused: false,\n forceFocus: () => {},\n});\n\nconst IconAdornment: React.FunctionComponent<\n {\n testID: string;\n icon: React.ReactNode;\n topPosition: number;\n side: 'left' | 'right';\n } & Omit\n> = ({ icon, topPosition, side, isTextInputFocused, forceFocus }) => {\n const style = {\n top: topPosition,\n [side]: ICON_OFFSET,\n };\n const contextState = { style, isTextInputFocused, forceFocus };\n\n return (\n {icon}\n );\n};\n\n/**\n * A component to render a leading / trailing icon in the TextInput\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState('');\n *\n * return (\n * }\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\n\nconst TextInputIcon = ({\n name,\n onPress,\n forceTextInputFocus,\n color,\n ...rest\n}: Props) => {\n const { style, isTextInputFocused, forceFocus } =\n React.useContext(StyleContext);\n\n const onPressWithFocusControl = React.useCallback(() => {\n if (forceTextInputFocus && !isTextInputFocused) {\n forceFocus();\n }\n onPress?.();\n }, [forceTextInputFocus, forceFocus, isTextInputFocused, onPress]);\n\n return (\n \n \n \n );\n};\nTextInputIcon.displayName = 'TextInput.Icon';\n\nTextInputIcon.defaultProps = {\n forceTextInputFocus: true,\n};\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n width: ICON_SIZE,\n height: ICON_SIZE,\n justifyContent: 'center',\n alignItems: 'center',\n },\n iconButton: {\n margin: 0,\n },\n});\n\nexport default TextInputIcon;\n\n// @component-docs ignore-next-line\nexport { IconAdornment };\n","export enum AdornmentType {\n Icon = 'icon',\n Affix = 'affix',\n}\nexport enum AdornmentSide {\n Right = 'right',\n Left = 'left',\n}\nexport enum InputMode {\n Outlined = 'outlined',\n Flat = 'flat',\n}\n","import React from 'react';\nimport color from 'color';\nimport {\n Text,\n StyleSheet,\n StyleProp,\n TextStyle,\n LayoutChangeEvent,\n Animated,\n ViewStyle,\n} from 'react-native';\n\nimport { withTheme } from '../../../core/theming';\nimport { AdornmentSide } from './enums';\n\nconst AFFIX_OFFSET = 12;\n\nexport type Props = {\n /**\n * Text to show.\n */\n text: string;\n onLayout?: (event: LayoutChangeEvent) => void;\n /**\n * Style that is passed to the Text element.\n */\n textStyle?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\ntype ContextState = {\n topPosition: number | null;\n onLayout?: (event: LayoutChangeEvent) => void;\n visible?: Animated.Value;\n textStyle?: StyleProp;\n side: AdornmentSide;\n paddingHorizontal?: number | string;\n maxFontSizeMultiplier?: number | undefined | null;\n};\n\nconst AffixContext = React.createContext({\n textStyle: { fontFamily: '', color: '' },\n topPosition: null,\n side: AdornmentSide.Left,\n});\n\nconst AffixAdornment: React.FunctionComponent<\n {\n affix: React.ReactNode;\n testID: string;\n } & ContextState\n> = ({\n affix,\n side,\n textStyle,\n topPosition,\n onLayout,\n visible,\n paddingHorizontal,\n maxFontSizeMultiplier,\n}) => {\n return (\n \n {affix}\n \n );\n};\n\n/**\n * A component to render a leading / trailing text in the TextInput\n *\n *
\n *
\n * \n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState('');\n *\n * return (\n * }\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n */\n\nconst TextInputAffix = ({ text, textStyle: labelStyle, theme }: Props) => {\n const {\n textStyle,\n onLayout,\n topPosition,\n side,\n visible,\n paddingHorizontal,\n maxFontSizeMultiplier,\n } = React.useContext(AffixContext);\n const textColor = color(theme.colors.text)\n .alpha(theme.dark ? 0.7 : 0.54)\n .rgb()\n .string();\n\n const offset =\n typeof paddingHorizontal === 'number' ? paddingHorizontal : AFFIX_OFFSET;\n\n const style = {\n top: topPosition,\n [side]: offset,\n } as ViewStyle;\n\n return (\n \n \n {text}\n \n \n );\n};\nTextInputAffix.displayName = 'TextInput.Affix';\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default withTheme(TextInputAffix);\n\n// @component-docs ignore-next-line\nexport { TextInputAffix, AffixAdornment };\n","export const MAXIMIZED_LABEL_FONT_SIZE = 16;\nexport const MINIMIZED_LABEL_FONT_SIZE = 12;\nexport const LABEL_WIGGLE_X_OFFSET = 4;\nexport const LABEL_PADDING_HORIZONTAL = 12;\nexport const ADORNMENT_SIZE = 24;\nexport const ADORNMENT_OFFSET = 12;\nexport const FLAT_INPUT_OFFSET = 8;\n// extra space to avoid overlapping input's text and icon\nexport const OUTLINED_INPUT_OFFSET = 8;\n","import React from 'react';\nimport TextInputIcon, { IconAdornment } from './TextInputIcon';\nimport TextInputAffix, { AffixAdornment } from './TextInputAffix';\nimport { ADORNMENT_OFFSET, OUTLINED_INPUT_OFFSET } from '../constants';\nimport type {\n LayoutChangeEvent,\n TextStyle,\n StyleProp,\n Animated,\n} from 'react-native';\nimport type {\n AdornmentConfig,\n AdornmentStyleAdjustmentForNativeInput,\n} from './types';\nimport { AdornmentSide, AdornmentType, InputMode } from './enums';\n\nexport function getAdornmentConfig({\n left,\n right,\n}: {\n left?: React.ReactNode;\n right?: React.ReactNode;\n}): Array {\n let adornmentConfig: any[] = [];\n if (left || right) {\n [\n { side: AdornmentSide.Left, adornment: left },\n { side: AdornmentSide.Right, adornment: right },\n ].forEach(({ side, adornment }) => {\n if (adornment && React.isValidElement(adornment)) {\n let type;\n if (adornment.type === TextInputAffix) {\n type = AdornmentType.Affix;\n } else if (adornment.type === TextInputIcon) {\n type = AdornmentType.Icon;\n }\n adornmentConfig.push({\n side,\n type,\n });\n }\n });\n }\n\n return adornmentConfig;\n}\n\nexport function getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n leftAffixWidth,\n rightAffixWidth,\n paddingHorizontal,\n inputOffset = 0,\n mode,\n}: {\n inputOffset?: number;\n adornmentConfig: AdornmentConfig[];\n leftAffixWidth: number;\n rightAffixWidth: number;\n mode?: 'outlined' | 'flat';\n paddingHorizontal?: number | string;\n}): AdornmentStyleAdjustmentForNativeInput | {} {\n if (adornmentConfig.length) {\n const adornmentStyleAdjustmentForNativeInput = adornmentConfig.map(\n ({ type, side }: AdornmentConfig) => {\n const isLeftSide = side === AdornmentSide.Left;\n const inputModeAdornemntOffset =\n mode === InputMode.Outlined\n ? ADORNMENT_OFFSET + OUTLINED_INPUT_OFFSET\n : ADORNMENT_OFFSET;\n const paddingKey = `padding${captalize(side)}`;\n const affixWidth = isLeftSide ? leftAffixWidth : rightAffixWidth;\n const padding =\n typeof paddingHorizontal === 'number'\n ? paddingHorizontal\n : inputModeAdornemntOffset;\n const offset = affixWidth + padding;\n\n const isAffix = type === AdornmentType.Affix;\n const marginKey = `margin${captalize(side)}`;\n\n return {\n [marginKey]: isAffix ? 0 : offset,\n [paddingKey]: isAffix ? offset : inputOffset,\n };\n }\n );\n const allStyleAdjustmentsMerged =\n adornmentStyleAdjustmentForNativeInput.reduce(\n (mergedStyles, currentStyle) => {\n return {\n ...mergedStyles,\n ...currentStyle,\n };\n },\n {}\n );\n return allStyleAdjustmentsMerged;\n } else {\n return [{}];\n }\n}\n\nconst captalize = (text: string) =>\n text.charAt(0).toUpperCase() + text.slice(1);\n\nexport interface TextInputAdornmentProps {\n forceFocus: () => void;\n adornmentConfig: AdornmentConfig[];\n topPosition: {\n [AdornmentType.Affix]: {\n [AdornmentSide.Left]: number | null;\n [AdornmentSide.Right]: number | null;\n };\n [AdornmentType.Icon]: number;\n };\n onAffixChange: {\n [AdornmentSide.Left]: (event: LayoutChangeEvent) => void;\n [AdornmentSide.Right]: (event: LayoutChangeEvent) => void;\n };\n left?: React.ReactNode;\n right?: React.ReactNode;\n textStyle?: StyleProp;\n visible?: Animated.Value;\n isTextInputFocused: boolean;\n paddingHorizontal?: number | string;\n maxFontSizeMultiplier?: number | undefined | null;\n}\n\nconst TextInputAdornment: React.FunctionComponent = ({\n adornmentConfig,\n left,\n right,\n onAffixChange,\n textStyle,\n visible,\n topPosition,\n isTextInputFocused,\n forceFocus,\n paddingHorizontal,\n maxFontSizeMultiplier,\n}) => {\n if (adornmentConfig.length) {\n return (\n <>\n {adornmentConfig.map(({ type, side }: AdornmentConfig) => {\n let inputAdornmentComponent;\n if (side === AdornmentSide.Left) {\n inputAdornmentComponent = left;\n } else if (side === AdornmentSide.Right) {\n inputAdornmentComponent = right;\n }\n\n const commonProps = {\n key: side,\n side: side,\n testID: `${side}-${type}-adornment`,\n isTextInputFocused,\n paddingHorizontal,\n };\n if (type === AdornmentType.Icon) {\n return (\n \n );\n } else if (type === AdornmentType.Affix) {\n return (\n \n );\n } else {\n return null;\n }\n })}\n \n );\n } else {\n return null;\n }\n};\n\nexport default TextInputAdornment;\n","import * as React from 'react';\nimport {\n Animated,\n TextStyle,\n I18nManager,\n StyleProp,\n StyleSheet,\n} from 'react-native';\nimport { withTheme } from '../../core/theming';\n\ntype Props = React.ComponentPropsWithRef & {\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\n/**\n * Text component which follows styles from the theme.\n *\n * @extends Text props https://reactnative.dev/docs/text#props\n */\nfunction AnimatedText({ style, theme, ...rest }: Props) {\n const writingDirection = I18nManager.isRTL ? 'rtl' : 'ltr';\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n text: {\n textAlign: 'left',\n },\n});\n\nexport default withTheme(AnimatedText);\n","import React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\nimport AnimatedText from '../../Typography/AnimatedText';\n\nimport type { InputLabelProps } from '../types';\n\nconst InputLabel = (props: InputLabelProps) => {\n const { parentState, labelBackground } = props;\n\n const {\n label,\n error,\n onLayoutAnimatedText,\n hasActiveOutline,\n activeColor,\n placeholderStyle,\n baseLabelTranslateX,\n baseLabelTranslateY,\n font,\n fontSize,\n fontWeight,\n placeholderOpacity,\n wiggleOffsetX,\n labelScale,\n topPosition,\n paddingOffset,\n placeholderColor,\n errorColor,\n labelTranslationXOffset,\n maxFontSizeMultiplier,\n } = props.labelProps;\n\n const labelTranslationX = {\n transform: [\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [baseLabelTranslateX, labelTranslationXOffset || 0],\n }),\n },\n ],\n };\n\n const labelStyle = {\n ...font,\n fontSize,\n fontWeight,\n transform: [\n {\n // Wiggle the label when there's an error\n translateX: parentState.error.interpolate({\n inputRange: [0, 0.5, 1],\n outputRange: [0, parentState.value && error ? wiggleOffsetX : 0, 0],\n }),\n },\n {\n // Move label to top\n translateY: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [baseLabelTranslateY, 0],\n }),\n },\n {\n // Make label smaller\n scale: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [labelScale, 1],\n }),\n },\n ],\n };\n\n return label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n \n {labelBackground?.({\n parentState,\n labelStyle,\n labelProps: props.labelProps,\n maxFontSizeMultiplier: maxFontSizeMultiplier,\n })}\n \n {label}\n \n \n {label}\n \n \n ) : null;\n};\n\nconst styles = StyleSheet.create({\n labelContainer: {\n zIndex: 3,\n },\n});\n\nexport default InputLabel;\n","import * as React from 'react';\nimport { Animated, StyleSheet } from 'react-native';\n\nimport AnimatedText from '../../Typography/AnimatedText';\n\nimport type { LabelBackgroundProps } from '../types';\n\nconst LabelBackground = ({\n parentState,\n labelProps: {\n placeholderStyle,\n baseLabelTranslateX,\n topPosition,\n hasActiveOutline,\n label,\n backgroundColor,\n roundness,\n },\n labelStyle,\n maxFontSizeMultiplier,\n}: LabelBackgroundProps) => {\n const hasFocus = hasActiveOutline || parentState.value;\n const opacity = parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasFocus ? 1 : 0, 0],\n });\n\n const labelTranslationX = {\n transform: [\n {\n translateX: parentState.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [-baseLabelTranslateX, 0],\n }),\n },\n ],\n };\n\n return label\n ? [\n ,\n \n {label}\n ,\n ]\n : null;\n};\n\nexport default LabelBackground;\n\nconst styles = StyleSheet.create({\n view: {\n position: 'absolute',\n top: 6,\n left: 10,\n width: 12,\n },\n outlinedLabel: {\n position: 'absolute',\n left: 18,\n paddingHorizontal: 0,\n color: 'transparent',\n },\n});\n","import type { Animated } from 'react-native';\nimport type { AdornmentConfig } from './Adornment/types';\nimport {\n LABEL_PADDING_HORIZONTAL,\n ADORNMENT_OFFSET,\n ADORNMENT_SIZE,\n FLAT_INPUT_OFFSET,\n} from './constants';\nimport { AdornmentType, AdornmentSide } from './Adornment/enums';\nimport type { TextInputLabelProp } from './types';\n\ntype PaddingProps = {\n height: number | null;\n labelHalfHeight: number;\n multiline: boolean | null;\n dense: boolean | null;\n topPosition: number;\n fontSize: number;\n lineHeight?: number;\n label?: TextInputLabelProp | null;\n scale: number;\n offset: number;\n isAndroid: boolean;\n styles: { paddingTop: number; paddingBottom: number };\n};\n\ntype AdjProps = PaddingProps & {\n pad: number;\n};\n\nexport type Padding = { paddingTop: number; paddingBottom: number };\n\nexport const calculateLabelTopPosition = (\n labelHeight: number,\n height: number = 0,\n optionalPadding: number = 0\n): number => {\n const customHeight = height > 0 ? height : 0;\n\n return Math.floor((customHeight - labelHeight) / 2 + optionalPadding);\n};\n\nexport const calculateInputHeight = (\n labelHeight: number,\n height: any = 0,\n minHeight: number\n): number => {\n const finalHeight = height > 0 ? height : labelHeight;\n\n if (height > 0) return height;\n return finalHeight < minHeight ? minHeight : finalHeight;\n};\n\nexport const calculatePadding = (props: PaddingProps): number => {\n const { height, multiline = false } = props;\n\n let result = 0;\n\n if (multiline) {\n if (height && multiline) {\n result = calculateTextAreaPadding(props);\n } else {\n result = calculateInputPadding(props);\n }\n }\n\n return Math.max(0, result);\n};\n\nconst calculateTextAreaPadding = (props: PaddingProps) => {\n const { dense } = props;\n\n return dense ? 10 : 20;\n};\n\nconst calculateInputPadding = ({\n topPosition,\n fontSize,\n multiline,\n scale,\n dense,\n offset,\n isAndroid,\n}: PaddingProps): number => {\n const refFontSize = scale * fontSize;\n let result = Math.floor(topPosition / 2);\n\n result =\n result +\n Math.floor((refFontSize - fontSize) / 2) -\n (scale < 1 ? offset / 2 : 0);\n\n if (multiline && isAndroid)\n result = Math.min(dense ? offset / 2 : offset, result);\n\n return result;\n};\n\nexport const adjustPaddingOut = ({\n pad,\n multiline,\n label,\n scale,\n height,\n fontSize,\n lineHeight,\n dense,\n offset,\n isAndroid,\n}: AdjProps): Padding => {\n const fontHeight = lineHeight ?? fontSize;\n const refFontHeight = scale * fontSize;\n let result = pad;\n\n if (height && !multiline) {\n return {\n paddingTop: Math.max(0, (height - fontHeight) / 2),\n paddingBottom: Math.max(0, (height - fontHeight) / 2),\n };\n }\n if (!isAndroid && multiline) {\n if (dense) {\n if (label) {\n result += scale < 1 ? Math.min(offset, (refFontHeight / 2) * scale) : 0;\n } else {\n result += 0;\n }\n }\n if (!dense) {\n if (label) {\n result +=\n scale < 1\n ? Math.min(offset, refFontHeight * scale)\n : Math.min(offset / 2, refFontHeight * scale);\n } else {\n result += scale < 1 ? Math.min(offset / 2, refFontHeight * scale) : 0;\n }\n }\n result = Math.floor(result);\n }\n return { paddingTop: result, paddingBottom: result };\n};\n\nexport const adjustPaddingFlat = ({\n pad,\n scale,\n multiline,\n label,\n height,\n offset,\n dense,\n fontSize,\n isAndroid,\n styles,\n}: AdjProps): Padding => {\n let result = pad;\n let topResult = result;\n let bottomResult = result;\n const { paddingTop, paddingBottom } = styles;\n const refFontSize = scale * fontSize;\n\n if (!multiline) {\n // do not modify padding if input is not multiline\n if (label) {\n // return const style for flat input with label\n return { paddingTop, paddingBottom };\n }\n // return pad for flat input without label\n return { paddingTop: result, paddingBottom: result };\n }\n\n if (label) {\n // add paddings passed from styles\n topResult = paddingTop;\n bottomResult = paddingBottom;\n\n // adjust top padding for iOS\n if (!isAndroid) {\n if (dense) {\n topResult +=\n scale < 1\n ? Math.min(result, refFontSize * scale) - result / 2\n : Math.min(result, refFontSize * scale) - result / 2;\n }\n if (!dense) {\n topResult +=\n scale < 1\n ? Math.min(offset / 2, refFontSize * scale)\n : Math.min(result, refFontSize * scale) - offset / 2;\n }\n }\n topResult = Math.floor(topResult);\n } else {\n if (height) {\n // center text when height is passed\n return {\n paddingTop: Math.max(0, (height - fontSize) / 2),\n paddingBottom: Math.max(0, (height - fontSize) / 2),\n };\n }\n // adjust paddings for iOS if no label\n if (!isAndroid) {\n if (dense) {\n result +=\n scale < 1\n ? Math.min(offset / 2, (fontSize / 2) * scale)\n : Math.min(offset / 2, scale);\n }\n if (!dense) {\n result +=\n scale < 1\n ? Math.min(offset, fontSize * scale)\n : Math.min(fontSize, (offset / 2) * scale);\n }\n\n result = Math.floor(result);\n topResult = result;\n bottomResult = result;\n }\n }\n\n return {\n paddingTop: Math.max(0, topResult),\n paddingBottom: Math.max(0, bottomResult),\n };\n};\n\nexport const interpolatePlaceholder = (\n labeled: Animated.Value,\n hasActiveOutline: boolean | undefined\n) =>\n labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 0 : 1, 1],\n });\n\nexport function calculateFlatAffixTopPosition({\n height,\n paddingTop,\n paddingBottom,\n affixHeight,\n}: {\n height: number;\n paddingTop: number;\n paddingBottom: number;\n affixHeight: number;\n}): number {\n const inputHeightWithoutPadding = height - paddingTop - paddingBottom;\n\n const halfOfTheInputHeightDecreasedByAffixHeight =\n (inputHeightWithoutPadding - affixHeight) / 2;\n\n return paddingTop + halfOfTheInputHeightDecreasedByAffixHeight;\n}\n\nexport function calculateOutlinedIconAndAffixTopPosition({\n height,\n affixHeight,\n labelYOffset,\n}: {\n height: number;\n affixHeight: number;\n labelYOffset: number;\n}): number {\n return (height - affixHeight + labelYOffset) / 2;\n}\n\nexport const calculateFlatInputHorizontalPadding = ({\n adornmentConfig,\n}: {\n adornmentConfig: AdornmentConfig[];\n}) => {\n let paddingLeft = LABEL_PADDING_HORIZONTAL;\n let paddingRight = LABEL_PADDING_HORIZONTAL;\n\n adornmentConfig.forEach(({ type, side }) => {\n if (type === AdornmentType.Icon && side === AdornmentSide.Left) {\n paddingLeft = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (side === AdornmentSide.Right) {\n if (type === AdornmentType.Affix) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (type === AdornmentType.Icon) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n }\n }\n });\n\n return { paddingLeft, paddingRight };\n};\n","import * as React from 'react';\nimport {\n View,\n TextInput as NativeTextInput,\n StyleSheet,\n I18nManager,\n Platform,\n TextStyle,\n ColorValue,\n} from 'react-native';\nimport color from 'color';\nimport TextInputAdornment, {\n getAdornmentConfig,\n getAdornmentStyleAdjustmentForNativeInput,\n TextInputAdornmentProps,\n} from './Adornment/TextInputAdornment';\n\nimport InputLabel from './Label/InputLabel';\nimport LabelBackground from './Label/LabelBackground';\nimport type { RenderProps, ChildTextInputProps } from './types';\n\nimport {\n MAXIMIZED_LABEL_FONT_SIZE,\n MINIMIZED_LABEL_FONT_SIZE,\n LABEL_WIGGLE_X_OFFSET,\n ADORNMENT_SIZE,\n ADORNMENT_OFFSET,\n} from './constants';\n\nimport {\n calculateLabelTopPosition,\n calculateInputHeight,\n calculatePadding,\n adjustPaddingOut,\n Padding,\n interpolatePlaceholder,\n calculateOutlinedIconAndAffixTopPosition,\n} from './helpers';\nimport { AdornmentType, AdornmentSide } from './Adornment/enums';\n\nconst OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -6;\nconst LABEL_PADDING_TOP = 8;\nconst MIN_HEIGHT = 64;\nconst MIN_DENSE_HEIGHT = 48;\nconst INPUT_PADDING_HORIZONTAL = 14;\n\nconst TextInputOutlined = ({\n disabled = false,\n editable = true,\n label,\n error = false,\n selectionColor,\n underlineColor: _underlineColor,\n outlineColor: customOutlineColor,\n activeOutlineColor,\n dense,\n style,\n theme,\n render = (props: RenderProps) => ,\n multiline = false,\n parentState,\n innerRef,\n onFocus,\n forceFocus,\n onBlur,\n onChangeText,\n onLayoutAnimatedText,\n onLeftAffixLayoutChange,\n onRightAffixLayoutChange,\n left,\n right,\n placeholderTextColor,\n ...rest\n}: ChildTextInputProps) => {\n const adornmentConfig = getAdornmentConfig({ left, right });\n\n const { colors, fonts } = theme;\n const font = fonts.regular;\n const hasActiveOutline = parentState.focused || error;\n\n const {\n fontSize: fontSizeStyle,\n fontWeight,\n fontVariant,\n lineHeight,\n height,\n backgroundColor = colors.background,\n textAlign,\n ...viewStyle\n } = (StyleSheet.flatten(style) || {}) as TextStyle;\n const fontSize = fontSizeStyle || MAXIMIZED_LABEL_FONT_SIZE;\n\n let inputTextColor, activeColor, outlineColor, placeholderColor, errorColor;\n\n if (disabled) {\n const isTransparent = color(customOutlineColor).alpha() === 0;\n inputTextColor = activeColor = color(colors.text)\n .alpha(0.54)\n .rgb()\n .string();\n placeholderColor = colors.disabled;\n outlineColor = isTransparent ? customOutlineColor : colors.disabled;\n } else {\n inputTextColor = colors.text;\n activeColor = error ? colors.error : activeOutlineColor || colors.primary;\n placeholderColor = colors.placeholder;\n outlineColor = customOutlineColor || colors.placeholder;\n errorColor = colors.error;\n }\n\n const labelScale = MINIMIZED_LABEL_FONT_SIZE / fontSize;\n const fontScale = MAXIMIZED_LABEL_FONT_SIZE / fontSize;\n\n const labelWidth = parentState.labelLayout.width;\n const labelHeight = parentState.labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const baseLabelTranslateX =\n (I18nManager.isRTL ? 1 : -1) *\n (labelHalfWidth -\n (labelScale * labelWidth) / 2 -\n (fontSize - MINIMIZED_LABEL_FONT_SIZE) * labelScale);\n\n let labelTranslationXOffset = 0;\n const isAdornmentLeftIcon = adornmentConfig.some(\n ({ side, type }) =>\n side === AdornmentSide.Left && type === AdornmentType.Icon\n );\n if (isAdornmentLeftIcon) {\n labelTranslationXOffset =\n (I18nManager.isRTL ? -1 : 1) * (ADORNMENT_SIZE + ADORNMENT_OFFSET - 8);\n }\n\n const minInputHeight =\n (dense ? MIN_DENSE_HEIGHT : MIN_HEIGHT) - LABEL_PADDING_TOP;\n\n const inputHeight = calculateInputHeight(labelHeight, height, minInputHeight);\n\n const topPosition = calculateLabelTopPosition(\n labelHeight,\n inputHeight,\n LABEL_PADDING_TOP\n );\n\n if (height && typeof height !== 'number') {\n // eslint-disable-next-line\n console.warn('Currently we support only numbers in height prop');\n }\n\n const paddingSettings = {\n height: height ? +height : null,\n labelHalfHeight,\n offset: LABEL_PADDING_TOP,\n multiline: multiline ? multiline : null,\n dense: dense ? dense : null,\n topPosition,\n fontSize,\n lineHeight,\n label,\n scale: fontScale,\n isAndroid: Platform.OS === 'android',\n styles: StyleSheet.flatten(\n dense ? styles.inputOutlinedDense : styles.inputOutlined\n ) as Padding,\n };\n\n const pad = calculatePadding(paddingSettings);\n\n const paddingOut = adjustPaddingOut({ ...paddingSettings, pad });\n\n const baseLabelTranslateY =\n -labelHalfHeight - (topPosition + OUTLINE_MINIMIZED_LABEL_Y_OFFSET);\n\n const placeholderOpacity = hasActiveOutline\n ? interpolatePlaceholder(parentState.labeled, hasActiveOutline)\n : parentState.labelLayout.measured\n ? 1\n : 0;\n\n const labelProps = {\n label,\n onLayoutAnimatedText,\n placeholderOpacity,\n error,\n placeholderStyle: styles.placeholder,\n baseLabelTranslateY,\n baseLabelTranslateX,\n font,\n fontSize,\n fontWeight,\n labelScale,\n wiggleOffsetX: LABEL_WIGGLE_X_OFFSET,\n topPosition,\n hasActiveOutline,\n activeColor,\n placeholderColor,\n backgroundColor: backgroundColor as ColorValue,\n errorColor,\n labelTranslationXOffset,\n roundness: theme.roundness,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n\n const minHeight = (height ||\n (dense ? MIN_DENSE_HEIGHT : MIN_HEIGHT)) as number;\n\n const { leftLayout, rightLayout } = parentState;\n\n const leftAffixTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: minHeight,\n affixHeight: leftLayout.height || 0,\n labelYOffset: -OUTLINE_MINIMIZED_LABEL_Y_OFFSET,\n });\n\n const rightAffixTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: minHeight,\n affixHeight: rightLayout.height || 0,\n labelYOffset: -OUTLINE_MINIMIZED_LABEL_Y_OFFSET,\n });\n const iconTopPosition = calculateOutlinedIconAndAffixTopPosition({\n height: minHeight,\n affixHeight: ADORNMENT_SIZE,\n labelYOffset: -OUTLINE_MINIMIZED_LABEL_Y_OFFSET,\n });\n\n const rightAffixWidth = right\n ? rightLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const leftAffixWidth = left\n ? leftLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const adornmentStyleAdjustmentForNativeInput =\n getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n rightAffixWidth,\n leftAffixWidth,\n mode: 'outlined',\n });\n const affixTopPosition = {\n [AdornmentSide.Left]: leftAffixTopPosition,\n [AdornmentSide.Right]: rightAffixTopPosition,\n };\n const onAffixChange = {\n [AdornmentSide.Left]: onLeftAffixLayoutChange,\n [AdornmentSide.Right]: onRightAffixLayoutChange,\n };\n\n let adornmentProps: TextInputAdornmentProps = {\n adornmentConfig,\n forceFocus,\n topPosition: {\n [AdornmentType.Icon]: iconTopPosition,\n [AdornmentType.Affix]: affixTopPosition,\n },\n onAffixChange,\n isTextInputFocused: parentState.focused,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n if (adornmentConfig.length) {\n adornmentProps = {\n ...adornmentProps,\n left,\n right,\n textStyle: { ...font, fontSize, fontWeight },\n visible: parentState.labeled,\n };\n }\n\n return (\n \n {/*\n Render the outline separately from the container\n This is so that the label can overlap the outline\n Otherwise the border will cut off the label on Android\n */}\n \n \n \n \n {render?.({\n testID: 'text-input-outlined',\n ...rest,\n ref: innerRef,\n onChangeText,\n placeholder: label ? parentState.placeholder : rest.placeholder,\n placeholderTextColor: placeholderTextColor || placeholderColor,\n editable: !disabled && editable,\n selectionColor:\n typeof selectionColor === 'undefined'\n ? activeColor\n : selectionColor,\n onFocus,\n onBlur,\n underlineColorAndroid: 'transparent',\n multiline,\n style: [\n styles.input,\n !multiline || (multiline && height)\n ? { height: inputHeight }\n : {},\n paddingOut,\n {\n ...font,\n fontSize,\n fontWeight,\n fontVariant,\n color: inputTextColor,\n textAlignVertical: multiline ? 'top' : 'center',\n textAlign: textAlign\n ? textAlign\n : I18nManager.isRTL\n ? 'right'\n : 'left',\n },\n Platform.OS === 'web' && { outline: 'none' },\n adornmentStyleAdjustmentForNativeInput,\n ],\n } as RenderProps)}\n \n \n \n \n );\n};\n\nexport default TextInputOutlined;\n\ntype OutlineProps = {\n activeColor: string;\n hasActiveOutline?: boolean;\n focused?: boolean;\n outlineColor?: string;\n backgroundColor: ColorValue;\n theme: ReactNativePaper.Theme;\n};\n\nconst Outline = ({\n theme,\n hasActiveOutline,\n activeColor,\n outlineColor,\n focused,\n backgroundColor,\n}: OutlineProps) => (\n \n);\n\nconst styles = StyleSheet.create({\n placeholder: {\n position: 'absolute',\n left: 0,\n paddingHorizontal: INPUT_PADDING_HORIZONTAL,\n },\n outline: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 6,\n bottom: 0,\n },\n labelContainer: {\n paddingBottom: 0,\n },\n input: {\n flexGrow: 1,\n paddingHorizontal: INPUT_PADDING_HORIZONTAL,\n margin: 0,\n zIndex: 1,\n },\n inputOutlined: {\n paddingTop: 8,\n paddingBottom: 8,\n },\n inputOutlinedDense: {\n paddingTop: 4,\n paddingBottom: 4,\n },\n});\n","import * as React from 'react';\nimport {\n View,\n Animated,\n TextInput as NativeTextInput,\n StyleSheet,\n I18nManager,\n Platform,\n TextStyle,\n} from 'react-native';\nimport color from 'color';\nimport InputLabel from './Label/InputLabel';\nimport TextInputAdornment, {\n TextInputAdornmentProps,\n} from './Adornment/TextInputAdornment';\nimport type { RenderProps, ChildTextInputProps } from './types';\n\nimport {\n MAXIMIZED_LABEL_FONT_SIZE,\n MINIMIZED_LABEL_FONT_SIZE,\n LABEL_WIGGLE_X_OFFSET,\n ADORNMENT_SIZE,\n FLAT_INPUT_OFFSET,\n} from './constants';\n\nimport {\n calculateLabelTopPosition,\n calculateInputHeight,\n calculatePadding,\n adjustPaddingFlat,\n Padding,\n interpolatePlaceholder,\n calculateFlatAffixTopPosition,\n calculateFlatInputHorizontalPadding,\n} from './helpers';\nimport {\n getAdornmentConfig,\n getAdornmentStyleAdjustmentForNativeInput,\n} from './Adornment/TextInputAdornment';\nimport { AdornmentSide, AdornmentType, InputMode } from './Adornment/enums';\n\nconst MINIMIZED_LABEL_Y_OFFSET = -18;\n\nconst LABEL_PADDING_TOP = 30;\nconst LABEL_PADDING_TOP_DENSE = 24;\nconst MIN_HEIGHT = 64;\nconst MIN_DENSE_HEIGHT_WL = 52;\nconst MIN_DENSE_HEIGHT = 40;\n\nconst TextInputFlat = ({\n disabled = false,\n editable = true,\n label,\n error = false,\n selectionColor,\n underlineColor,\n activeUnderlineColor,\n dense,\n style,\n theme,\n render = (props: RenderProps) => ,\n multiline = false,\n parentState,\n innerRef,\n onFocus,\n forceFocus,\n onBlur,\n onChangeText,\n onLayoutAnimatedText,\n onLeftAffixLayoutChange,\n onRightAffixLayoutChange,\n left,\n right,\n placeholderTextColor,\n ...rest\n}: ChildTextInputProps) => {\n const isAndroid = Platform.OS === 'android';\n const { colors, fonts } = theme;\n const font = fonts.regular;\n const hasActiveOutline = parentState.focused || error;\n\n const {\n fontSize: fontSizeStyle,\n fontWeight,\n fontVariant,\n height,\n paddingHorizontal,\n textAlign,\n ...viewStyle\n } = (StyleSheet.flatten(style) || {}) as TextStyle;\n const fontSize = fontSizeStyle || MAXIMIZED_LABEL_FONT_SIZE;\n\n const isPaddingHorizontalPassed =\n paddingHorizontal !== undefined && typeof paddingHorizontal === 'number';\n\n const adornmentConfig = getAdornmentConfig({\n left,\n right,\n });\n\n let { paddingLeft, paddingRight } = calculateFlatInputHorizontalPadding({\n adornmentConfig,\n });\n\n if (isPaddingHorizontalPassed) {\n paddingLeft = paddingHorizontal as number;\n paddingRight = paddingHorizontal as number;\n }\n\n const { leftLayout, rightLayout } = parentState;\n\n const rightAffixWidth = right\n ? rightLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const leftAffixWidth = left\n ? leftLayout.width || ADORNMENT_SIZE\n : ADORNMENT_SIZE;\n\n const adornmentStyleAdjustmentForNativeInput =\n getAdornmentStyleAdjustmentForNativeInput({\n adornmentConfig,\n rightAffixWidth,\n leftAffixWidth,\n paddingHorizontal,\n inputOffset: FLAT_INPUT_OFFSET,\n mode: InputMode.Flat,\n });\n\n let inputTextColor,\n activeColor,\n underlineColorCustom,\n placeholderColor,\n errorColor;\n\n if (disabled) {\n inputTextColor = activeColor = color(colors.text)\n .alpha(0.54)\n .rgb()\n .string();\n placeholderColor = colors.disabled;\n underlineColorCustom = 'transparent';\n } else {\n inputTextColor = colors.text;\n activeColor = error ? colors.error : activeUnderlineColor || colors.primary;\n placeholderColor = colors.placeholder;\n errorColor = colors.error;\n underlineColorCustom = underlineColor || colors.disabled;\n }\n\n const containerStyle = {\n backgroundColor: theme.dark\n ? color(colors.background).lighten(0.24).rgb().string()\n : color(colors.background).darken(0.06).rgb().string(),\n borderTopLeftRadius: theme.roundness,\n borderTopRightRadius: theme.roundness,\n };\n\n const labelScale = MINIMIZED_LABEL_FONT_SIZE / fontSize;\n const fontScale = MAXIMIZED_LABEL_FONT_SIZE / fontSize;\n\n const labelWidth = parentState.labelLayout.width;\n const labelHeight = parentState.labelLayout.height;\n const labelHalfWidth = labelWidth / 2;\n const labelHalfHeight = labelHeight / 2;\n\n const baseLabelTranslateX =\n (I18nManager.isRTL ? 1 : -1) *\n (labelHalfWidth - (labelScale * labelWidth) / 2) +\n (1 - labelScale) * (I18nManager.isRTL ? -1 : 1) * paddingLeft;\n\n const minInputHeight = dense\n ? (label ? MIN_DENSE_HEIGHT_WL : MIN_DENSE_HEIGHT) - LABEL_PADDING_TOP_DENSE\n : MIN_HEIGHT - LABEL_PADDING_TOP;\n\n const inputHeight = calculateInputHeight(labelHeight, height, minInputHeight);\n\n const topPosition = calculateLabelTopPosition(\n labelHeight,\n inputHeight,\n multiline && height ? 0 : !height ? minInputHeight / 2 : 0\n );\n\n if (height && typeof height !== 'number') {\n // eslint-disable-next-line\n console.warn('Currently we support only numbers in height prop');\n }\n\n const paddingSettings = {\n height: height ? +height : null,\n labelHalfHeight,\n offset: FLAT_INPUT_OFFSET,\n multiline: multiline ? multiline : null,\n dense: dense ? dense : null,\n topPosition,\n fontSize,\n label,\n scale: fontScale,\n isAndroid,\n styles: StyleSheet.flatten(\n dense ? styles.inputFlatDense : styles.inputFlat\n ) as Padding,\n };\n\n const pad = calculatePadding(paddingSettings);\n\n const paddingFlat = adjustPaddingFlat({\n ...paddingSettings,\n pad,\n });\n\n const baseLabelTranslateY =\n -labelHalfHeight - (topPosition + MINIMIZED_LABEL_Y_OFFSET);\n\n const placeholderOpacity = hasActiveOutline\n ? interpolatePlaceholder(parentState.labeled, hasActiveOutline)\n : parentState.labelLayout.measured\n ? 1\n : 0;\n\n const minHeight =\n height ||\n (dense ? (label ? MIN_DENSE_HEIGHT_WL : MIN_DENSE_HEIGHT) : MIN_HEIGHT);\n\n const flatHeight =\n inputHeight +\n (!height ? (dense ? LABEL_PADDING_TOP_DENSE : LABEL_PADDING_TOP) : 0);\n\n const iconTopPosition = (flatHeight - ADORNMENT_SIZE) / 2;\n\n const leftAffixTopPosition = leftLayout.height\n ? calculateFlatAffixTopPosition({\n height: flatHeight,\n ...paddingFlat,\n affixHeight: leftLayout.height,\n })\n : null;\n\n const rightAffixTopPosition = rightLayout.height\n ? calculateFlatAffixTopPosition({\n height: flatHeight,\n ...paddingFlat,\n affixHeight: rightLayout.height,\n })\n : null;\n\n const labelProps = {\n label,\n onLayoutAnimatedText,\n placeholderOpacity,\n error,\n placeholderStyle: styles.placeholder,\n baseLabelTranslateY,\n baseLabelTranslateX,\n font,\n fontSize,\n fontWeight,\n labelScale,\n wiggleOffsetX: LABEL_WIGGLE_X_OFFSET,\n topPosition,\n paddingOffset: isAndroid\n ? {\n paddingLeft: I18nManager.isRTL ? paddingRight : paddingLeft,\n paddingRight: I18nManager.isRTL ? paddingLeft : paddingRight,\n }\n : { paddingRight, paddingLeft },\n hasActiveOutline,\n activeColor,\n placeholderColor,\n errorColor,\n roundness: theme.roundness,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n const affixTopPosition = {\n [AdornmentSide.Left]: leftAffixTopPosition,\n [AdornmentSide.Right]: rightAffixTopPosition,\n };\n const onAffixChange = {\n [AdornmentSide.Left]: onLeftAffixLayoutChange,\n [AdornmentSide.Right]: onRightAffixLayoutChange,\n };\n\n let adornmentProps: TextInputAdornmentProps = {\n paddingHorizontal,\n adornmentConfig,\n forceFocus,\n topPosition: {\n [AdornmentType.Affix]: affixTopPosition,\n [AdornmentType.Icon]: iconTopPosition,\n },\n onAffixChange,\n isTextInputFocused: parentState.focused,\n maxFontSizeMultiplier: rest.maxFontSizeMultiplier,\n };\n if (adornmentConfig.length) {\n adornmentProps = {\n ...adornmentProps,\n left,\n right,\n textStyle: { ...font, fontSize, fontWeight },\n visible: parentState.labeled,\n };\n }\n\n return (\n \n \n \n {!isAndroid && multiline && !!label && (\n // Workaround for: https://github.com/callstack/react-native-paper/issues/2799\n // Patch for a multiline TextInput with fixed height, which allow to avoid covering input label with its value.\n \n )}\n \n {render?.({\n testID: 'text-input-flat',\n ...rest,\n ref: innerRef,\n onChangeText,\n placeholder: label ? parentState.placeholder : rest.placeholder,\n placeholderTextColor: placeholderTextColor ?? placeholderColor,\n editable: !disabled && editable,\n selectionColor:\n typeof selectionColor === 'undefined'\n ? activeColor\n : selectionColor,\n onFocus,\n onBlur,\n underlineColorAndroid: 'transparent',\n multiline,\n style: [\n styles.input,\n { paddingLeft, paddingRight },\n !multiline || (multiline && height) ? { height: flatHeight } : {},\n paddingFlat,\n {\n ...font,\n fontSize,\n fontWeight,\n fontVariant,\n color: inputTextColor,\n textAlignVertical: multiline ? 'top' : 'center',\n textAlign: textAlign\n ? textAlign\n : I18nManager.isRTL\n ? 'right'\n : 'left',\n },\n Platform.OS === 'web' && { outline: 'none' },\n adornmentStyleAdjustmentForNativeInput,\n ],\n })}\n \n \n \n );\n};\n\nexport default TextInputFlat;\n\ntype UnderlineProps = {\n parentState: {\n focused: boolean;\n };\n error?: boolean;\n colors: {\n error: string;\n };\n activeColor: string;\n underlineColorCustom?: string;\n};\n\nconst Underline = ({\n parentState,\n error,\n colors,\n activeColor,\n underlineColorCustom,\n}: UnderlineProps) => {\n let backgroundColor = parentState.focused\n ? activeColor\n : underlineColorCustom;\n if (error) backgroundColor = colors.error;\n return (\n \n );\n};\n\nconst styles = StyleSheet.create({\n placeholder: {\n position: 'absolute',\n left: 0,\n },\n underline: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n zIndex: 1,\n },\n labelContainer: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n input: {\n flexGrow: 1,\n margin: 0,\n },\n inputFlat: {\n paddingTop: 24,\n paddingBottom: 4,\n },\n inputFlatDense: {\n paddingTop: 22,\n paddingBottom: 2,\n },\n patchContainer: {\n height: 24,\n zIndex: 2,\n },\n densePatchContainer: {\n height: 22,\n zIndex: 2,\n },\n});\n","import * as React from 'react';\nimport {\n Animated,\n TextInput as NativeTextInput,\n LayoutChangeEvent,\n StyleProp,\n TextStyle,\n} from 'react-native';\nimport TextInputOutlined from './TextInputOutlined';\nimport TextInputFlat from './TextInputFlat';\nimport TextInputIcon, {\n Props as TextInputIconProps,\n} from './Adornment/TextInputIcon';\nimport TextInputAffix, {\n Props as TextInputAffixProps,\n} from './Adornment/TextInputAffix';\nimport { withTheme } from '../../core/theming';\nimport type { RenderProps, TextInputLabelProp } from './types';\n\nconst BLUR_ANIMATION_DURATION = 180;\nconst FOCUS_ANIMATION_DURATION = 150;\n\nexport type Props = React.ComponentPropsWithRef & {\n /**\n * Mode of the TextInput.\n * - `flat` - flat input with an underline.\n * - `outlined` - input with an outline.\n *\n * In `outlined` mode, the background color of the label is derived from `colors.background` in theme or the `backgroundColor` style.\n * This component render TextInputOutlined or TextInputFlat based on that props\n */\n mode?: 'flat' | 'outlined';\n left?: React.ReactNode;\n right?: React.ReactNode;\n /**\n * If true, user won't be able to interact with the component.\n */\n disabled?: boolean;\n /**\n * The text or component to use for the floating label.\n */\n label?: TextInputLabelProp;\n /**\n * Placeholder for the input.\n */\n placeholder?: string;\n /**\n * Whether to style the TextInput with error style.\n */\n error?: boolean;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as an argument to the callback handler.\n */\n onChangeText?: Function;\n /**\n * Selection color of the input\n */\n selectionColor?: string;\n /**\n * Inactive underline color of the input.\n */\n underlineColor?: string;\n /**\n * Active underline color of the input.\n */\n activeUnderlineColor?: string;\n /**\n * Inactive outline color of the input.\n */\n outlineColor?: string;\n /**\n * Active outline color of the input.\n */\n activeOutlineColor?: string;\n /**\n * Sets min height with densed layout. For `TextInput` in `flat` mode\n * height is `64dp` or in dense layout - `52dp` with label or `40dp` without label.\n * For `TextInput` in `outlined` mode\n * height is `56dp` or in dense layout - `40dp` regardless of label.\n * When you apply `height` prop in style the `dense` prop affects only `paddingVertical` inside `TextInput`\n */\n dense?: boolean;\n /**\n * Whether the input can have multiple lines.\n */\n multiline?: boolean;\n /**\n * The number of lines to show in the input (Android only).\n */\n numberOfLines?: number;\n /**\n * Callback that is called when the text input is focused.\n */\n onFocus?: (args: any) => void;\n /**\n * Callback that is called when the text input is blurred.\n */\n onBlur?: (args: any) => void;\n /**\n *\n * Callback to render a custom input component such as `react-native-text-input-mask`\n * instead of the default `TextInput` component from `react-native`.\n *\n * Example:\n * ```js\n * \n * \n * }\n * />\n * ```\n */\n render?: (props: RenderProps) => React.ReactNode;\n /**\n * Value of the text input.\n */\n value?: string;\n /**\n * Pass `fontSize` prop to modify the font size inside `TextInput`.\n * Pass `height` prop to set `TextInput` height. When `height` is passed,\n * `dense` prop will affect only input's `paddingVertical`.\n * Pass `paddingHorizontal` to modify horizontal padding.\n * This can be used to get MD Guidelines v1 TextInput look.\n */\n style?: StyleProp;\n /**\n * @optional\n */\n theme: ReactNativePaper.Theme;\n};\n\ninterface CompoundedComponent\n extends React.ForwardRefExoticComponent<\n Props & React.RefAttributes\n > {\n Icon: React.FunctionComponent;\n Affix: React.FunctionComponent>;\n}\n\ntype TextInputHandles = Pick<\n NativeTextInput,\n 'focus' | 'clear' | 'blur' | 'isFocused' | 'setNativeProps'\n>;\n\n/**\n * A component to allow users to input text.\n *\n *
\n *
\n * \n *
Flat (focused)
\n *
\n *
\n * \n *
Flat (disabled)
\n *
\n *
\n * \n *
Outlined (focused)
\n *
\n *
\n * \n *
Outlined (disabled)
\n *
\n *
\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { TextInput } from 'react-native-paper';\n *\n * const MyComponent = () => {\n * const [text, setText] = React.useState(\"\");\n *\n * return (\n * setText(text)}\n * />\n * );\n * };\n *\n * export default MyComponent;\n * ```\n *\n * @extends TextInput props https://reactnative.dev/docs/textinput#props\n */\n\nconst TextInput = React.forwardRef(\n (\n {\n mode = 'flat',\n dense = false,\n disabled = false,\n error: errorProp = false,\n multiline = false,\n editable = true,\n render = (props: RenderProps) => ,\n ...rest\n }: Props,\n ref\n ) => {\n const isControlled = rest.value !== undefined;\n const validInputValue = isControlled ? rest.value : rest.defaultValue;\n\n const { current: labeled } = React.useRef(\n new Animated.Value(validInputValue ? 0 : 1)\n );\n const { current: error } = React.useRef(\n new Animated.Value(errorProp ? 1 : 0)\n );\n const [focused, setFocused] = React.useState(false);\n const [placeholder, setPlaceholder] = React.useState(\n ' '\n );\n const [uncontrolledValue, setUncontrolledValue] = React.useState<\n string | undefined\n >(validInputValue);\n // Use value from props instead of local state when input is controlled\n const value = isControlled ? rest.value : uncontrolledValue;\n\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: boolean;\n width: number;\n height: number;\n }>({\n measured: false,\n width: 0,\n height: 0,\n });\n const [leftLayout, setLeftLayout] = React.useState<{\n height: number | null;\n width: number | null;\n }>({\n width: null,\n height: null,\n });\n const [rightLayout, setRightLayout] = React.useState<{\n height: number | null;\n width: number | null;\n }>({\n width: null,\n height: null,\n });\n\n const timer = React.useRef();\n\n const root = React.useRef();\n\n const { scale } = rest.theme.animation;\n\n React.useImperativeHandle(ref, () => ({\n focus: () => root.current?.focus(),\n clear: () => root.current?.clear(),\n setNativeProps: (args: Object) => root.current?.setNativeProps(args),\n isFocused: () => root.current?.isFocused() || false,\n blur: () => root.current?.blur(),\n forceFocus: () => root.current?.focus(),\n }));\n\n React.useEffect(() => {\n // When the input has an error, we wiggle the label and apply error styles\n if (errorProp) {\n // show error\n Animated.timing(error, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n } else {\n // hide error\n {\n Animated.timing(error, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n }\n }\n }, [errorProp, scale, error]);\n\n React.useEffect(() => {\n // Show placeholder text only if the input is focused, or there's no label\n // We don't show placeholder if there's a label because the label acts as placeholder\n // When focused, the label moves up, so we can show a placeholder\n if (focused || !rest.label) {\n // Set the placeholder in a delay to offset the label animation\n // If we show it immediately, they'll overlap and look ugly\n timer.current = setTimeout(\n () => setPlaceholder(rest.placeholder),\n 50\n ) as unknown as NodeJS.Timeout;\n } else {\n // hidePlaceholder\n\n // Issue: https://github.com/callstack/react-native-paper/issues/3138\n // Description: Changing the placeholder text value dynamically,\n // within multiline input on iOS, doesn't work properly –\n // the placeholder is not displayed initially.\n // Root cause: Placeholder initial value, which has length 0.\n // More context: The issue was also reproduced in react-native, using its own TextInput.\n // Workaround: Set an empty space character in the default value.\n setPlaceholder(' ');\n }\n\n return () => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n };\n }, [focused, rest.label, rest.placeholder]);\n\n React.useEffect(() => {\n // The label should be minimized if the text input is focused, or has text\n // In minimized mode, the label moves up and becomes small\n // workaround for animated regression for react native > 0.61\n // https://github.com/callstack/react-native-paper/pull/1440\n if (value || focused) {\n // minimize label\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n } else {\n // restore label\n {\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION * scale,\n // To prevent this - https://github.com/callstack/react-native-paper/issues/941\n useNativeDriver: true,\n }).start();\n }\n }\n }, [focused, value, labeled, scale]);\n\n const onLeftAffixLayoutChange = (event: LayoutChangeEvent) => {\n setLeftLayout({\n height: event.nativeEvent.layout.height,\n width: event.nativeEvent.layout.width,\n });\n };\n\n const onRightAffixLayoutChange = (event: LayoutChangeEvent) => {\n setRightLayout({\n width: event.nativeEvent.layout.width,\n height: event.nativeEvent.layout.height,\n });\n };\n\n const handleFocus = (args: any) => {\n if (disabled || !editable) {\n return;\n }\n\n setFocused(true);\n\n rest.onFocus?.(args);\n };\n\n const handleBlur = (args: Object) => {\n if (!editable) {\n return;\n }\n\n setFocused(false);\n rest.onBlur?.(args);\n };\n\n const handleChangeText = (value: string) => {\n if (!editable || disabled) {\n return;\n }\n\n if (!isControlled) {\n // Keep track of value in local state when input is not controlled\n setUncontrolledValue(value);\n }\n rest.onChangeText?.(value);\n };\n\n const handleLayoutAnimatedText = (e: LayoutChangeEvent) => {\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n height: e.nativeEvent.layout.height,\n measured: true,\n });\n };\n const forceFocus = () => root.current?.focus();\n\n const { maxFontSizeMultiplier = 1.5 } = rest;\n\n if (mode === 'outlined') {\n return (\n {\n root.current = ref;\n }}\n onFocus={handleFocus}\n forceFocus={forceFocus}\n onBlur={handleBlur}\n onChangeText={handleChangeText}\n onLayoutAnimatedText={handleLayoutAnimatedText}\n onLeftAffixLayoutChange={onLeftAffixLayoutChange}\n onRightAffixLayoutChange={onRightAffixLayoutChange}\n maxFontSizeMultiplier={maxFontSizeMultiplier}\n />\n );\n }\n\n return (\n {\n root.current = ref;\n }}\n onFocus={handleFocus}\n forceFocus={forceFocus}\n onBlur={handleBlur}\n onChangeText={handleChangeText}\n onLayoutAnimatedText={handleLayoutAnimatedText}\n onLeftAffixLayoutChange={onLeftAffixLayoutChange}\n onRightAffixLayoutChange={onRightAffixLayoutChange}\n maxFontSizeMultiplier={maxFontSizeMultiplier}\n />\n );\n }\n) as CompoundedComponent;\n// @component ./Adornment/TextInputIcon.tsx\nTextInput.Icon = TextInputIcon;\n\n// @component ./Adornment/TextInputAffix.tsx\n// @ts-ignore Types of property 'theme' are incompatible.\nTextInput.Affix = TextInputAffix;\n\nexport default withTheme(TextInput);\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {CSSProperties, JSXElementConstructor, ReactNode, useMemo, useState} from 'react';\nimport {useFocusWithin} from '@react-aria/interactions';\n\nexport interface VisuallyHiddenProps extends DOMAttributes {\n /** The content to visually hide. */\n children?: ReactNode,\n\n /**\n * The element type for the container.\n * @default 'div'\n */\n elementType?: string | JSXElementConstructor,\n\n /** Whether the element should become visible on focus, for example skip links. */\n isFocusable?: boolean\n}\n\nconst styles: CSSProperties = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px',\n whiteSpace: 'nowrap'\n};\n\nexport interface VisuallyHiddenAria {\n visuallyHiddenProps: DOMAttributes\n}\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n */\nexport function useVisuallyHidden(props: VisuallyHiddenProps = {}): VisuallyHiddenAria {\n let {\n style,\n isFocusable\n } = props;\n\n let [isFocused, setFocused] = useState(false);\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !isFocusable,\n onFocusWithinChange: (val) => setFocused(val)\n });\n\n // If focused, don't hide the element.\n let combinedStyles = useMemo(() => {\n if (isFocused) {\n return style;\n } else if (style) {\n return {...styles, ...style};\n } else {\n return styles;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFocused]);\n\n return {\n visuallyHiddenProps: {\n ...focusWithinProps,\n style: combinedStyles\n }\n };\n}\n\n/**\n * VisuallyHidden hides its children visually, while keeping content visible\n * to screen readers.\n */\nexport function VisuallyHidden(props: VisuallyHiddenProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children, elementType: Element = 'div', isFocusable, style, ...otherProps} = props;\n let {visuallyHiddenProps} = useVisuallyHidden(props);\n\n return (\n \n {children}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxProps} from '@react-types/checkbox';\nimport {InputHTMLAttributes, RefObject, useEffect} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useToggle} from '@react-aria/toggle';\n\nexport interface CheckboxAria {\n /** Props for the input element. */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox component.\n * Checkboxes allow users to select multiple items from a list of individual items, or\n * to mark one individual item as selected.\n * @param props - Props for the checkbox.\n * @param state - State for the checkbox, as returned by `useToggleState`.\n * @param inputRef - A ref for the HTML input element.\n */\nexport function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputRef: RefObject): CheckboxAria {\n let {inputProps} = useToggle(props, state, inputRef);\n let {isSelected} = state;\n\n let {isIndeterminate} = props;\n useEffect(() => {\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n });\n\n return {\n inputProps: {\n ...inputProps,\n checked: isSelected,\n 'aria-checked': isIndeterminate ? 'mixed' : isSelected\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaToggleProps} from '@react-types/checkbox';\nimport {filterDOMProps, mergeProps, useFormReset} from '@react-aria/utils';\nimport {InputHTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface ToggleAria {\n /** Props to be spread on the label element. */\n labelProps: LabelHTMLAttributes,\n /** Props to be spread on the input element. */\n inputProps: InputHTMLAttributes,\n /** Whether the toggle is selected. */\n isSelected: boolean,\n /** Whether the toggle is in a pressed state. */\n isPressed: boolean,\n /** Whether the toggle is disabled. */\n isDisabled: boolean,\n /** Whether the toggle is read only. */\n isReadOnly: boolean,\n /** Whether the toggle is invalid. */\n isInvalid: boolean\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(props: AriaToggleProps, state: ToggleState, ref: RefObject): ToggleAria {\n let {\n isDisabled = false,\n isReadOnly = false,\n value,\n name,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n validationState = 'valid',\n isInvalid\n } = props;\n\n let onChange = (e) => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(e.target.checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel) {\n console.warn('If you do not provide children, you must specify an aria-label for accessibility');\n }\n\n // This handles focusing the input on pointer down, which Safari does not do by default.\n let {pressProps, isPressed} = usePress({\n isDisabled\n });\n\n // iOS does not toggle checkboxes if you drag off and back onto the label, so handle it ourselves.\n let {pressProps: labelProps, isPressed: isLabelPressed} = usePress({\n isDisabled: isDisabled || isReadOnly,\n onPress() {\n state.toggle();\n }\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n useFormReset(ref, state.isSelected, state.setSelected);\n\n return {\n labelProps: mergeProps(labelProps, {onClick: e => e.preventDefault()}),\n inputProps: mergeProps(domProps, {\n 'aria-invalid': isInvalid || validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n onChange,\n disabled: isDisabled,\n ...(value == null ? {} : {value}),\n name,\n type: 'checkbox',\n ...interactions\n }),\n isSelected: state.isSelected,\n isPressed: isPressed || isLabelPressed,\n isDisabled,\n isReadOnly,\n isInvalid: isInvalid || validationState === 'invalid'\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\n\nexport const checkboxGroupNames = new WeakMap();\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxGroupItemProps} from '@react-types/checkbox';\nimport {CheckboxAria, useCheckbox} from './useCheckbox';\nimport {checkboxGroupNames} from './utils';\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport {RefObject} from 'react';\nimport {useToggleState} from '@react-stately/toggle';\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox component contained within a checkbox group.\n * Checkbox groups allow users to select multiple items from a list of options.\n * @param props - Props for the checkbox.\n * @param state - State for the checkbox, as returned by `useCheckboxGroupState`.\n * @param inputRef - A ref for the HTML input element.\n */\nexport function useCheckboxGroupItem(props: AriaCheckboxGroupItemProps, state: CheckboxGroupState, inputRef: RefObject): CheckboxAria {\n const toggleState = useToggleState({\n isReadOnly: props.isReadOnly || state.isReadOnly,\n isSelected: state.isSelected(props.value),\n onChange(isSelected) {\n if (isSelected) {\n state.addValue(props.value);\n } else {\n state.removeValue(props.value);\n }\n\n if (props.onChange) {\n props.onChange(isSelected);\n }\n }\n });\n\n let {inputProps} = useCheckbox({\n ...props,\n isReadOnly: props.isReadOnly || state.isReadOnly,\n isDisabled: props.isDisabled || state.isDisabled,\n name: props.name || checkboxGroupNames.get(state)\n }, toggleState, inputRef);\n\n return {inputProps};\n}\n","import { useCheckboxGroup as useCheckboxGroupWeb } from '@react-aria/checkbox';\nimport { mapDomPropsToRN } from '@react-native-aria/utils';\n/**\n * Provides the behavior and accessibility implementation for a checkbox group component.\n * Checkbox groups allow users to select multiple items from a list of options.\n * @param props - Props for the checkbox group.\n * @param state - State for the checkbox group, as returned by `useCheckboxGroupState`.\n */\nexport function useCheckboxGroup(props, state) {\n const params = useCheckboxGroupWeb(props, state);\n return {\n labelProps: {\n ...params.labelProps,\n ...mapDomPropsToRN(params.labelProps)\n },\n groupProps: {\n ...params.groupProps,\n ...mapDomPropsToRN(params.groupProps)\n }\n };\n}\n//# sourceMappingURL=useCheckboxGroup.web.js.map","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxGroupProps} from '@react-types/checkbox';\nimport {checkboxGroupNames} from './utils';\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {HTMLAttributes} from 'react';\nimport {useLabel} from '@react-aria/label';\n\ninterface CheckboxGroupAria {\n /** Props for the checkbox group wrapper element. */\n groupProps: HTMLAttributes,\n /** Props for the checkbox group's visible label (if any). */\n labelProps: HTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox group component.\n * Checkbox groups allow users to select multiple items from a list of options.\n * @param props - Props for the checkbox group.\n * @param state - State for the checkbox group, as returned by `useCheckboxGroupState`.\n */\nexport function useCheckboxGroup(props: AriaCheckboxGroupProps, state: CheckboxGroupState): CheckboxGroupAria {\n let {isDisabled, name} = props;\n\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Checkbox group is not an HTML input element so it\n // shouldn't be labeled by a
\n \n );\n }\n);\n\n// This is an internal implementation of PopoverArrow\nconst PopperArrow = React.forwardRef(\n (\n {\n height = defaultArrowHeight,\n width = defaultArrowWidth,\n\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n arrowProps,\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n actualPlacement,\n style,\n borderColor = '#52525b',\n backgroundColor = 'black',\n ...rest\n }: IPopoverArrowProps & IBoxProps,\n ref: any\n ) => {\n const additionalStyles = React.useMemo(\n () => getArrowStyles({ placement: actualPlacement, height, width }),\n [actualPlacement, height, width]\n );\n\n const triangleStyle: ViewStyle = React.useMemo(\n () => ({\n position: 'absolute',\n width,\n height,\n }),\n [width, height]\n );\n\n const arrowStyles = React.useMemo(\n () => [arrowProps?.style, triangleStyle, additionalStyles, style],\n [triangleStyle, additionalStyles, arrowProps?.style, style]\n );\n\n return (\n \n );\n }\n);\n\nconst getArrowStyles = (props: IArrowStyles) => {\n const additionalStyles: any = {\n transform: [],\n };\n\n const diagonalLength = getDiagonalLength(\n defaultArrowHeight,\n defaultArrowHeight\n );\n\n if (props.placement === 'top' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.bottom = Math.ceil(\n (diagonalLength - defaultArrowHeight) / 2\n );\n additionalStyles.borderBottomWidth = 1;\n additionalStyles.borderRightWidth = 1;\n }\n\n if (props.placement === 'bottom' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.top = Math.ceil((diagonalLength - defaultArrowHeight) / 2);\n additionalStyles.borderTopWidth = 1;\n additionalStyles.borderLeftWidth = 1;\n }\n\n if (props.placement === 'left' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.right = Math.ceil(\n (diagonalLength - defaultArrowHeight) / 2\n );\n additionalStyles.borderTopWidth = 1;\n additionalStyles.borderRightWidth = 1;\n }\n\n if (props.placement === 'right' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.left = Math.ceil(\n (diagonalLength - defaultArrowHeight) / 2\n );\n additionalStyles.borderBottomWidth = 1;\n additionalStyles.borderLeftWidth = 1;\n }\n\n return additionalStyles;\n};\n\nconst getContainerStyle = ({ placement, arrowHeight }: IScrollContentStyle) => {\n const diagonalLength = getDiagonalLength(arrowHeight, arrowHeight) / 2;\n\n if (placement === 'top') {\n return { marginBottom: diagonalLength };\n }\n\n if (placement === 'bottom') {\n return { marginTop: diagonalLength };\n }\n\n if (placement === 'left') {\n return { marginRight: diagonalLength };\n }\n\n if (placement === 'right') {\n return { marginLeft: diagonalLength };\n }\n\n return {};\n};\n\nPopperArrow.displayName = 'PopperArrow';\nPopper.Content = PopperContent;\nPopper.Arrow = PopperArrow;\n\nexport { Popper };\n","import React, { RefObject } from 'react';\n\nexport const PopoverContext = React.createContext({\n onClose: () => {},\n initialFocusRef: { current: null } as RefObject | undefined,\n finalFocusRef: { current: null } as RefObject | undefined,\n popoverContentId: undefined as string | undefined,\n headerId: undefined as string | undefined,\n bodyId: undefined as string | undefined,\n setHeaderMounted: (() => {}) as any,\n setBodyMounted: (() => {}) as any,\n headerMounted: false,\n bodyMounted: false,\n isOpen: false,\n});\n","import React, { forwardRef, memo } from 'react';\nimport { Popper } from '../Popper';\nimport type { IPopoverProps } from './types';\nimport { mergeRefs } from '../../../utils';\nimport { useControllableState } from '../../../hooks';\nimport { PopoverContext } from './PopoverContext';\nimport Box from '../../primitives/Box';\nimport Backdrop from '../Backdrop';\nimport { FocusScope } from '@react-native-aria/focus';\nimport { PresenceTransition } from '../Transitions';\nimport { StyleSheet } from 'react-native';\nimport { useId } from '@react-native-aria/utils';\nimport { Overlay } from '../../primitives/Overlay';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport uniqueId from 'lodash.uniqueid';\nimport { ResponsiveQueryContext } from '../../../utils/useResponsiveQuery/ResponsiveQueryProvider';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\n\nconst Popover = (\n {\n onOpen,\n trigger,\n onClose,\n isOpen: isOpenProp,\n children,\n defaultIsOpen,\n initialFocusRef,\n finalFocusRef,\n useRNModal,\n trapFocus = true,\n _backdrop,\n ...props\n }: IPopoverProps,\n ref: any\n) => {\n const { _overlay } = usePropsResolution('Popover', props);\n\n const triggerRef = React.useRef(null);\n const mergedRef = mergeRefs([triggerRef]);\n const [isOpen, setIsOpen] = useControllableState({\n value: isOpenProp,\n defaultValue: defaultIsOpen,\n onChange: (value) => {\n value ? onOpen && onOpen() : onClose && onClose();\n },\n });\n\n const [bodyMounted, setBodyMounted] = React.useState(false);\n const [headerMounted, setHeaderMounted] = React.useState(false);\n let id = uniqueId();\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n\n if (!disableCSSMediaQueries) {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n id = useId();\n }\n\n const popoverContentId = `${id}-content`;\n const headerId = `${popoverContentId}-header`;\n const bodyId = `${popoverContentId}-body`;\n\n const handleOpen = React.useCallback(() => {\n setIsOpen(true);\n }, [setIsOpen]);\n\n const updatedTrigger = () => {\n return trigger(\n {\n 'ref': mergedRef,\n 'onPress': handleOpen,\n 'aria-expanded': isOpen ? true : false,\n 'aria-controls': isOpen ? popoverContentId : undefined,\n 'aria-haspopup': true,\n },\n { open: isOpen }\n );\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n {updatedTrigger()}\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n );\n};\n\nexport default memo(forwardRef(Popover));\n","import {\n useKeyboardDismissable,\n usePropsResolution,\n useToken,\n} from '../../../hooks';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport type { IPopoverContentProps } from './types';\nimport { Popper } from '../Popper';\nimport { PopoverContext } from './PopoverContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport const PopoverContent = React.forwardRef(\n (props: IPopoverContentProps, ref: any) => {\n const {\n onClose,\n initialFocusRef,\n finalFocusRef,\n popoverContentId,\n headerMounted,\n bodyMounted,\n bodyId,\n headerId,\n isOpen,\n } = React.useContext(PopoverContext);\n const resolvedProps = usePropsResolution('PopoverContent', props);\n\n const arrowDefaultColor =\n props.bgColor ??\n props.bg ??\n props.backgroundColor ??\n resolvedProps.backgroundColor;\n const color = useToken('colors', arrowDefaultColor);\n\n React.useEffect(() => {\n const finalFocusRefCurrentVal = finalFocusRef?.current;\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n\n return () => {\n if (finalFocusRefCurrentVal) {\n finalFocusRefCurrentVal.focus();\n }\n };\n }, [finalFocusRef, initialFocusRef]);\n\n useKeyboardDismissable({\n enabled: true,\n callback: onClose,\n });\n\n let arrowElement = null;\n const restChildren: any = [];\n React.Children.toArray(props.children).forEach((child: any) => {\n if (child?.type?.displayName === 'PopperArrow') {\n arrowElement = React.cloneElement(child, {\n backgroundColor: child.props.color ?? color,\n });\n } else {\n restChildren.push(child);\n }\n });\n\n const accessibilityProps =\n Platform.OS === 'web'\n ? ({\n 'accessibilityRole': 'dialog',\n 'aria-labelledby': headerMounted ? headerId : undefined,\n 'aria-describedby': bodyMounted ? bodyId : undefined,\n } as any)\n : {};\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n {arrowElement}\n {restChildren}\n \n );\n }\n);\n\nPopoverContent.displayName = 'PopoverContent';\n","import { usePropsResolution } from '../../../hooks';\nimport React, { useContext, memo, forwardRef, useEffect } from 'react';\nimport { default as Box, IBoxProps } from '../../primitives/Box';\nimport { PopoverContext } from './PopoverContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverBody = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('PopoverBody', props);\n const { setBodyMounted, bodyId } = useContext(PopoverContext);\n\n useEffect(() => {\n setBodyMounted(true);\n return () => {\n setBodyMounted(false);\n };\n }, [setBodyMounted]);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(PopoverBody));\n","import React from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { Pressable } from '../../primitives/Pressable';\nimport { CloseIcon } from '../../primitives/Icon/Icons';\nimport { PopoverContext } from './PopoverContext';\nimport type { IButtonProps } from '../../primitives/Button';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport {\n useHover,\n useFocus,\n useIsPressed,\n} from '../../primitives/Pressable/Pressable';\nimport { composeEventHandlers } from '../../../utils';\nimport { useFocusRing } from '@react-native-aria/focus';\n\nconst PopoverCloseButton = (props: IButtonProps, ref: any) => {\n const { onClose }: any = React.useContext(PopoverContext);\n const { hoverProps, isHovered } = useHover();\n const { pressableProps, isPressed } = useIsPressed();\n const { focusProps, isFocused } = useFocus();\n const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing();\n\n const {\n _icon,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n onFocus,\n onBlur,\n ...resolvedProps\n } = usePropsResolution('PopoverCloseButton', props, {\n isHovered,\n isPressed,\n isFocused,\n isFocusVisible,\n });\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n \n );\n};\n\nexport default React.memo(React.forwardRef(PopoverCloseButton));\n","import React, { memo, forwardRef } from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { default as Box, IBoxProps } from '../../primitives/Box';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverFooter = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('PopoverFooter', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(PopoverFooter));\n","import React, { memo, forwardRef, useEffect, useContext } from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { default as Box, IBoxProps } from '../../primitives/Box';\nimport { PopoverContext } from './PopoverContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverHeader = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('PopoverHeader', props);\n const { setHeaderMounted, headerId } = useContext(PopoverContext);\n\n useEffect(() => {\n setHeaderMounted(true);\n return () => {\n setHeaderMounted(false);\n };\n }, [setHeaderMounted]);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(PopoverHeader));\n","import React from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { Popper } from '../Popper';\nimport type { IBoxProps } from '../../primitives/Box';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverArrow = React.forwardRef((props: IBoxProps, ref: any) => {\n const resolvedProps = usePropsResolution('PopoverArrow', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n});\n\nPopoverArrow.displayName = 'PopperArrow';\n\nexport default PopoverArrow;\n","import React from 'react';\n\nexport const ActionSheetContext = React.createContext({\n hideDragIndicator: false,\n});\n","import React, { memo, forwardRef } from 'react';\nimport { Modal } from '../../composites/Modal';\nimport type { IActionsheetProps } from './types';\nimport { usePropsResolution } from '../../../hooks';\nimport { ActionSheetContext } from './ActionSheetContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { Platform } from 'react-native';\n\nconst Actionsheet = (\n { children, hideDragIndicator = false, ...props }: IActionsheetProps,\n ref: any\n) => {\n const {\n isOpen,\n disableOverlay,\n onClose,\n ...resolvedProps\n } = usePropsResolution('Actionsheet', props);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n //Fixing overlay position for Web due to scrollView issue\n let overlayStyle = Platform.OS === 'web' ? { position: 'fixed' } : {};\n\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default memo(forwardRef(Actionsheet));\n","import React, { memo, forwardRef } from 'react';\nimport { Pressable } from '../../primitives/Pressable';\nimport Box from '../../primitives/Box';\nimport { HStack } from '../../primitives/Stack';\nimport Spinner from '../../primitives/Spinner';\nimport { usePropsResolution } from '../../../hooks';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport type { IActionsheetItemProps } from './types';\n\nconst ActionsheetItem = (\n {\n //@ts-ignore\n children,\n startIcon,\n rightIcon,\n leftIcon,\n endIcon,\n spinner,\n isDisabled,\n isLoading,\n spinnerPlacement = 'start',\n ...props\n }: IActionsheetItemProps,\n ref: any\n) => {\n const {\n _text,\n _stack,\n _icon,\n _spinner,\n isLoadingText,\n ...resolvedProps\n } = usePropsResolution('ActionsheetItem', props, undefined, {\n cascadePseudoProps: true,\n });\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n if (leftIcon) {\n startIcon = leftIcon;\n }\n if (rightIcon) {\n endIcon = rightIcon;\n }\n if (endIcon && React.isValidElement(endIcon)) {\n endIcon = React.Children.map(\n endIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-end-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n if (startIcon && React.isValidElement(startIcon)) {\n startIcon = React.Children.map(\n startIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-start-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n const spinnerElement = spinner ? (\n spinner\n ) : (\n \n );\n\n const boxChildren = (child: any) => {\n return child ? {child} : null;\n };\n\n return (\n \n \n {startIcon && !isLoading ? startIcon : null}\n {isLoading && spinnerPlacement === 'start' ? spinnerElement : null}\n {isLoading\n ? isLoadingText\n ? boxChildren(isLoadingText)\n : null\n : boxChildren(children)}\n\n {endIcon && !isLoading ? endIcon : null}\n {isLoading && spinnerPlacement === 'end' ? spinnerElement : null}\n \n \n );\n};\n\nexport default memo(forwardRef(ActionsheetItem));\n","import React, { memo, forwardRef } from 'react';\nimport { Modal } from '../../composites/Modal';\nimport type { IActionsheetContentProps } from './types';\nimport { usePropsResolution } from '../../../hooks';\nimport { Animated, PanResponder } from 'react-native';\nimport { ModalContext } from '../Modal/Context';\nimport Box from '../../primitives/Box';\nimport { ActionSheetContext } from './ActionSheetContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Content = memo(\n forwardRef(\n (\n {\n hideDragIndicator,\n children,\n handleClose,\n pan,\n sheetHeight,\n ...props\n }: any,\n ref: any\n ) => {\n const {\n _dragIndicator,\n _dragIndicatorWrapperOffSet,\n _dragIndicatorWrapper,\n ...resolvedProps\n } = usePropsResolution('ActionsheetContent', props);\n\n const handleCloseRef = React.useRef(null);\n const handleCloseCallback = React.useCallback(() => {\n let handleCloseCurrent = handleCloseRef.current;\n //@ts-ignore\n return handleCloseCurrent();\n }, []);\n React.useEffect(() => {\n handleCloseRef.current = handleClose;\n }, [handleClose]);\n\n const panResponder = React.useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: (_evt, gestureState) => {\n return gestureState.dy > 15;\n },\n onPanResponderMove: (e, gestureState) => {\n if (gestureState.dy > 0) {\n Animated.event([null, { dy: pan.y }], {\n useNativeDriver: false,\n })(e, gestureState);\n }\n },\n onPanResponderRelease: (_e, gestureState) => {\n // If sheet is dragged 1/4th of it's height, close it\n if (sheetHeight.current / 4 - gestureState.dy < 0) {\n Animated.timing(pan, {\n toValue: { x: 0, y: sheetHeight.current },\n duration: 150,\n useNativeDriver: true,\n }).start(handleCloseCallback);\n\n setTimeout(() => {\n Animated.timing(pan, {\n toValue: { x: 0, y: 0 },\n duration: 150,\n useNativeDriver: true,\n }).start();\n }, 300);\n } else {\n Animated.spring(pan, {\n toValue: { x: 0, y: 0 },\n overshootClamping: true,\n useNativeDriver: true,\n }).start();\n }\n },\n })\n ).current;\n\n return (\n <>\n {!hideDragIndicator ? (\n <>\n {/* To increase the draggable area */}\n \n \n ) : null}\n\n \n {!hideDragIndicator ? (\n <>\n {/* Hack. Fix later. Add -2 negative margin to remove the padding added by ActionSheetContent */}\n \n \n \n \n ) : null}\n\n {children}\n \n \n );\n }\n )\n);\nconst ActionsheetContent = (\n { children, ...props }: IActionsheetContentProps,\n ref?: any\n) => {\n // return null;\n const { handleClose } = React.useContext(ModalContext);\n const { hideDragIndicator } = React.useContext(ActionSheetContext);\n const pan = React.useRef(new Animated.ValueXY()).current;\n const sheetHeight = React.useRef(0);\n\n const handleCloseCallback = React.useCallback(handleClose, [\n ModalContext,\n handleClose,\n ]);\n\n // useEffect(() => {\n\n // }, [])\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n {\n const { height } = event.nativeEvent.layout;\n sheetHeight.current = height;\n }}\n pointerEvents=\"box-none\"\n >\n \n \n );\n};\n\nexport default memo(forwardRef(ActionsheetContent));\n","import { createIcon } from '../createIcon';\n\nexport const ChevronUpIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M20.2286 18L11.9973 9.62148L3.76862 17.9973L2 16.1971L12 6L22 16.1971L20.2286 18Z',\n});\n\nexport const ChevronDownIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M20.2286 6L11.9973 14.3785L3.76862 6.00268L2 7.80293L12 18L22 7.80293L20.2286 6Z',\n});\n\nexport const ChevronLeftIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M18 3.77141L9.62148 12.0027L17.9973 20.2314L16.1971 22L6 12L16.1971 2L18 3.77141Z',\n});\n\nexport const ChevronRightIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M6 3.77141L14.3785 12.0027L6.00268 20.2314L7.80293 22L18 12L7.80293 2L6 3.77141Z',\n});\n","import React, { forwardRef, memo } from 'react';\nimport type { ISelectProps } from './types';\nimport { Platform, Keyboard } from 'react-native';\nimport { Actionsheet } from '../../composites/Actionsheet';\nimport Box from '../Box';\nimport { Input } from '../Input';\nimport { useFocusRing } from '@react-native-aria/focus';\nimport { useControllableState } from '../../../hooks';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useHover } from '@react-native-aria/interactions';\nimport { mergeRefs } from '../../../utils';\nimport { useFormControl } from '../../composites/FormControl';\nimport { ChevronDownIcon } from '../Icon/Icons';\nimport type { IButtonProps } from '../Button/types';\nimport { ScrollView } from '../../basic/ScrollView';\nimport { extractInObject, stylingProps } from '../../../theme/tools/utils';\nimport { FlatList } from '../../basic/FlatList';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport type { ISelectItemProps } from './types';\nimport { Pressable } from '../Pressable';\n\nexport const SelectContext = React.createContext({\n onValueChange: (() => {}) as any,\n selectedValue: null as any,\n _selectedItem: {} as IButtonProps,\n _item: {} as IButtonProps,\n});\n\nconst Select = (\n {\n isHovered: isHoveredProp,\n isFocused: isFocusedProp,\n isFocusVisible: isFocusVisibleProp,\n variant,\n ...props\n }: ISelectProps,\n ref: any\n) => {\n const selectProps = useFormControl({\n isDisabled: props.isDisabled,\n nativeID: props.nativeID,\n });\n const flatListData: ISelectItemProps[] = [];\n\n const isDisabled = selectProps.disabled;\n const tempFix = '__NativebasePlaceholder__';\n const _ref = React.useRef(null);\n\n const [isOpen, setIsOpen] = React.useState(false);\n const [isFocused, setIsFocused] = React.useState(false);\n\n const { focusProps, isFocusVisible } = useFocusRing();\n const { hoverProps, isHovered } = useHover({ isDisabled }, _ref);\n\n const {\n onValueChange,\n selectedValue,\n children,\n dropdownIcon,\n dropdownCloseIcon,\n dropdownOpenIcon,\n placeholder,\n accessibilityLabel,\n defaultValue,\n _item,\n _selectedItem,\n onOpen,\n onClose,\n optimized,\n _customDropdownIconProps,\n _actionSheet,\n _actionSheetContent,\n _actionSheetBody,\n _webSelect,\n ...resolvedProps\n } = usePropsResolution(\n 'Select',\n props,\n {\n isDisabled,\n isHovered: isHoveredProp || isHovered,\n isFocused: isFocusedProp || isFocused,\n isFocusVisible: isFocusVisibleProp || isFocusVisible,\n },\n undefined\n );\n\n const [value, setValue] = useControllableState({\n value: selectedValue,\n defaultValue,\n onChange: (newValue) => {\n onValueChange && onValueChange(newValue);\n setIsOpen(false);\n },\n });\n\n const itemsList: Array<{\n label: string;\n value: string;\n }> = React.Children.toArray(children).map((child: any) => {\n return {\n label: child?.props?.label,\n value: child?.props?.value,\n };\n });\n\n const selectedItemArray = itemsList.filter(\n (item: any) => item?.value === value\n );\n\n const selectedItem =\n selectedItemArray && selectedItemArray.length ? selectedItemArray[0] : null;\n\n const contextValue = React.useMemo(() => {\n return {\n onValueChange: setValue,\n selectedValue: value,\n _selectedItem: _selectedItem ?? {},\n _item: _item ?? {},\n };\n }, [value, setValue, _selectedItem, _item]);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n const rightIcon =\n isOpen && dropdownOpenIcon ? (\n dropdownOpenIcon\n ) : !isOpen && dropdownCloseIcon ? (\n dropdownCloseIcon\n ) : dropdownIcon ? (\n dropdownIcon\n ) : (\n \n );\n\n const handleClose = () => {\n setIsOpen(false);\n onClose && onClose();\n };\n\n if (optimized) {\n React.Children.toArray(children).map((child: any) => {\n flatListData.push(child.props);\n });\n }\n\n const [layoutProps, nonLayoutProps] = extractInObject(resolvedProps, [\n ...stylingProps.margin,\n ...stylingProps.flexbox,\n ...stylingProps.position,\n 'shadow',\n 'opacity',\n ]);\n\n const commonInput = (\n \n );\n\n return Platform.OS === 'android' || Platform.OS === 'ios' ? (\n <>\n {\n Keyboard.dismiss();\n setIsOpen(true);\n onOpen && onOpen();\n }}\n disabled={isDisabled}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n ref={mergeRefs([ref, _ref])}\n {...layoutProps}\n >\n {commonInput}\n \n \n \n {/* TODO: Replace ScrollVeiw with FlatList */}\n {optimized ? (\n index.toString()}\n renderItem={({ item }: any) => {\n const isSelected = selectedValue === item?.value;\n return (\n {\n if (!isDisabled) {\n setValue(item?.value);\n }\n }}\n accessibilityState={{ selected: isSelected }}\n {...item}\n {..._item}\n {...(isSelected && _selectedItem)}\n >\n {item?.label}\n \n );\n }}\n />\n ) : (\n \n \n {children}\n \n \n )}\n \n \n \n ) : (\n \n {/* */}\n {\n setValue(e.target.value);\n }}\n value={selectedItem === null ? tempFix : value}\n aria-label={placeholder}\n onFocus={() => {\n setIsFocused(true);\n onOpen && onOpen();\n }}\n onBlur={() => {\n setIsFocused(false);\n onClose && onClose();\n }}\n {..._webSelect}\n >\n \n {children}\n \n {/* */}\n {commonInput}\n \n );\n};\n\nexport default memo(forwardRef(Select));\n","import React, { forwardRef, memo } from 'react';\nimport type { ISelectItemProps } from './types';\nimport { Platform } from 'react-native';\nimport { Actionsheet } from '../../composites/Actionsheet';\nimport { SelectContext } from './Select';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport const Item = (\n { isDisabled, label, value, ...props }: ISelectItemProps,\n ref?: any\n) => {\n const {\n onValueChange,\n selectedValue,\n _selectedItem,\n _item,\n } = React.useContext(SelectContext);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps({ ...props, isDisabled, label, value })) {\n return null;\n }\n if (Platform.OS !== 'web') {\n const isSelected = selectedValue === value;\n\n return (\n {\n if (!isDisabled) {\n onValueChange(value);\n }\n }}\n accessibilityState={{ selected: isSelected }}\n {..._item}\n {...(isSelected && _selectedItem)}\n {...props}\n >\n {label}\n \n );\n } else {\n return (\n \n );\n }\n};\n\nexport default memo(forwardRef(Item));\n","import type { Client, DsnComponents, Hub } from '@sentry/types';\n\n/**\n * Checks whether given url points to Sentry server\n * @param url url to verify\n *\n * TODO(v8): Remove Hub fallback type\n */\nexport function isSentryRequestUrl(url: string, hubOrClient: Hub | Client | undefined): boolean {\n const client =\n hubOrClient && isHub(hubOrClient)\n ? // eslint-disable-next-line deprecation/deprecation\n hubOrClient.getClient()\n : hubOrClient;\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url: string, tunnel: string | undefined): boolean {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url: string, dsn: DsnComponents | undefined): boolean {\n return dsn ? url.includes(dsn.host) : false;\n}\n\nfunction removeTrailingSlash(str: string): string {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n\nfunction isHub(hubOrClient: Hub | Client | undefined): hubOrClient is Hub {\n // eslint-disable-next-line deprecation/deprecation\n return (hubOrClient as Hub).getClient !== undefined;\n}\n","import { isNodeEnv } from './node';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Returns true if we are in the browser.\n */\nexport function isBrowser(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\ntype ElectronProcess = { type?: string };\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer(): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (GLOBAL_OBJ as any).process !== undefined && ((GLOBAL_OBJ as any).process as ElectronProcess).type === 'renderer'\n );\n}\n","import { _nullishCoalesce, _optionalChain } from '@sentry/utils';\nimport { addBreadcrumb, getClient, isSentryRequestUrl, getCurrentScope, addEventProcessor, prepareEvent, getIsolationScope, setContext, captureException, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '@sentry/core';\nimport { GLOBAL_OBJ, normalize, fill, htmlTreeAsString, browserPerformanceTimeOrigin, logger, uuid4, SENTRY_XHR_DATA_KEY, dropUndefinedKeys, stringMatchesSomePattern, addFetchInstrumentationHandler, addXhrInstrumentationHandler, addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler, createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader, updateRateLimits, isRateLimited, consoleSandbox, isBrowser } from '@sentry/utils';\nimport { addPerformanceInstrumentationHandler, addLcpInstrumentationHandler } from '@sentry-internal/tracing';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and replay packages should `@sentry/browser` import\n// from `@sentry/replay` in the future\nconst WINDOW = GLOBAL_OBJ ;\n\nconst REPLAY_SESSION_KEY = 'sentryReplaySession';\nconst REPLAY_EVENT_NAME = 'replay_event';\nconst UNABLE_TO_SEND_REPLAY = 'Unable to send Replay';\n\n// The idle limit for a session after which recording is paused.\nconst SESSION_IDLE_PAUSE_DURATION = 300000; // 5 minutes in ms\n\n// The idle limit for a session after which the session expires.\nconst SESSION_IDLE_EXPIRE_DURATION = 900000; // 15 minutes in ms\n\n/** Default flush delays */\nconst DEFAULT_FLUSH_MIN_DELAY = 5000;\n// XXX: Temp fix for our debounce logic where `maxWait` would never occur if it\n// was the same as `wait`\nconst DEFAULT_FLUSH_MAX_DELAY = 5500;\n\n/* How long to wait for error checkouts */\nconst BUFFER_CHECKOUT_TIME = 60000;\n\nconst RETRY_BASE_INTERVAL = 5000;\nconst RETRY_MAX_COUNT = 3;\n\n/* The max (uncompressed) size in bytes of a network body. Any body larger than this will be truncated. */\nconst NETWORK_BODY_MAX_SIZE = 150000;\n\n/* The max size of a single console arg that is captured. Any arg larger than this will be truncated. */\nconst CONSOLE_ARG_MAX_SIZE = 5000;\n\n/* Min. time to wait before we consider something a slow click. */\nconst SLOW_CLICK_THRESHOLD = 3000;\n/* For scroll actions after a click, we only look for a very short time period to detect programmatic scrolling. */\nconst SLOW_CLICK_SCROLL_TIMEOUT = 300;\n\n/** When encountering a total segment size exceeding this size, stop the replay (as we cannot properly ingest it). */\nconst REPLAY_MAX_EVENT_BUFFER_SIZE = 20000000; // ~20MB\n\n/** Replays must be min. 5s long before we send them. */\nconst MIN_REPLAY_DURATION = 4999;\n/* The max. allowed value that the minReplayDuration can be set to. */\nconst MIN_REPLAY_DURATION_LIMIT = 15000;\n\n/** The max. length of a replay. */\nconst MAX_REPLAY_DURATION = 3600000; // 60 minutes in ms;\n\nfunction _nullishCoalesce$1(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }function _optionalChain$5(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var NodeType$1;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType$1 || (NodeType$1 = {}));\n\nfunction isElement$1(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n const host = _optionalChain$5([n, 'optionalAccess', _ => _.host]);\n return Boolean(_optionalChain$5([host, 'optionalAccess', _2 => _2.shadowRoot]) === n);\n}\nfunction isNativeShadowDom(shadowRoot) {\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(' background-clip: text;') &&\n !cssText.includes(' -webkit-background-clip: text;')) {\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\n }\n return cssText;\n}\nfunction escapeImportStatement(rule) {\n const { cssText } = rule;\n if (cssText.split('\"').length < 3)\n return cssText;\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\n if (rule.layerName === '') {\n statement.push(`layer`);\n }\n else if (rule.layerName) {\n statement.push(`layer(${rule.layerName})`);\n }\n if (rule.supportsText) {\n statement.push(`supports(${rule.supportsText})`);\n }\n if (rule.media.length) {\n statement.push(rule.media.mediaText);\n }\n return statement.join(' ') + ';';\n}\nfunction stringifyStylesheet(s) {\n try {\n const rules = s.rules || s.cssRules;\n return rules\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\n : null;\n }\n catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule) {\n let importStringified;\n if (isCSSImportRule(rule)) {\n try {\n importStringified =\n stringifyStylesheet(rule.styleSheet) ||\n escapeImportStatement(rule);\n }\n catch (error) {\n }\n }\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\n return fixSafariColons(rule.cssText);\n }\n return importStringified || rule.cssText;\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, '$1\\\\$2');\n}\nfunction isCSSImportRule(rule) {\n return 'styleSheet' in rule;\n}\nfunction isCSSStyleRule(rule) {\n return 'selectorText' in rule;\n}\nclass Mirror {\n constructor() {\n this.idNodeMap = new Map();\n this.nodeMetaMap = new WeakMap();\n }\n getId(n) {\n if (!n)\n return -1;\n const id = _optionalChain$5([this, 'access', _3 => _3.getMeta, 'call', _4 => _4(n), 'optionalAccess', _5 => _5.id]);\n return _nullishCoalesce$1(id, () => ( -1));\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node) {\n return this.nodeMetaMap.has(node);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta)\n this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = new Map();\n this.nodeMetaMap = new WeakMap();\n }\n}\nfunction createMirror() {\n return new Mirror();\n}\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\n if (tagName === 'OPTION') {\n tagName = 'SELECT';\n }\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\n (type && maskInputOptions[type]) ||\n type === 'password' ||\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\n}\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\n let text = value || '';\n if (!isMasked) {\n return text;\n }\n if (maskInputFn) {\n text = maskInputFn(text, element);\n }\n return '*'.repeat(text.length);\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext('2d');\n if (!ctx)\n return true;\n const chunkSize = 50;\n for (let x = 0; x < canvas.width; x += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\n : getImageData;\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\n if (pixelBuffer.some((pixel) => pixel !== 0))\n return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute('data-rr-is-password')\n ? 'password'\n : type\n ?\n toLowerCase(type)\n : null;\n}\nfunction getInputValue(el, tagName, type) {\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\n return el.getAttribute('value') || '';\n }\n return el.value;\n}\n\nlet _id = 1;\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return 'form';\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return 'div';\n }\n return processedTagName;\n}\nfunction extractOrigin(url) {\n let origin = '';\n if (url.indexOf('//') > -1) {\n origin = url.split('/').slice(0, 3).join('/');\n }\n else {\n origin = url.split('/')[0];\n }\n origin = origin.split('?')[0];\n return origin;\n}\nlet canvasService;\nlet canvasCtx;\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absoluteToStylesheet(cssText, href) {\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || '';\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === '/') {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split('/');\n const parts = filePath.split('/');\n stack.pop();\n for (const part of parts) {\n if (part === '.') {\n continue;\n }\n else if (part === '..') {\n stack.pop();\n }\n else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\n });\n}\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === '') {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return '';\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === ',') {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n }\n else {\n let descriptorsStr = '';\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c = attributeValue.charAt(pos);\n if (c === '') {\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (!inParens) {\n if (c === ',') {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (c === '(') {\n inParens = true;\n }\n }\n else {\n if (c === ')') {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(', ');\n}\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === '') {\n return attributeValue;\n }\n const a = doc.createElement('a');\n a.href = attributeValue;\n return a.href;\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\n}\nfunction getHref() {\n const a = document.createElement('a');\n a.href = '';\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\n if (!value) {\n return value;\n }\n if (name === 'src' ||\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'xlink:href' && value[0] !== '#') {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'background' &&\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'srcset') {\n return getAbsoluteSrcsetString(doc, value);\n }\n else if (name === 'style') {\n return absoluteToStylesheet(value, getHref());\n }\n else if (tagName === 'object' && name === 'data') {\n return absoluteToDoc(doc, value);\n }\n if (typeof maskAttributeFn === 'function') {\n return maskAttributeFn(name, value, element);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\n}\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\n try {\n if (unblockSelector && element.matches(unblockSelector)) {\n return false;\n }\n if (typeof blockClass === 'string') {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n }\n else {\n for (let eIndex = element.classList.length; eIndex--;) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n }\n catch (e) {\n }\n return false;\n}\nfunction elementClassMatchesRegex(el, regex) {\n for (let eIndex = el.classList.length; eIndex--;) {\n const className = el.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n return false;\n}\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\n if (!node)\n return -1;\n if (node.nodeType !== node.ELEMENT_NODE)\n return -1;\n if (distance > limit)\n return -1;\n if (matchPredicate(node))\n return distance;\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\n}\nfunction createMatchPredicate(className, selector) {\n return (node) => {\n const el = node;\n if (el === null)\n return false;\n try {\n if (className) {\n if (typeof className === 'string') {\n if (el.matches(`.${className}`))\n return true;\n }\n else if (elementClassMatchesRegex(el, className)) {\n return true;\n }\n }\n if (selector && el.matches(selector))\n return true;\n return false;\n }\n catch (e2) {\n return false;\n }\n };\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\n try {\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n if (el === null)\n return false;\n if (el.tagName === 'INPUT') {\n const autocomplete = el.getAttribute('autocomplete');\n const disallowedAutocompleteValues = [\n 'current-password',\n 'new-password',\n 'cc-number',\n 'cc-exp',\n 'cc-exp-month',\n 'cc-exp-year',\n 'cc-csc',\n ];\n if (disallowedAutocompleteValues.includes(autocomplete)) {\n return true;\n }\n }\n let maskDistance = -1;\n let unmaskDistance = -1;\n if (maskAllText) {\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\n if (unmaskDistance < 0) {\n return true;\n }\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\n }\n else {\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\n if (maskDistance < 0) {\n return false;\n }\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\n }\n return maskDistance >= 0\n ? unmaskDistance >= 0\n ? maskDistance <= unmaskDistance\n : true\n : unmaskDistance >= 0\n ? false\n : !!maskAllText;\n }\n catch (e) {\n }\n return !!maskAllText;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n }\n catch (error) {\n return;\n }\n if (readyState !== 'complete') {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener('load', () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = 'about:blank';\n if (win.location.href !== blankUrl ||\n iframeEl.src === blankUrl ||\n iframeEl.src === '') {\n setTimeout(listener, 0);\n return iframeEl.addEventListener('load', listener);\n }\n iframeEl.addEventListener('load', listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n }\n catch (error) {\n return;\n }\n if (styleSheetLoaded)\n return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener('load', () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n, options) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\n const rootId = getRootId(doc, mirror);\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== 'CSS1Compat') {\n return {\n type: NodeType$1.Document,\n childNodes: [],\n compatMode: n.compatMode,\n };\n }\n else {\n return {\n type: NodeType$1.Document,\n childNodes: [],\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$1.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId,\n };\n case n.ELEMENT_NODE:\n return serializeElementNode(n, {\n doc,\n blockClass,\n blockSelector,\n unblockSelector,\n inlineStylesheet,\n maskAttributeFn,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n });\n case n.TEXT_NODE:\n return serializeTextNode(n, {\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n maskTextFn,\n maskInputOptions,\n maskInputFn,\n rootId,\n });\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType$1.CDATA,\n textContent: '',\n rootId,\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType$1.Comment,\n textContent: n.textContent || '',\n rootId,\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror) {\n if (!mirror.hasNode(doc))\n return undefined;\n const docId = mirror.getId(doc);\n return docId === 1 ? undefined : docId;\n}\nfunction serializeTextNode(n, options) {\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\n const parentTagName = n.parentNode && n.parentNode.tagName;\n let textContent = n.textContent;\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\n if (isStyle && textContent) {\n try {\n if (n.nextSibling || n.previousSibling) {\n }\n else if (_optionalChain$5([n, 'access', _6 => _6.parentNode, 'access', _7 => _7.sheet, 'optionalAccess', _8 => _8.cssRules])) {\n textContent = stringifyStylesheet(n.parentNode.sheet);\n }\n }\n catch (err) {\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\n }\n textContent = absoluteToStylesheet(textContent, getHref());\n }\n if (isScript) {\n textContent = 'SCRIPT_PLACEHOLDER';\n }\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\n textContent = maskTextFn\n ? maskTextFn(textContent)\n : textContent.replace(/[\\S]/g, '*');\n }\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\n textContent = maskInputFn\n ? maskInputFn(textContent, n.parentNode)\n : textContent.replace(/[\\S]/g, '*');\n }\n if (parentTagName === 'OPTION' && textContent) {\n const isInputMasked = shouldMaskInput({\n type: null,\n tagName: parentTagName,\n maskInputOptions,\n });\n textContent = maskInputValue({\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\n element: n,\n value: textContent,\n maskInputFn,\n });\n }\n return {\n type: NodeType$1.Text,\n textContent: textContent || '',\n isStyle,\n rootId,\n };\n}\nfunction serializeElementNode(n, options) {\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\n const tagName = getValidTagName(n);\n let attributes = {};\n const len = n.attributes.length;\n for (let i = 0; i < len; i++) {\n const attr = n.attributes[i];\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\n }\n }\n if (tagName === 'link' && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\n return s.href === n.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n }\n }\n if (tagName === 'style' &&\n n.sheet &&\n !(n.innerText || n.textContent || '').trim().length) {\n const cssText = stringifyStylesheet(n.sheet);\n if (cssText) {\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\n }\n }\n if (tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select' ||\n tagName === 'option') {\n const el = n;\n const type = getInputType(el);\n const value = getInputValue(el, toUpperCase(tagName), type);\n const checked = el.checked;\n if (type !== 'submit' && type !== 'button' && value) {\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\n type,\n tagName: toUpperCase(tagName),\n maskInputOptions,\n }));\n attributes.value = maskInputValue({\n isMasked: forceMask,\n element: el,\n value,\n maskInputFn,\n });\n }\n if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === 'option') {\n if (n.selected && !maskInputOptions['select']) {\n attributes.selected = true;\n }\n else {\n delete attributes.selected;\n }\n }\n if (tagName === 'canvas' && recordCanvas) {\n if (n.__context === '2d') {\n if (!is2DCanvasBlank(n)) {\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n }\n else if (!('__context' in n)) {\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n const blankCanvas = document.createElement('canvas');\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === 'img' && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement('canvas');\n canvasCtx = canvasService.getContext('2d');\n }\n const image = n;\n const oldValue = image.crossOrigin;\n image.crossOrigin = 'anonymous';\n const recordInlineImage = () => {\n image.removeEventListener('load', recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n catch (err) {\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\n }\n oldValue\n ? (attributes.crossOrigin = oldValue)\n : image.removeAttribute('crossorigin');\n };\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else\n image.addEventListener('load', recordInlineImage);\n }\n if (tagName === 'audio' || tagName === 'video') {\n attributes.rr_mediaState = n.paused\n ? 'paused'\n : 'played';\n attributes.rr_mediaCurrentTime = n.currentTime;\n }\n if (!newlyAddedElement) {\n if (n.scrollLeft) {\n attributes.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes.rr_scrollTop = n.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`,\n };\n }\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\n if (!n.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName))\n isCustomElement = true;\n }\n catch (e) {\n }\n return {\n type: NodeType$1.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n) || undefined,\n needBlock,\n rootId,\n isCustom: isCustomElement,\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === undefined || maybeAttr === null) {\n return '';\n }\n else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$1.Comment) {\n return true;\n }\n else if (sn.type === NodeType$1.Element) {\n if (slimDOMOptions.script &&\n (sn.tagName === 'script' ||\n (sn.tagName === 'link' &&\n (sn.attributes.rel === 'preload' ||\n sn.attributes.rel === 'modulepreload') &&\n sn.attributes.as === 'script') ||\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'prefetch' &&\n typeof sn.attributes.href === 'string' &&\n sn.attributes.href.endsWith('.js')))) {\n return true;\n }\n else if (slimDOMOptions.headFavicon &&\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\n (sn.tagName === 'meta' &&\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\n lowerIfExists(sn.attributes.name) === 'application-name' ||\n lowerIfExists(sn.attributes.rel) === 'icon' ||\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\n return true;\n }\n else if (sn.tagName === 'meta') {\n if (slimDOMOptions.headMetaDescKeywords &&\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n }\n else if (slimDOMOptions.headMetaSocial &&\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\n return true;\n }\n else if (slimDOMOptions.headMetaRobots &&\n (lowerIfExists(sn.attributes.name) === 'robots' ||\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\n return true;\n }\n else if (slimDOMOptions.headMetaHttpEquiv &&\n sn.attributes['http-equiv'] !== undefined) {\n return true;\n }\n else if (slimDOMOptions.headMetaAuthorship &&\n (lowerIfExists(sn.attributes.name) === 'author' ||\n lowerIfExists(sn.attributes.name) === 'generator' ||\n lowerIfExists(sn.attributes.name) === 'framework' ||\n lowerIfExists(sn.attributes.name) === 'publisher' ||\n lowerIfExists(sn.attributes.name) === 'progid' ||\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n }\n else if (slimDOMOptions.headMetaVerification &&\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\n lowerIfExists(sn.attributes.name) === 'verification' ||\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\n let { preserveWhiteSpace = true } = options;\n const _serializedNode = serializeNode(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskAllText,\n unblockSelector,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n });\n if (!_serializedNode) {\n console.warn(n, 'not serialized');\n return null;\n }\n let id;\n if (mirror.hasNode(n)) {\n id = mirror.getId(n);\n }\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\n (!preserveWhiteSpace &&\n _serializedNode.type === NodeType$1.Text &&\n !_serializedNode.isStyle &&\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\n id = IGNORED_NODE;\n }\n else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror.add(n, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$1.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRoot = n.shadowRoot;\n if (shadowRoot && isNativeShadowDom(shadowRoot))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$1.Document ||\n serializedNode.type === NodeType$1.Element) &&\n recordChild) {\n if (slimDOMOptions.headWhitespace &&\n serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'head') {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskAllText,\n unblockSelector,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n };\n for (const childN of Array.from(n.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n if (isElement$1(n) && n.shadowRoot) {\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(n.shadowRoot) &&\n (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n if (n.parentNode &&\n isShadowRoot(n.parentNode) &&\n isNativeShadowDom(n.parentNode)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'iframe') {\n onceIframeLoaded(n, () => {\n const iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n });\n if (serializedIframeNode) {\n onIframeLoad(n, serializedIframeNode);\n }\n }\n }, iframeLoadTimeout);\n }\n if (serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'link' &&\n serializedNode.attributes.rel === 'stylesheet') {\n onceStylesheetLoaded(n, () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n });\n if (serializedLinkNode) {\n onStylesheetLoad(n, serializedLinkNode);\n }\n }\n }, stylesheetLoadTimeout);\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\n const maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n }\n : maskAllInputs === false\n ? {}\n : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\n ?\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === 'all',\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true,\n }\n : slimDOM === false\n ? {}\n : slimDOM;\n return serializeNodeWithId(n, {\n doc: n,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false,\n });\n}\n\nfunction _optionalChain$4(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction throttle$1(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function (...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked\n ? d\n : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n });\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n }\n catch (e2) {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\n nowTimestamp = () => new Date().getTime();\n}\nfunction getWindowScroll(win) {\n const doc = win.document;\n return {\n left: doc.scrollingElement\n ? doc.scrollingElement.scrollLeft\n : win.pageXOffset !== undefined\n ? win.pageXOffset\n : _optionalChain$4([doc, 'optionalAccess', _ => _.documentElement, 'access', _2 => _2.scrollLeft]) ||\n _optionalChain$4([doc, 'optionalAccess', _3 => _3.body, 'optionalAccess', _4 => _4.parentElement, 'optionalAccess', _5 => _5.scrollLeft]) ||\n _optionalChain$4([doc, 'optionalAccess', _6 => _6.body, 'optionalAccess', _7 => _7.scrollLeft]) ||\n 0,\n top: doc.scrollingElement\n ? doc.scrollingElement.scrollTop\n : win.pageYOffset !== undefined\n ? win.pageYOffset\n : _optionalChain$4([doc, 'optionalAccess', _8 => _8.documentElement, 'access', _9 => _9.scrollTop]) ||\n _optionalChain$4([doc, 'optionalAccess', _10 => _10.body, 'optionalAccess', _11 => _11.parentElement, 'optionalAccess', _12 => _12.scrollTop]) ||\n _optionalChain$4([doc, 'optionalAccess', _13 => _13.body, 'optionalAccess', _14 => _14.scrollTop]) ||\n 0,\n };\n}\nfunction getWindowHeight() {\n return (window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight));\n}\nfunction getWindowWidth() {\n return (window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth));\n}\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\n if (!node) {\n return false;\n }\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n if (!el)\n return false;\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\n if (!checkAncestors) {\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\n return blockedPredicate(el) && !isUnblocked;\n }\n const blockDistance = distanceToMatch(el, blockedPredicate);\n let unblockDistance = -1;\n if (blockDistance < 0) {\n return false;\n }\n if (unblockSelector) {\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\n }\n if (blockDistance > -1 && unblockDistance < 0) {\n return true;\n }\n return blockDistance < unblockDistance;\n}\nfunction isSerialized(n, mirror) {\n return mirror.getId(n) !== -1;\n}\nfunction isIgnored(n, mirror) {\n return mirror.getId(n) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n if (target.parentNode &&\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!target.parentNode) {\n return true;\n }\n return isAncestorRemoved(target.parentNode, mirror);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill(win = window) {\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype\n .forEach;\n }\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = (...args) => {\n let node = args[0];\n if (!(0 in args)) {\n throw new TypeError('1 argument is required');\n }\n do {\n if (this === node) {\n return true;\n }\n } while ((node = node && node.parentNode));\n return false;\n };\n }\n}\nfunction isSerializedIframe(n, mirror) {\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\n}\nfunction isSerializedStylesheet(n, mirror) {\n return Boolean(n.nodeName === 'LINK' &&\n n.nodeType === n.ELEMENT_NODE &&\n n.getAttribute &&\n n.getAttribute('rel') === 'stylesheet' &&\n mirror.getMeta(n));\n}\nfunction hasShadowRoot(n) {\n return Boolean(_optionalChain$4([n, 'optionalAccess', _18 => _18.shadowRoot]));\n}\nclass StyleSheetMirror {\n constructor() {\n this.id = 1;\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n }\n getId(stylesheet) {\n return _nullishCoalesce(this.styleIDMap.get(stylesheet), () => ( -1));\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n add(stylesheet, id) {\n if (this.has(stylesheet))\n return this.getId(stylesheet);\n let newId;\n if (id === undefined) {\n newId = this.id++;\n }\n else\n newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n) {\n let shadowHost = null;\n if (_optionalChain$4([n, 'access', _19 => _19.getRootNode, 'optionalCall', _20 => _20(), 'optionalAccess', _21 => _21.nodeType]) === Node.DOCUMENT_FRAGMENT_NODE &&\n n.getRootNode().host)\n shadowHost = n.getRootNode().host;\n return shadowHost;\n}\nfunction getRootShadowHost(n) {\n let rootShadowHost = n;\n let shadowHost;\n while ((shadowHost = getShadowHost(rootShadowHost)))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n) {\n const doc = n.ownerDocument;\n if (!doc)\n return false;\n const shadowHost = getRootShadowHost(n);\n return doc.contains(shadowHost);\n}\nfunction inDom(n) {\n const doc = n.ownerDocument;\n if (!doc)\n return false;\n return doc.contains(n) || shadowHostInDom(n);\n}\nlet cachedRequestAnimationFrameImplementation;\nfunction getRequestAnimationFrameImplementation() {\n if (cachedRequestAnimationFrameImplementation) {\n return cachedRequestAnimationFrameImplementation;\n }\n const document = window.document;\n let requestAnimationFrameImplementation = window.requestAnimationFrame;\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.requestAnimationFrame) {\n requestAnimationFrameImplementation =\n contentWindow.requestAnimationFrame;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n }\n }\n return (cachedRequestAnimationFrameImplementation =\n requestAnimationFrameImplementation.bind(window));\n}\nfunction onRequestAnimationFrame(...rest) {\n return getRequestAnimationFrameImplementation()(...rest);\n}\n\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\n\nfunction _optionalChain$3(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nfunction isNodeInLinkedList(n) {\n return '__ln' in n;\n}\nclass DoubleLinkedList {\n constructor() {\n this.length = 0;\n this.head = null;\n this.tail = null;\n }\n get(position) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = _optionalChain$3([current, 'optionalAccess', _ => _.next]) || null;\n }\n return current;\n }\n addNode(n) {\n const node = {\n value: n,\n previous: null,\n next: null,\n };\n n.__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n const current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n }\n else if (n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous) {\n const current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n }\n else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n if (node.next === null) {\n this.tail = node;\n }\n this.length++;\n }\n removeNode(n) {\n const current = n.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n }\n else {\n this.tail = null;\n }\n }\n else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n }\n else {\n this.tail = current.previous;\n }\n }\n if (n.__ln) {\n delete n.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n this.frozen = false;\n this.locked = false;\n this.texts = [];\n this.attributes = [];\n this.removes = [];\n this.mapRemoves = [];\n this.movedMap = {};\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.processMutations = (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n };\n this.emit = () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n) => {\n let ns = n;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n) => {\n if (!n.parentNode || !inDom(n)) {\n return;\n }\n const parentId = isShadowRoot(n.parentNode)\n ? this.mirror.getId(getShadowHost(n))\n : this.mirror.getId(n.parentNode);\n const nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n const sn = serializeNodeWithId(n, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskAllText: this.maskAllText,\n unblockSelector: this.unblockSelector,\n maskTextClass: this.maskTextClass,\n unmaskTextClass: this.unmaskTextClass,\n maskTextSelector: this.maskTextSelector,\n unmaskTextSelector: this.unmaskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskAttributeFn: this.maskAttributeFn,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(currentN);\n }\n if (hasShadowRoot(n)) {\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn,\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n of this.movedSet) {\n if (isParentRemoved(this.removes, n, this.mirror) &&\n !this.movedSet.has(n.parentNode)) {\n continue;\n }\n pushAdd(n);\n }\n for (const n of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n) &&\n !isParentRemoved(this.removes, n, this.mirror)) {\n pushAdd(n);\n }\n else if (isAncestorInSet(this.movedSet, n)) {\n pushAdd(n);\n }\n else {\n this.droppedSet.add(n);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node = null;\n if (candidate) {\n const parentId = this.mirror.getId(candidate.value.parentNode);\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(_node.value.parentNode);\n const nextId = getNextId(_node.value);\n if (nextId === -1)\n continue;\n else if (parentId !== -1) {\n node = _node;\n break;\n }\n else {\n const unhandledNode = _node.value;\n if (unhandledNode.parentNode &&\n unhandledNode.parentNode.nodeType ===\n Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = unhandledNode.parentNode\n .host;\n const parentId = this.mirror.getId(shadowHost);\n if (parentId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n const payload = {\n texts: this.texts\n .map((text) => ({\n id: this.mirror.getId(text.node),\n value: text.value,\n }))\n .filter((text) => !addedIds.has(text.id))\n .filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes\n .map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === 'string') {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\n attributes.style.split('var(').length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes: attributes,\n };\n })\n .filter((attribute) => !addedIds.has(attribute.id))\n .filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds,\n };\n if (!payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.removes = [];\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n };\n this.processMutation = (m) => {\n if (isIgnored(m.target, this.mirror)) {\n return;\n }\n let unattachedDoc;\n try {\n unattachedDoc = document.implementation.createHTMLDocument();\n }\n catch (e) {\n unattachedDoc = this.doc;\n }\n switch (m.type) {\n case 'characterData': {\n const value = m.target.textContent;\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) &&\n value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && value\n ? this.maskTextFn\n ? this.maskTextFn(value)\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === 'value') {\n const type = getInputType(target);\n const tagName = target.tagName;\n value = getInputValue(target, tagName, type);\n const isInputMasked = shouldMaskInput({\n maskInputOptions: this.maskInputOptions,\n tagName,\n type,\n });\n const forceMask = needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, isInputMasked);\n value = maskInputValue({\n isMasked: forceMask,\n element: target,\n value,\n maskInputFn: this.maskInputFn,\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\n value === m.oldValue) {\n return;\n }\n let item = this.attributes.find((a) => a.node === m.target);\n if (target.tagName === 'IFRAME' &&\n attributeName === 'src' &&\n !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = 'rr_src';\n }\n else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {},\n };\n this.attributes.push(item);\n }\n if (attributeName === 'type' &&\n target.tagName === 'INPUT' &&\n (m.oldValue || '').toLowerCase() === 'password') {\n target.setAttribute('data-rr-is-password', 'true');\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value, target, this.maskAttributeFn);\n if (attributeName === 'style') {\n const old = unattachedDoc.createElement('span');\n if (m.oldValue) {\n old.setAttribute('style', m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === '') {\n item.styleDiff[pname] = newValue;\n }\n else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n }\n else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === '') {\n item.styleDiff[pname] = false;\n }\n }\n }\n }\n break;\n }\n case 'childList': {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, true)) {\n return;\n }\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\n m.removedNodes.forEach((n) => {\n const nodeId = this.mirror.getId(n);\n const parentId = isShadowRoot(m.target)\n ? this.mirror.getId(m.target.host)\n : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\n isIgnored(n, this.mirror) ||\n !isSerialized(n, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n)) {\n deepDelete(this.addedSet, n);\n this.droppedSet.add(n);\n }\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n) &&\n this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n);\n }\n else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\n ? true\n : undefined,\n });\n }\n this.mapRemoves.push(n);\n });\n break;\n }\n }\n };\n this.genAdds = (n, target) => {\n if (this.processedNodeManager.inOtherBuffer(n, this))\n return;\n if (this.addedSet.has(n) || this.movedSet.has(n))\n return;\n if (this.mirror.hasNode(n)) {\n if (isIgnored(n, this.mirror)) {\n return;\n }\n this.movedSet.add(n);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\n }\n }\n else {\n this.addedSet.add(n);\n this.droppedSet.delete(n);\n }\n if (!isBlocked(n, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\n n.childNodes.forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n)) {\n n.shadowRoot.childNodes.forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n);\n });\n }\n }\n };\n }\n init(options) {\n [\n 'mutationCb',\n 'blockClass',\n 'blockSelector',\n 'unblockSelector',\n 'maskAllText',\n 'maskTextClass',\n 'unmaskTextClass',\n 'maskTextSelector',\n 'unmaskTextSelector',\n 'inlineStylesheet',\n 'maskInputOptions',\n 'maskAttributeFn',\n 'maskTextFn',\n 'maskInputFn',\n 'keepIframeSrcFn',\n 'recordCanvas',\n 'inlineImages',\n 'slimDOMOptions',\n 'dataURLOptions',\n 'doc',\n 'mirror',\n 'iframeManager',\n 'stylesheetManager',\n 'shadowDomManager',\n 'canvasManager',\n 'processedNodeManager',\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n) {\n addsSet.delete(n);\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction isParentRemoved(removes, n, mirror) {\n if (removes.length === 0)\n return false;\n return _isParentRemoved(removes, n, mirror);\n}\nfunction _isParentRemoved(removes, n, mirror) {\n const { parentNode } = n;\n if (!parentNode) {\n return false;\n }\n const parentId = mirror.getId(parentNode);\n if (removes.some((r) => r.id === parentId)) {\n return true;\n }\n return _isParentRemoved(removes, parentNode, mirror);\n}\nfunction isAncestorInSet(set, n) {\n if (set.size === 0)\n return false;\n return _isAncestorInSet(set, n);\n}\nfunction _isAncestorInSet(set, n) {\n const { parentNode } = n;\n if (!parentNode) {\n return false;\n }\n if (set.has(parentNode)) {\n return true;\n }\n return _isAncestorInSet(set, parentNode);\n}\n\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = undefined;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = ((...rest) => {\n try {\n return cb(...rest);\n }\n catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return () => {\n };\n }\n throw error;\n }\n });\n return rrwebWrapped;\n};\n\nfunction _optionalChain$2(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if ('composedPath' in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n }\n else if ('path' in event && event.path.length) {\n return event.path[0];\n }\n }\n catch (e2) {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n let mutationObserverCtor = window.MutationObserver ||\n window.__rrMutationObserver;\n const angularZoneSymbol = _optionalChain$2([window, 'optionalAccess', _ => _.Zone, 'optionalAccess', _2 => _2.__symbol__, 'optionalCall', _3 => _3('MutationObserver')]);\n if (angularZoneSymbol &&\n window[angularZoneSymbol]) {\n mutationObserverCtor = window[angularZoneSymbol];\n }\n const observer = new mutationObserverCtor(callbackWrapper((mutations) => {\n if (options.onMutation && options.onMutation(mutations) === false) {\n return;\n }\n mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\n }));\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n });\n return observer;\n}\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle$1(callbackWrapper((source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }), source);\n positions = [];\n timeBaseline = null;\n }), callbackThreshold);\n const updatePosition = callbackWrapper(throttle$1(callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target),\n timeOffset: nowTimestamp() - timeBaseline,\n });\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : IncrementalSource.TouchMove);\n }), threshold, {\n trailing: false,\n }));\n const handlers = [\n on('mousemove', updatePosition, doc),\n on('touchmove', updatePosition, doc),\n on('drag', updatePosition, doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if ('pointerType' in event) {\n switch (event.pointerType) {\n case 'mouse':\n pointerType = PointerTypes.Mouse;\n break;\n case 'touch':\n pointerType = PointerTypes.Touch;\n break;\n case 'pen':\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = 'TouchStart';\n }\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = 'TouchEnd';\n }\n }\n else if (pointerType === PointerTypes.Pen) ;\n }\n else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if ((thisEventKey.startsWith('Touch') &&\n pointerType === PointerTypes.Touch) ||\n (thisEventKey.startsWith('Mouse') &&\n pointerType === PointerTypes.Mouse)) {\n pointerType = null;\n }\n }\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n const id = mirror.getId(target);\n const { clientX, clientY } = e;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...(pointerType !== null && { pointerType }),\n });\n };\n };\n Object.keys(MouseInteractions)\n .filter((key) => Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false)\n .forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace('mouse', 'pointer');\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\n const updatePosition = callbackWrapper(throttle$1(callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const id = mirror.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top,\n });\n }\n else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop,\n });\n }\n }), sampling.scroll || 100));\n return on('scroll', updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(throttle$1(callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height),\n });\n lastH = height;\n lastW = width;\n }\n }), 200));\n return on('resize', updateDimension, win);\n}\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nconst lastInputValueMap = new WeakMap();\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, unblockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, }) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && toUpperCase(target.tagName);\n if (tagName === 'OPTION')\n target = target.parentElement;\n if (!target ||\n !tagName ||\n INPUT_TAGS.indexOf(tagName) < 0 ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const el = target;\n if (el.classList.contains(ignoreClass) ||\n (ignoreSelector && el.matches(ignoreSelector))) {\n return;\n }\n const type = getInputType(target);\n let text = getInputValue(el, tagName, type);\n let isChecked = false;\n const isInputMasked = shouldMaskInput({\n maskInputOptions,\n tagName,\n type,\n });\n const forceMask = needMaskingText(target, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked);\n if (type === 'radio' || type === 'checkbox') {\n isChecked = target.checked;\n }\n text = maskInputValue({\n isMasked: forceMask,\n element: target,\n value: text,\n maskInputFn,\n });\n cbWithDedup(target, userTriggeredOnInput\n ? { text, isChecked, userTriggered }\n : { text, isChecked });\n const name = target.name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\n .forEach((el) => {\n if (el !== target) {\n const text = maskInputValue({\n isMasked: forceMask,\n element: el,\n value: getInputValue(el, tagName, type),\n maskInputFn,\n });\n cbWithDedup(el, userTriggeredOnInput\n ? { text, isChecked: !isChecked, userTriggered: false }\n : { text, isChecked: !isChecked });\n }\n });\n }\n }\n function cbWithDedup(target, v) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked) {\n lastInputValueMap.set(target, v);\n const id = mirror.getId(target);\n callbackWrapper(inputCb)({\n ...v,\n id,\n });\n }\n }\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, 'value'],\n [currentWindow.HTMLInputElement.prototype, 'checked'],\n [currentWindow.HTMLSelectElement.prototype, 'value'],\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false,\n });\n },\n }, false, currentWindow)));\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule) {\n const positions = [];\n function recurse(childRule, pos) {\n if ((hasNestedCSSRule('CSSGroupingRule') &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (hasNestedCSSRule('CSSMediaRule') &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (hasNestedCSSRule('CSSSupportsRule') &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (hasNestedCSSRule('CSSConditionRule') &&\n childRule.parentRule instanceof CSSConditionRule)) {\n const rules = Array.from(childRule.parentRule.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n else if (childRule.parentStyleSheet) {\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\n let id, styleId;\n if (!sheet)\n return {};\n if (sheet.ownerNode)\n id = mirror.getId(sheet.ownerNode);\n else\n styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id,\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [rule, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule, index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n }\n else {\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n insertRule: type.prototype.insertRule,\n deleteRule: type.prototype.deleteRule,\n };\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [rule, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index || 0,\n ],\n },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index] },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\n let hostId = null;\n if (host.nodeName === '#document')\n hostId = mirror.getId(host);\n else\n hostId = mirror.getId(host.host);\n const patchTarget = host.nodeName === '#document'\n ? _optionalChain$2([host, 'access', _4 => _4.defaultView, 'optionalAccess', _5 => _5.Document])\n : _optionalChain$2([host, 'access', _6 => _6.ownerDocument, 'optionalAccess', _7 => _7.defaultView, 'optionalAccess', _8 => _8.ShadowRoot]);\n const originalPropertyDescriptor = _optionalChain$2([patchTarget, 'optionalAccess', _9 => _9.prototype])\n ? Object.getOwnPropertyDescriptor(_optionalChain$2([patchTarget, 'optionalAccess', _10 => _10.prototype]), 'adoptedStyleSheets')\n : undefined;\n if (hostId === null ||\n hostId === -1 ||\n !patchTarget ||\n !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n return _optionalChain$2([originalPropertyDescriptor, 'access', _11 => _11.get, 'optionalAccess', _12 => _12.call, 'call', _13 => _13(this)]);\n },\n set(sheets) {\n const result = _optionalChain$2([originalPropertyDescriptor, 'access', _14 => _14.set, 'optionalAccess', _15 => _15.call, 'call', _16 => _16(this, sheets)]);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n }\n catch (e) {\n }\n }\n return result;\n },\n });\n return callbackWrapper(() => {\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get: originalPropertyDescriptor.get,\n set: originalPropertyDescriptor.set,\n });\n });\n}\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(_optionalChain$2([thisArg, 'access', _17 => _17.parentRule, 'optionalAccess', _18 => _18.parentStyleSheet]), mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority,\n },\n index: getNestedCSSRulePositions(thisArg.parentRule),\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(_optionalChain$2([thisArg, 'access', _19 => _19.parentRule, 'optionalAccess', _20 => _20.parentStyleSheet]), mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property,\n },\n index: getNestedCSSRulePositions(thisArg.parentRule),\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, unblockSelector, mirror, sampling, doc, }) {\n const handler = callbackWrapper((type) => throttle$1(callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate } = target;\n mediaInteractionCb({\n type,\n id: mirror.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n });\n }), sampling.media || 500));\n const handlers = [\n on('play', handler(0), doc),\n on('pause', handler(1), doc),\n on('seeked', handler(2), doc),\n on('volumechange', handler(3), doc),\n on('ratechange', handler(4), doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== 'string',\n descriptors,\n fontSource: typeof source === 'string'\n ? source\n : JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n };\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\n return function (fontFace) {\n setTimeout(callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }), 0);\n return original.apply(this, [fontFace]);\n };\n });\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, selectionCb, } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || (collapsed && _optionalChain$2([selection, 'optionalAccess', _21 => _21.isCollapsed])))\n return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i = 0; i < count; i++) {\n const range = selection.getRangeAt(i);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, unblockSelector, true) ||\n isBlocked(endContainer, blockClass, blockSelector, unblockSelector, true);\n if (blocked)\n continue;\n ranges.push({\n start: mirror.getId(startContainer),\n startOffset,\n end: mirror.getId(endContainer),\n endOffset,\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on('selectionchange', updateSelection);\n}\nfunction initCustomElementObserver({ doc, customElementCb, }) {\n const win = doc.defaultView;\n if (!win || !win.customElements)\n return () => { };\n const restoreHandler = patch(win.customElements, 'define', function (original) {\n return function (name, constructor, options) {\n try {\n customElementCb({\n define: {\n name,\n },\n });\n }\n catch (e) {\n }\n return original.apply(this, [name, constructor, options]);\n };\n });\n return restoreHandler;\n}\nfunction initObservers(o, _hooks = {}) {\n const currentWindow = o.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n const mutationObserver = initMutationObserver(o, o.doc);\n const mousemoveHandler = initMoveObserver(o);\n const mouseInteractionHandler = initMouseInteractionObserver(o);\n const scrollHandler = initScrollObserver(o);\n const viewportResizeHandler = initViewportResizeObserver(o, {\n win: currentWindow,\n });\n const inputHandler = initInputObserver(o);\n const mediaInteractionHandler = initMediaInteractionObserver(o);\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n const fontObserver = o.collectFonts\n ? initFontObserver(o)\n : () => {\n };\n const selectionObserver = initSelectionObserver(o);\n const customElementObserver = initCustomElementObserver(o);\n const pluginHandlers = [];\n for (const plugin of o.plugins) {\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== 'undefined';\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(typeof window[prop] !== 'undefined' &&\n window[prop].prototype &&\n 'insertRule' in window[prop].prototype &&\n 'deleteRule' in window[prop].prototype);\n}\n\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n this.generateIdFn = generateIdFn;\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== 'number')\n return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId)\n return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\n\nfunction _optionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nclass IframeManagerNoop {\n constructor() {\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n this.crossOriginIframeRootIdMap = new WeakMap();\n }\n addIframe() {\n }\n addLoadListener() {\n }\n attachIframe() {\n }\n}\nclass IframeManager {\n constructor(options) {\n this.iframes = new WeakMap();\n this.crossOriginIframeMap = new WeakMap();\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n this.crossOriginIframeRootIdMap = new WeakMap();\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener('message', this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n _optionalChain$1([this, 'access', _ => _.loadListener, 'optionalCall', _2 => _2(iframeEl)]);\n if (iframeEl.contentDocument &&\n iframeEl.contentDocument.adoptedStyleSheets &&\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow)\n return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl)\n return;\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\n if (transformedEvent)\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\n }\n transformCrossOriginEvent(iframeEl, e) {\n switch (e.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e.data.node, iframeEl);\n const rootId = e.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e.data.node, rootId);\n return {\n timestamp: e.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e.data.node,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n },\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e;\n }\n case EventType.Custom: {\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\n return e;\n }\n case EventType.IncrementalSnapshot: {\n switch (e.data.source) {\n case IncrementalSource.Mutation: {\n e.data.adds.forEach((n) => {\n this.replaceIds(n, iframeEl, [\n 'parentId',\n 'nextId',\n 'previousId',\n ]);\n this.replaceIdOnNode(n.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n.node, rootId);\n });\n e.data.removes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\n });\n e.data.attributes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n e.data.texts.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e.data, iframeEl, ['id']);\n return e;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\n return e;\n }\n case IncrementalSource.Font: {\n return e;\n }\n case IncrementalSource.Selection: {\n e.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, ['start', 'end']);\n });\n return e;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\n _optionalChain$1([e, 'access', _3 => _3.data, 'access', _4 => _4.styles, 'optionalAccess', _5 => _5.forEach, 'call', _6 => _6((style) => {\n this.replaceStyleIds(style, iframeEl, ['styleId']);\n })]);\n return e;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\n continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\n }\n else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node, iframeEl) {\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node, rootId) {\n if (node.type !== NodeType$1.Document && !node.rootId)\n node.rootId = rootId;\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\n\nclass ShadowDomManagerNoop {\n init() {\n }\n addShadowRoot() {\n }\n observeAttachShadow() {\n }\n reset() {\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n this.shadowDoms = new WeakSet();\n this.restoreHandlers = [];\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot, doc) {\n if (!isNativeShadowDom(shadowRoot))\n return;\n if (this.shadowDoms.has(shadowRoot))\n return;\n this.shadowDoms.add(shadowRoot);\n const observer = initMutationObserver({\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this,\n }, shadowRoot);\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n doc: shadowRoot,\n mirror: this.mirror,\n }));\n setTimeout(() => {\n if (shadowRoot.adoptedStyleSheets &&\n shadowRoot.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager,\n }, shadowRoot));\n }, 0);\n }\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\n return;\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\n }\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\n return function (option) {\n const shadowRoot = original.call(this, option);\n if (this.shadowRoot && inDom(this))\n manager.addShadowRoot(this.shadowRoot, doc);\n return shadowRoot;\n };\n }));\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n }\n catch (e) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = new WeakSet();\n }\n}\n\nclass CanvasManagerNoop {\n reset() {\n }\n freeze() {\n }\n unfreeze() {\n }\n lock() {\n }\n unlock() {\n }\n snapshot() {\n }\n}\n\nclass StylesheetManager {\n constructor(options) {\n this.trackedLinkElements = new WeakSet();\n this.styleMirror = new StyleSheetMirror();\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if ('_cssText' in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn\n .attributes,\n },\n ],\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl))\n return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0)\n return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: [],\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\n rule: stringifyRule(r),\n index,\n })),\n });\n }\n else\n styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0)\n adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = new WeakSet();\n }\n trackStylesheetInLinkElement(linkEl) {\n }\n}\n\nclass ProcessedNodeManager {\n constructor() {\n this.nodeMap = new WeakMap();\n this.loop = true;\n this.periodicallyClear();\n }\n periodicallyClear() {\n onRequestAnimationFrame(() => {\n this.clear();\n if (this.loop)\n this.periodicallyClear();\n });\n }\n inOtherBuffer(node, thisBuffer) {\n const buffers = this.nodeMap.get(node);\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\n }\n add(node, buffer) {\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\n }\n clear() {\n this.nodeMap = new WeakMap();\n }\n destroy() {\n this.loop = false;\n }\n}\n\nfunction wrapEvent(e) {\n const eWithTime = e;\n eWithTime.timestamp = nowTimestamp();\n return eWithTime;\n}\nlet _takeFullSnapshot;\nconst mirror = createMirror();\nfunction record(options = {}) {\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, unblockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskAttributeFn, maskInputFn, maskTextFn, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\n ? options.recordAfter\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, onMutation, getCanvasManager, } = options;\n registerErrorHandler(errorHandler);\n const inEmittingFrame = recordCrossOriginIframes\n ? window.parent === window\n : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n }\n catch (e) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error('emit function is required');\n }\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n radio: true,\n checkbox: true,\n }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : {};\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\n ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n headMetaAuthorship: _slimDOMOptions === 'all',\n headMetaDescKeywords: _slimDOMOptions === 'all',\n }\n : _slimDOMOptions\n ? _slimDOMOptions\n : {};\n polyfill();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e) => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n if (packFn &&\n !passEmitsToParent) {\n e = packFn(e);\n }\n return e;\n };\n const wrappedEmit = (e, isCheckout) => {\n if (_optionalChain([mutationBuffers, 'access', _ => _[0], 'optionalAccess', _2 => _2.isFrozen, 'call', _3 => _3()]) &&\n e.type !== EventType.FullSnapshot &&\n !(e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n _optionalChain([emit, 'optionalCall', _4 => _4(eventProcessor(e), isCheckout)]);\n }\n else if (passEmitsToParent) {\n const message = {\n type: 'rrweb',\n event: eventProcessor(e),\n origin: window.location.origin,\n isCheckout,\n };\n window.parent.postMessage(message, '*');\n }\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n }\n else if (e.type === EventType.IncrementalSnapshot) {\n if (e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m,\n },\n }));\n };\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p,\n },\n }));\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n }));\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a,\n },\n }));\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\n });\n const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === 'boolean' && __RRWEB_EXCLUDE_IFRAME__\n ? new IframeManagerNoop()\n : new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager: stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit,\n });\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n const canvasManager = _getCanvasManager(getCanvasManager, {\n mirror,\n win: window,\n mutationCb: (p) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n })),\n recordCanvas,\n blockClass,\n blockSelector,\n unblockSelector,\n sampling: sampling['canvas'],\n dataURLOptions,\n errorHandler,\n });\n const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === 'boolean' &&\n __RRWEB_EXCLUDE_SHADOW_DOM__\n ? new ShadowDomManagerNoop()\n : new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n onMutation,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager,\n },\n mirror,\n });\n const takeFullSnapshot = (isCheckout = false) => {\n wrappedEmit(wrapEvent({\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight(),\n },\n }), isCheckout);\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskAttributeFn,\n maskInputFn,\n maskTextFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n) => {\n if (isSerializedIframe(n, mirror)) {\n iframeManager.addIframe(n);\n }\n if (isSerializedStylesheet(n, mirror)) {\n stylesheetManager.trackLinkElement(n);\n }\n if (hasShadowRoot(n)) {\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn,\n });\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n wrappedEmit(wrapEvent({\n type: EventType.FullSnapshot,\n data: {\n node,\n initialOffset: getWindowScroll(window),\n },\n }));\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\n };\n _takeFullSnapshot = takeFullSnapshot;\n try {\n const handlers = [];\n const observe = (doc) => {\n return callbackWrapper(initObservers)({\n onMutation,\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions,\n },\n })),\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d,\n },\n })),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d,\n },\n })),\n inputCb: (v) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v,\n },\n })),\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p,\n },\n })),\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r,\n },\n })),\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r,\n },\n })),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p,\n },\n })),\n selectionCb: (p) => {\n wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p,\n },\n }));\n },\n customElementCb: (c) => {\n wrappedEmit(wrapEvent({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c,\n },\n }));\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskAttributeFn,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n unblockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: _optionalChain([plugins\n, 'optionalAccess', _5 => _5.filter, 'call', _6 => _6((p) => p.observer)\n, 'optionalAccess', _7 => _7.map, 'call', _8 => _8((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit(wrapEvent({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload,\n },\n })),\n }))]) || [],\n }, {});\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n }\n catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot();\n handlers.push(observe(document));\n };\n if (document.readyState === 'interactive' ||\n document.readyState === 'complete') {\n init();\n }\n else {\n handlers.push(on('DOMContentLoaded', () => {\n wrappedEmit(wrapEvent({\n type: EventType.DomContentLoaded,\n data: {},\n }));\n if (recordAfter === 'DOMContentLoaded')\n init();\n }));\n handlers.push(on('load', () => {\n wrappedEmit(wrapEvent({\n type: EventType.Load,\n data: {},\n }));\n if (recordAfter === 'load')\n init();\n }, window));\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n _takeFullSnapshot = undefined;\n unregisterErrorHandler();\n };\n }\n catch (error) {\n console.warn(error);\n }\n}\nfunction takeFullSnapshot(isCheckout) {\n if (!_takeFullSnapshot) {\n throw new Error('please take full snapshot after start recording');\n }\n _takeFullSnapshot(isCheckout);\n}\nrecord.mirror = mirror;\nrecord.takeFullSnapshot = takeFullSnapshot;\nfunction _getCanvasManager(getCanvasManagerFn, options) {\n try {\n return getCanvasManagerFn\n ? getCanvasManagerFn(options)\n : new CanvasManagerNoop();\n }\n catch (e2) {\n console.warn('Unable to initialize CanvasManager');\n return new CanvasManagerNoop();\n }\n}\n\nconst ReplayEventTypeIncrementalSnapshot = 3;\nconst ReplayEventTypeCustom = 5;\n\n/**\n * Converts a timestamp to ms, if it was in s, or keeps it as ms.\n */\nfunction timestampToMs(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp : timestamp * 1000;\n}\n\n/**\n * Converts a timestamp to s, if it was in ms, or keeps it as s.\n */\nfunction timestampToS(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Add a breadcrumb event to replay.\n */\nfunction addBreadcrumbEvent(replay, breadcrumb) {\n if (breadcrumb.category === 'sentry.transaction') {\n return;\n }\n\n if (['ui.click', 'ui.input'].includes(breadcrumb.category )) {\n replay.triggerUserActivity();\n } else {\n replay.checkAndHandleExpiredSession();\n }\n\n replay.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n // but maybe we should just keep them as milliseconds\n timestamp: (breadcrumb.timestamp || 0) * 1000,\n data: {\n tag: 'breadcrumb',\n // normalize to max. 10 depth and 1_000 properties per object\n payload: normalize(breadcrumb, 10, 1000),\n },\n });\n\n // Do not flush after console log messages\n return breadcrumb.category === 'console';\n });\n}\n\nconst INTERACTIVE_SELECTOR = 'button,a';\n\n/** Get the closest interactive parent element, or else return the given element. */\nfunction getClosestInteractive(element) {\n const closestInteractive = element.closest(INTERACTIVE_SELECTOR);\n return closestInteractive || element;\n}\n\n/**\n * For clicks, we check if the target is inside of a button or link\n * If so, we use this as the target instead\n * This is useful because if you click on the image in ,\n * The target will be the image, not the button, which we don't want here\n */\nfunction getClickTargetNode(event) {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n\n/** Get the event target node. */\nfunction getTargetNode(event) {\n if (isEventWithTarget(event)) {\n return event.target ;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event) {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n\nlet handlers;\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nfunction onWindowOpen(cb) {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers ).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen() {\n fill(WINDOW, 'open', function (originalWindowOpen) {\n return function (...args) {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n\n/** Handle a click. */\nfunction handleClick(clickDetector, clickBreadcrumb, node) {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nclass ClickDetector {\n // protected for testing\n\n constructor(\n replay,\n slowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n addListeners() {\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n this._teardown = () => {\n cleanupWindowOpen();\n\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n removeListeners() {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** @inheritDoc */\n handleClick(breadcrumb, node) {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** @inheritDoc */\n registerMutation(timestamp = Date.now()) {\n this._lastMutation = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerScroll(timestamp = Date.now()) {\n this._lastScroll = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerClick(element) {\n const node = getClosestInteractive(element);\n this._handleMultiClick(node );\n }\n\n /** Count multiple clicks on elements. */\n _handleMultiClick(node) {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n _getClicks(node) {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n _checkClicks() {\n const timedOutClicks = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n _generateBreadcrumbs(click) {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n _scheduleCheckClicks() {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nfunction ignoreElement(node, ignoreSelector) {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If
tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb) {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds() {\n return Date.now() / 1000;\n}\n\n/** Update the click detector based on a recording event of rrweb. */\nfunction updateClickDetectorForRecordingEvent(clickDetector, event) {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n const { source } = event.data;\n if (source === IncrementalSource.Mutation) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n const { type, id } = event.data;\n const node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch (e) {\n // ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event) {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(\n event,\n) {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n\n/**\n * Create a breadcrumb for a replay.\n */\nfunction createBreadcrumb(\n breadcrumb,\n) {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\n\n// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n 'data-sentry-component',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nfunction getAttributesToRecord(attributes) {\n const obj = {};\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n\nconst handleDomListener = (\n replay,\n) => {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick ? (handlerData.event ) : undefined;\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n event.target &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result ,\n getClickTargetNode(handlerData.event ) ,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nfunction getBaseDomBreadcrumb(target, message) {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text ).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nfunction handleDom(handlerData) {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData) {\n const isClick = handlerData.name === 'click';\n\n let message;\n let target = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event ) : getTargetNode(handlerData.event );\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n } catch (e) {\n message = '';\n }\n\n return { target, message };\n}\n\nfunction isElement(node) {\n return node.type === NodeType.Element;\n}\n\n/** Handle keyboard events & create breadcrumbs. */\nfunction handleKeyboardEvent(replay, event) {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nfunction getKeyboardBreadcrumb(event) {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target ) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n const baseBreadcrumb = getBaseDomBreadcrumb(target , message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target) {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES\n\n = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nfunction createPerformanceEntries(\n entries,\n) {\n return entries.map(createPerformanceEntry).filter(Boolean) ;\n}\n\nfunction createPerformanceEntry(entry) {\n if (!ENTRY_TYPES[entry.entryType]) {\n return null;\n }\n\n return ENTRY_TYPES[entry.entryType](entry);\n}\n\nfunction getAbsoluteTime(time) {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry) {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry) {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry,\n) {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on an LCP metric.\n */\nfunction getLargestContentfulPaint(metric\n\n) {\n const entries = metric.entries;\n const lastEntry = entries[entries.length - 1] ;\n const element = lastEntry ? lastEntry.element : undefined;\n\n const value = metric.value;\n\n const end = getAbsoluteTime(value);\n\n const data = {\n type: 'largest-contentful-paint',\n name: 'largest-contentful-paint',\n start: end,\n end,\n data: {\n value,\n size: value,\n nodeId: element ? record.mirror.getId(element) : undefined,\n },\n };\n\n return data;\n}\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nfunction setupPerformanceObserver(replay) {\n function addPerformanceEntry(entry) {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }) {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks = [];\n\n (['navigation', 'paint', 'resource'] ).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(({ metric }) => {\n replay.replayPerformanceEntries.push(getLargestContentfulPaint(metric));\n }),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nconst r = `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,a=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),s=a.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(a,n),O(a,s-8,r.d()),O(a,s-4,e),a}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),G=\"undefined\"!=typeof TextEncoder&&new TextEncoder,H=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(r){for(var e=new t(n.length),i=0;i>1)),o=0,f=function(t){s[o++]=t};for(i=0;is.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(let r=0,e=t.length;r{this._deflatedData.push(t)},this.stream=new J(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\"[\")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener(\"message\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&\"function\"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n\nfunction e(){const e=new Blob([r]);return URL.createObjectURL(e)}\n\n/**\n * Log a message in debug mode, and add a breadcrumb when _experiment.traceInternals is enabled.\n */\nfunction logInfo(message, shouldAddBreadcrumb) {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n addLogBreadcrumb(message);\n }\n}\n\n/**\n * Log a message, and add a breadcrumb in the next tick.\n * This is necessary when the breadcrumb may be added before the replay is initialized.\n */\nfunction logInfoNextTick(message, shouldAddBreadcrumb) {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n // Wait a tick here to avoid race conditions for some initial logs\n // which may be added before replay is initialized\n setTimeout(() => {\n addLogBreadcrumb(message);\n }, 0);\n }\n}\n\nfunction addLogBreadcrumb(message) {\n addBreadcrumb(\n {\n category: 'console',\n data: {\n logger: 'replay',\n },\n level: 'info',\n message,\n },\n { level: 'info' },\n );\n}\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nclass EventBufferSizeExceededError extends Error {\n constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nclass EventBufferArray {\n /** All the events that are buffered to be sent. */\n\n /** @inheritdoc */\n\n constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n get type() {\n return 'sync';\n }\n\n /** @inheritdoc */\n destroy() {\n this.events = [];\n }\n\n /** @inheritdoc */\n async addEvent(event) {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n finish() {\n return new Promise(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n clear() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass WorkerHandler {\n\n constructor(worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }) => {\n if ((data ).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n destroy() {\n logInfo('[Replay] Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n postMessage(method, arg) {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }) => {\n const response = data ;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('[Replay]', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response );\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n _getAndIncrementId() {\n return this._id++;\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass EventBufferCompressionWorker {\n /** @inheritdoc */\n\n constructor(worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n get type() {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n destroy() {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n addEvent(event) {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n finish() {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n clear() {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n this._worker.postMessage('clear').then(null, e => {\n DEBUG_BUILD && logger.warn('[Replay] Sending \"clear\" message to worker failed', e);\n });\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n _sendEventToWorker(data) {\n return this._worker.postMessage('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n async _finishRequest() {\n const response = await this._worker.postMessage('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nclass EventBufferProxy {\n\n constructor(worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n get type() {\n return this._used.type;\n }\n\n /** @inheritDoc */\n get hasEvents() {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n get hasCheckout() {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n set hasCheckout(value) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n destroy() {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n clear() {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n addEvent(event) {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n async finish() {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n ensureWorkerIsLoaded() {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n async _ensureWorkerIsLoaded() {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n logInfo('[Replay] Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n async _switchToCompressionWorker() {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to add events when switching buffers.', error);\n }\n }\n}\n\n/**\n * Create an event buffer for replays.\n */\nfunction createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}) {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n logInfo('[Replay] Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl) {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n logInfo(`[Replay] Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n logInfo('[Replay] Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl() {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return e();\n }\n\n return '';\n}\n\n/** If sessionStorage is available. */\nfunction hasSessionStorage() {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nfunction clearSession(replay) {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession() {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nfunction isSampled(sampleRate) {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n\n/**\n * Get a session with defaults & applied sampling.\n */\nfunction makeSession(session) {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n\n/**\n * Save a session to session storage.\n */\nfunction saveSession(session) {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nfunction getSessionSampleType(sessionSampleRate, allowBuffering) {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nfunction createSession(\n { sessionSampleRate, allowBuffering, stickySession = false },\n { previousSessionId } = {},\n) {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n\n/**\n * Fetches a session from storage\n */\nfunction fetchSession(traceInternals) {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) ;\n\n logInfoNextTick('[Replay] Loading existing session', traceInternals);\n\n return makeSession(sessionObj);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nfunction isExpired(\n initialTime,\n expiry,\n targetTime = +new Date(),\n) {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n\n/**\n * Checks to see if session is expired\n */\nfunction isSessionExpired(\n session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n },\n) {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n\n/** If the session should be refreshed or not. */\nfunction shouldRefreshSession(\n session,\n { sessionIdleExpire, maxReplayDuration },\n) {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nfunction loadOrCreateSession(\n {\n traceInternals,\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }\n\n,\n sessionOptions,\n) {\n const existingSession = sessionOptions.stickySession && fetchSession(traceInternals);\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n logInfoNextTick('[Replay] Creating new session', traceInternals);\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n logInfoNextTick('[Replay] Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n\nfunction isCustomEvent(event) {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEventSync(replay, event, isCheckout) {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n\n DEBUG_BUILD && logger.error(error);\n await replay.stop({ reason });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nfunction shouldAddEvent(replay, event) {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n logInfo(\n `[Replay] Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`,\n replay.getOptions()._experiments.traceInternals,\n );\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event,\n callback,\n) {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD &&\n logger.error('[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...', error);\n return null;\n }\n\n return event;\n}\n\n/** If the event is an error event */\nfunction isErrorEvent(event) {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nfunction isReplayEvent(event) {\n return event.type === 'replay_event';\n}\n\n/** If the event is a feedback event */\nfunction isFeedbackEvent(event) {\n return event.type === 'feedback';\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleAfterSendEvent(replay) {\n // Custom transports may still be returning `Promise`, which means we cannot expect the status code to be available there\n // TODO (v8): remove this check as it will no longer be necessary\n const enforceStatusCode = isBaseTransportSend();\n\n return (event, sendResponse) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (enforceStatusCode && (!statusCode || statusCode < 200 || statusCode >= 300)) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id );\n }\n}\n\nfunction handleErrorEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n const { beforeErrorSampling } = replay.getOptions();\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout(() => {\n // Capture current event buffer as new replay\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.sendBufferedReplayOrFlush();\n });\n}\n\nfunction isBaseTransportSend() {\n const client = getClient();\n if (!client) {\n return false;\n }\n\n const transport = client.getTransport();\n if (!transport) {\n return false;\n }\n\n return (\n (transport.send ).__sentry__baseTransport__ || false\n );\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleBeforeSendEvent(replay) {\n return (event) => {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay, event) {\n const exceptionValue = event.exception && event.exception.values && event.exception.values[0].value;\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if (\n // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n exceptionValue.match(/reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=(418|419|422|423|425)/) ||\n // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n ) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nfunction isRrwebError(event, hint) {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Add a feedback breadcrumb event to replay.\n */\nfunction addFeedbackBreadcrumb(replay, event) {\n replay.triggerUserActivity();\n replay.addUpdate(() => {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id,\n },\n },\n },\n } );\n\n return false;\n });\n}\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nfunction shouldSampleForBufferEvent(replay, event) {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\nfunction handleGlobalEventListener(\n replay,\n includeAfterSendEventHandling = false,\n) {\n const afterSendHandler = includeAfterSendEventHandling ? handleAfterSendEvent(replay) : undefined;\n\n return Object.assign(\n (event, hint) => {\n // Do nothing if replay has been disabled\n if (!replay.isEnabled()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors, transactions, and feedbacks, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId();\n // Add a replay breadcrumb for this piece of feedback\n addFeedbackBreadcrumb(replay, event);\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('[Replay] Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n // In cases where a custom client is used that does not support the new hooks (yet),\n // we manually call this hook method here\n if (afterSendHandler) {\n // Pretend the error had a 200 response so we always capture it\n afterSendHandler(event, { statusCode: 200 });\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n\n/**\n * Create a \"span\" for each performance entry.\n */\nfunction createPerformanceSpans(\n replay,\n entries,\n) {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n\nfunction handleHistory(handlerData) {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\nfunction handleHistorySpanListener(replay) {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nfunction shouldFilterRequest(replay, url) {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n\n/** Add a performance entry breadcrumb */\nfunction addNetworkBreadcrumb(\n replay,\n result,\n) {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n\n/** only exported for tests */\nfunction handleFetch(handlerData) {\n const { startTimestamp, endTimestamp, fetchData, response } = handlerData;\n\n if (!endTimestamp) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url } = fetchData;\n\n return {\n type: 'resource.fetch',\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: {\n method,\n statusCode: response ? (response ).status : undefined,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addFetchInstrumentationHandler(listener)`.\n */\nfunction handleFetchSpanListener(replay) {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleFetch(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n\n/** only exported for tests */\nfunction handleXhr(handlerData) {\n const { startTimestamp, endTimestamp, xhr } = handlerData;\n\n const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url, status_code: statusCode } = sentryXhrData;\n\n if (url === undefined) {\n return null;\n }\n\n return {\n type: 'resource.xhr',\n name: url,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n data: {\n method,\n statusCode,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addXhrInstrumentationHandler(listener)`.\n */\nfunction handleXhrSpanListener(replay) {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleXhr(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n\n/** Get the size of a body. */\nfunction getBodySize(\n body,\n textEncoder,\n) {\n if (!body) {\n return undefined;\n }\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch (e) {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nfunction parseContentLengthHeader(header) {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nfunction getBodyString(body) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (e2) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\n/** Merge a warning into an existing network request/response. */\nfunction mergeWarning(\n info,\n warning,\n) {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning],\n },\n };\n }\n\n const newMeta = { ...info._meta };\n const existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [...existingWarnings, warning];\n\n info._meta = newMeta;\n return info;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nfunction makeNetworkReplayBreadcrumb(\n type,\n data,\n) {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nfunction buildSkippedNetworkRequestOrResponse(bodySize) {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nfunction buildNetworkRequestOrResponse(\n headers,\n bodySize,\n body,\n) {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nfunction getAllowedHeaders(headers, allowedHeaders) {\n return Object.keys(headers).reduce((filteredHeaders, key) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = headers[key];\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData) {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body)\n\n {\n if (!body || typeof body !== 'string') {\n return {\n body,\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n const isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED'],\n };\n }\n\n return {\n body: `${truncatedBody}…`,\n warnings: ['TEXT_TRUNCATED'],\n };\n }\n\n if (isProbablyJson) {\n try {\n const jsonBody = JSON.parse(body);\n return {\n body: jsonBody,\n };\n } catch (e3) {\n // fall back to just send the body as string\n }\n }\n\n return {\n body,\n };\n}\n\nfunction _strIsProbablyJson(str) {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nfunction urlMatches(url, urls) {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nfunction getFullUrl(url, baseURI = WINDOW.document.baseURI) {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureFetchBreadcrumbToReplay(\n breadcrumb,\n hint,\n options\n\n,\n) {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture fetch breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichFetchBreadcrumb(\n breadcrumb,\n hint,\n options,\n) {\n const { input, response } = hint;\n\n const body = input ? _getFetchRequestArgBody(input) : undefined;\n const reqSize = getBodySize(body, options.textEncoder);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb,\n hint,\n options\n\n,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders },\n input,\n requestBodySize,\n) {\n const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const [bodyStr, warning] = getBodyString(requestBody);\n const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n\n/** Exported only for tests. */\nasync function _getResponseInfo(\n captureDetails,\n {\n networkCaptureBodies,\n textEncoder,\n networkResponseHeaders,\n }\n\n,\n response,\n responseBodySize,\n) {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n const [bodyText, warning] = await _parseFetchResponseBody(response);\n const result = getResponseData(bodyText, {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n });\n\n if (warning) {\n return mergeWarning(result, warning);\n }\n\n return result;\n}\n\nfunction getResponseData(\n bodyText,\n {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n }\n\n,\n) {\n try {\n const size =\n bodyText && bodyText.length && responseBodySize === undefined\n ? getBodySize(bodyText, textEncoder)\n : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize response body', error);\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchResponseBody(response) {\n const res = _tryCloneResponse(response);\n\n if (!res) {\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n try {\n const text = await _tryGetResponseText(res);\n return [text];\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to get text body from response', error);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs = []) {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] ).body;\n}\n\nfunction getAllHeaders(headers, allowedHeaders) {\n const allHeaders = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) ;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs, allowedHeaders) {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] , allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] , allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input,\n allowedHeaders,\n) {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response) {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.warn('[Replay] Failed to clone response body', error);\n }\n}\n\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\nfunction _tryGetResponseText(response) {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Timeout while trying to read response body')), 500);\n\n _getResponseText(response)\n .then(\n txt => resolve(txt),\n reason => reject(reason),\n )\n .finally(() => clearTimeout(timeout));\n });\n}\n\nasync function _getResponseText(response) {\n // Force this to be a promise, just to be safe\n // eslint-disable-next-line no-return-await\n return await response.text();\n}\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureXhrBreadcrumbToReplay(\n breadcrumb,\n hint,\n options,\n) {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture xhr breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichXhrBreadcrumb(\n breadcrumb,\n hint,\n options,\n) {\n const { xhr, input } = hint;\n\n if (!xhr) {\n return;\n }\n\n const reqSize = getBodySize(input, options.textEncoder);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : _getBodySize(xhr.response, xhr.responseType, options.textEncoder);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb,\n hint,\n options,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input) : [undefined];\n const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined];\n\n const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response,\n };\n}\n\nfunction getResponseHeaders(xhr) {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc, line) => {\n const [key, value] = line.split(': ');\n acc[key.toLowerCase()] = value;\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr) {\n // We collect errors that happen, but only log them if we can't get any response body\n const errors = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n }\n\n // Try to manually parse the response body, if responseText fails\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn('[Replay] Failed to get xhr response body', ...errors);\n\n return [undefined];\n}\n\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\nfunction _parseXhrResponse(\n body,\n responseType,\n) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && typeof body === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (e2) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(\n body,\n responseType,\n textEncoder,\n) {\n try {\n const bodyStr = responseType === 'json' && body && typeof body === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr, textEncoder);\n } catch (e3) {\n return undefined;\n }\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nfunction handleNetworkBreadcrumbs(replay) {\n const client = getClient();\n\n try {\n const textEncoder = new TextEncoder();\n\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options = {\n replay,\n textEncoder,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client && client.on) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n } else {\n // Fallback behavior\n addFetchInstrumentationHandler(handleFetchSpanListener(replay));\n addXhrInstrumentationHandler(handleXhrSpanListener(replay));\n }\n } catch (e2) {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nfunction beforeAddNetworkBreadcrumb(\n options,\n breadcrumb,\n hint,\n) {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.warn('Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint) {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint) {\n return hint && hint.response;\n}\n\nlet _LAST_BREADCRUMB = null;\n\nfunction isBreadcrumbWithCategory(breadcrumb) {\n return !!breadcrumb.category;\n}\n\nconst handleScopeListener =\n (replay) =>\n (scope) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleScope(scope);\n\n if (!result) {\n return;\n }\n\n addBreadcrumbEvent(replay, result);\n };\n\n/**\n * An event handler to handle scope changes.\n */\nfunction handleScope(scope) {\n // TODO (v8): Remove this guard. This was put in place because we introduced\n // Scope.getLastBreadcrumb mid-v7 which caused incompatibilities with older SDKs.\n // For now, we'll just return null if the method doesn't exist but we should eventually\n // get rid of this guard.\n const newBreadcrumb = scope.getLastBreadcrumb && scope.getLastBreadcrumb();\n\n // Listener can be called when breadcrumbs have not changed, so we store the\n // reference to the last crumb and only return a crumb if it has changed\n if (_LAST_BREADCRUMB === newBreadcrumb || !newBreadcrumb) {\n return null;\n }\n\n _LAST_BREADCRUMB = newBreadcrumb;\n\n if (\n !isBreadcrumbWithCategory(newBreadcrumb) ||\n ['fetch', 'xhr', 'sentry.event', 'sentry.transaction'].includes(newBreadcrumb.category) ||\n newBreadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (newBreadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(newBreadcrumb);\n }\n\n return createBreadcrumb(newBreadcrumb);\n}\n\n/** exported for tests only */\nfunction normalizeConsoleBreadcrumb(\n breadcrumb,\n) {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n // We use the pretty printed JSON string here as a base\n return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n return normalizedArg;\n } catch (e) {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n\n/**\n * Add global listeners that cannot be removed.\n */\nfunction addGlobalListeners(replay) {\n // Listeners from core SDK //\n const scope = getCurrentScope();\n const client = getClient();\n\n scope.addScopeListener(handleScopeListener(replay));\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay, !hasHooks(client));\n if (client && client.addEventProcessor) {\n client.addEventProcessor(eventProcessor);\n } else {\n addEventProcessor(eventProcessor);\n }\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (hasHooks(client)) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('startTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We may be missing the initial startTransaction due to timing issues,\n // so we capture it on finish again.\n client.on('finishTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We want to flush replay\n client.on('beforeSendFeedback', (feedbackEvent, options) => {\n const replayId = replay.getSessionId();\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction hasHooks(client) {\n return !!(client && client.on);\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nasync function addMemoryEntry(replay) {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry) {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nfunction debounce(func, wait, options) {\n let callbackReturnValue;\n\n let timerId;\n let maxTimerId;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers() {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush() {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nfunction getHandleRecordingEmit(replay) {\n let hadFirstEvent = false;\n\n return (event, _isCheckout) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('[Replay] Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n }\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time.\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (replay.session && replay.session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && replay.session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n logInfo(\n `[Replay] Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`,\n replay.getOptions()._experiments.traceInternals,\n );\n\n replay.session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(replay.session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nfunction createOptionsEvent(replay) {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay, isCheckout) {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nfunction createReplayEnvelope(\n replayEvent,\n recordingData,\n dsn,\n tunnel,\n) {\n return createEnvelope(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n\n/**\n * Prepare the recording data ready to be sent.\n */\nfunction prepareRecordingData({\n recordingData,\n headers,\n}\n\n) {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nasync function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}\n\n) {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint = { event_id, integrations };\n\n if (client.emit) {\n client.emit('preprocessEvent', event, eventHint);\n }\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n getIsolationScope(),\n )) ;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata && client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n\n/**\n * Send replay attachment using `fetch()`\n */\nasync function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}) {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const client = getClient();\n const scope = getCurrentScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return;\n }\n\n const baseEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n logInfo('An event processor returned `null`, will not send event.');\n return;\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n throw error;\n }\n\n // TODO (v8): we can remove this guard once transport.send's type signature doesn't include void anymore\n if (!response) {\n return response;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n const rateLimits = updateRateLimits({}, response);\n if (isRateLimited(rateLimits, 'replay')) {\n throw new RateLimitError(rateLimits);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nclass TransportStatusCodeError extends Error {\n constructor(statusCode) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n\n/**\n * This error indicates that we hit a rate limit API error.\n */\nclass RateLimitError extends Error {\n\n constructor(rateLimits) {\n super('Rate limit hit');\n this.rateLimits = rateLimits;\n }\n}\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nasync function sendReplay(\n replayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n) {\n const { recordingData, options } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (DEBUG_BUILD && options._experiments && options._experiments.captureExceptions) {\n captureException(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n\nconst THROTTLED = '__THROTTLED';\nconst SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction throttle(\n fn,\n maxCount,\n durationSeconds,\n) {\n const counter = new Map();\n\n const _cleanup = (now) => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = () => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest) => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n\n/* eslint-disable max-lines */ // TODO: We might want to split this file up\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nclass ReplayContainer {\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n\n /**\n * The current or last active transcation.\n * This is only available when performance is enabled.\n */\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n\n /**\n * Is the integration currently active?\n */\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n\n /**\n * Function to stop recording\n */\n\n /**\n * Internal use for canvas recording options\n */\n\n constructor({\n options,\n recordingOptions,\n }\n\n) {ReplayContainer.prototype.__init.call(this);ReplayContainer.prototype.__init2.call(this);ReplayContainer.prototype.__init3.call(this);ReplayContainer.prototype.__init4.call(this);ReplayContainer.prototype.__init5.call(this);ReplayContainer.prototype.__init6.call(this);\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } ;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event, isCheckout) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n }\n\n /** Get the event context. */\n getContext() {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n isEnabled() {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n isPaused() {\n return this._isPaused;\n }\n\n /**\n * Determine if canvas recording is enabled\n */\n isRecordingCanvas() {\n return Boolean(this._canvas);\n }\n\n /** Get the replay integration options. */\n getOptions() {\n return this._options;\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n initializeSampling(previousSessionId) {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n if (errorSampleRate <= 0 && sessionSampleRate <= 0) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n this._handleException(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n logInfoNextTick(\n `[Replay] Starting replay in ${this.recordingMode} mode`,\n this._options._experiments.traceInternals,\n );\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (this._isEnabled && this.recordingMode === 'session') {\n throw new Error('Replay recording is already in progress');\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n throw new Error('Replay buffering is in progress, call `flush()` to save the replay');\n }\n\n logInfoNextTick('[Replay] Starting replay in session mode', this._options._experiments.traceInternals);\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n startBuffering() {\n if (this._isEnabled) {\n throw new Error('Replay recording is already in progress');\n }\n\n logInfoNextTick('[Replay] Starting replay in buffer mode', this._options._experiments.traceInternals);\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n startRecording() {\n try {\n const canvasOptions = this._canvas;\n\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer' && { checkoutEveryNms: BUFFER_CHECKOUT_TIME }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n ...(canvasOptions\n ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions,\n }\n : {}),\n });\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n stopRecording() {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this._handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n async stop({ forceFlush = false, reason } = {}) {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n logInfo(\n `[Replay] Stopping Replay${reason ? ` triggered by ${reason}` : ''}`,\n this._options._experiments.traceInternals,\n );\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n pause() {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n logInfo('[Replay] Pausing replay', this._options._experiments.traceInternals);\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n resume() {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n logInfo('[Replay] Resuming replay', this._options._experiments.traceInternals);\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n async sendBufferedReplayOrFlush({ continueRecording = true } = {}) {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n logInfo('[Replay] Converting buffer to session', this._options._experiments.traceInternals);\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode ) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `` milliseconds have elapsed since the last event\n * *OR* if `` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n addUpdate(cb) {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n triggerUserActivity() {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n updateUserActivity() {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n conditionalFlush() {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n flush() {\n return this._debouncedFlush() ;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n flushImmediate() {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() ;\n }\n\n /**\n * Cancels queued up flushes.\n */\n cancelFlush() {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n getSessionId() {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n checkAndHandleExpiredSession() {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n setInitialState() {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n throttledAddEvent(\n event,\n isCheckout,\n ) {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n getCurrentRoute() {\n // eslint-disable-next-line deprecation/deprecation\n const lastTransaction = this.lastTransaction || getCurrentScope().getTransaction();\n\n const attributes = (lastTransaction && spanToJSON(lastTransaction).data) || {};\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (!lastTransaction || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastTransaction).description;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n _initializeRecording() {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /** A wrapper to conditionally capture exceptions. */\n _handleException(error) {\n DEBUG_BUILD && logger.error('[Replay]', error);\n\n if (DEBUG_BUILD && this._options._experiments && this._options._experiments.captureExceptions) {\n captureException(error);\n }\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n _initializeSessionForSampling(previousSessionId) {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n _checkSession() {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n async _refreshSession(session) {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n _addListeners() {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this._handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n _removeListeners() {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n __init() {this._handleVisibilityChange = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };}\n\n /**\n * Handle when page is blurred\n */\n __init2() {this._handleWindowBlur = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };}\n\n /**\n * Handle when page is focused\n */\n __init3() {this._handleWindowFocus = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };}\n\n /** Ensure page remains active when a key is pressed. */\n __init4() {this._handleKeyboardEvent = (event) => {\n handleKeyboardEvent(this, event);\n };}\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n _doChangeToBackgroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n _doChangeToForegroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n logInfo('[Replay] Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n _updateUserActivity(_lastActivity = Date.now()) {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n _updateSessionActivity(_lastActivity = Date.now()) {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n _createCustomBreadcrumb(breadcrumb) {\n this.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n _addPerformanceEntries() {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n _clearContext() {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n _updateInitialTimestampFromEventBuffer() {\n const { session, eventBuffer } = this;\n if (!session || !eventBuffer) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n _popEventContext() {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n async _runFlush() {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n DEBUG_BUILD && logger.error('[Replay] No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n options: this.getOptions(),\n timestamp,\n });\n } catch (err) {\n this._handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'sendReplay' });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('send_error', 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n __init5() {this._flush = async ({\n force = false,\n }\n\n = {}) => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.error('[Replay] Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5000;\n if (tooShort || tooLong) {\n logInfo(\n `[Replay] Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n this._options._experiments.traceInternals,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n logInfo('[Replay] Flushing initial segment without checkout.', this._options._experiments.traceInternals);\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n // this._flushLock acts as a lock so that future calls to `_flush()`\n // will be blocked until this promise resolves\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n await this._flushLock;\n this._flushLock = undefined;\n return;\n }\n\n // Wait for previous flush to finish, then call the debounced `_flush()`.\n // It's possible there are other flush requests queued and waiting for it\n // to resolve. We want to reduce all outstanding requests (as well as any\n // new flush requests that occur within a second of the locked flush\n // completing) into a single flush.\n\n try {\n await this._flushLock;\n } catch (err) {\n DEBUG_BUILD && logger.error(err);\n } finally {\n this._debouncedFlush();\n }\n };}\n\n /** Save the session, if it is sticky */\n _maybeSaveSession() {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n __init6() {this._onMutationHandler = (mutations) => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };}\n}\n\nfunction getOption(\n selectors,\n defaultSelectors,\n deprecatedClassOption,\n deprecatedSelectorOption,\n) {\n const deprecatedSelectors = typeof deprecatedSelectorOption === 'string' ? deprecatedSelectorOption.split(',') : [];\n\n const allSelectors = [\n ...selectors,\n // @deprecated\n ...deprecatedSelectors,\n\n // sentry defaults\n ...defaultSelectors,\n ];\n\n // @deprecated\n if (typeof deprecatedClassOption !== 'undefined') {\n // NOTE: No support for RegExp\n if (typeof deprecatedClassOption === 'string') {\n allSelectors.push(`.${deprecatedClassOption}`);\n }\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.',\n );\n });\n }\n\n return allSelectors.join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nfunction getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n}) {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]'], maskTextClass, maskTextSelector);\n const unmaskSelector = getOption(unmask, ['.sentry-unmask', '[data-sentry-unmask]']);\n\n const options = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(\n block,\n ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements],\n blockClass,\n blockSelector,\n ),\n unblockSelector: getOption(unblock, ['.sentry-unblock', '[data-sentry-unblock]']),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]'], ignoreClass),\n };\n\n if (blockClass instanceof RegExp) {\n options.blockClass = blockClass;\n }\n\n if (maskTextClass instanceof RegExp) {\n options.maskTextClass = maskTextClass;\n }\n\n return options;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nfunction maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}) {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\nconst replayIntegration = ((options) => {\n // eslint-disable-next-line deprecation/deprecation\n return new Replay(options);\n}) ;\n\n/**\n * The main replay integration class, to be passed to `init({ integrations: [] })`.\n * @deprecated Use `replayIntegration()` instead.\n */\nclass Replay {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Replay';}\n\n /**\n * @inheritDoc\n */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n\n constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n sessionSampleRate,\n errorSampleRate,\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10000,\n\n slowClickTimeout = 7000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskInputOptions,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n } = {}) {\n // eslint-disable-next-line deprecation/deprecation\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n ignoreClass,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { ...(maskInputOptions || {}), password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key, value, el) =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err) => {\n try {\n err.__rrweb__ = true;\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n };\n\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n sessionSampleRate,\n errorSampleRate,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n _experiments,\n };\n\n if (typeof sessionSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`sessionSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysSessionSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysSessionSampleRate: ${sessionSampleRate} })`,\n );\n\n this._initialOptions.sessionSampleRate = sessionSampleRate;\n }\n\n if (typeof errorSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`errorSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysOnErrorSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysOnErrorSampleRate: ${errorSampleRate} })`,\n );\n\n this._initialOptions.errorSampleRate = errorSampleRate;\n }\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n get _isInitialized() {\n return _initialized;\n }\n\n /** Update _isInitialized */\n set _isInitialized(value) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n setupOnce() {\n if (!isBrowser()) {\n return;\n }\n\n this._setup();\n\n // Once upon a time, we tried to create a transaction in `setupOnce` and it would\n // potentially create a transaction before some native SDK integrations have run\n // and applied their own global event processor. An example is:\n // https://github.com/getsentry/sentry-javascript/blob/b47ceafbdac7f8b99093ce6023726ad4687edc48/packages/browser/src/integrations/useragent.ts\n //\n // So we call `this._initialize()` in next event loop as a workaround to wait for other\n // global event processors to finish. This is no longer needed, but keeping it\n // here to avoid any future issues.\n setTimeout(() => this._initialize());\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (!this._replay) {\n return;\n }\n\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n startBuffering() {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n stop() {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n flush(options) {\n if (!this._replay || !this._replay.isEnabled()) {\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n getReplayId() {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n\n /**\n * Initializes replay.\n */\n _initialize() {\n if (!this._replay) {\n return;\n }\n\n // We have to run this in _initialize, because this runs in setTimeout\n // So when this runs all integrations have been added\n // Before this, we cannot access integrations on the client,\n // so we need to mutate the options here\n this._maybeLoadFromReplayCanvasIntegration();\n\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n _setup() {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n _maybeLoadFromReplayCanvasIntegration() {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n const client = getClient();\n const canvasIntegration = client.getIntegrationByName('ReplayCanvas')\n\n;\n if (!canvasIntegration) {\n return;\n }\n\n this._replay['_canvas'] = canvasIntegration.getOptions();\n } catch (e) {\n // ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n}Replay.__initStatic();\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions) {\n const client = getClient();\n const opt = client && (client.getOptions() );\n\n const finalOptions = { sessionSampleRate: 0, errorSampleRate: 0, ...dropUndefinedKeys(initialOptions) };\n\n if (!opt) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('SDK client is not available.');\n });\n return finalOptions;\n }\n\n if (\n initialOptions.sessionSampleRate == null && // TODO remove once deprecated rates are removed\n initialOptions.errorSampleRate == null && // TODO remove once deprecated rates are removed\n opt.replaysSessionSampleRate == null &&\n opt.replaysOnErrorSampleRate == null\n ) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n });\n }\n\n if (typeof opt.replaysSessionSampleRate === 'number') {\n finalOptions.sessionSampleRate = opt.replaysSessionSampleRate;\n }\n\n if (typeof opt.replaysOnErrorSampleRate === 'number') {\n finalOptions.errorSampleRate = opt.replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers) {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n\n/**\n * This is a small utility to get a type-safe instance of the Replay integration.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction getReplay() {\n const client = getClient();\n return (\n client && client.getIntegrationByName && client.getIntegrationByName('Replay')\n );\n}\n\nexport { Replay, getReplay, replayIntegration };\n//# sourceMappingURL=index.js.map\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nexport function _nullishCoalesce(lhs: unknown, rhsFn: () => unknown): unknown {\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n return lhs != null ? lhs : rhsFn();\n}\n\n// Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n// if (lhs != null) {\n// return lhs;\n// } else {\n// return rhsFn();\n// }\n// }\n","import type { DsnComponents, MetricBucketItem, SdkMetadata, StatsdEnvelope, StatsdItem } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\nimport { serializeMetricBuckets } from './utils';\n\n/**\n * Create envelope from a metric aggregate.\n */\nexport function createMetricEnvelope(\n metricBucketItems: Array,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): StatsdEnvelope {\n const headers: StatsdEnvelope[0] = {\n sent_at: new Date().toISOString(),\n };\n\n if (metadata && metadata.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n const item = createMetricEnvelopeItem(metricBucketItems);\n return createEnvelope(headers, [item]);\n}\n\nfunction createMetricEnvelopeItem(metricBucketItems: MetricBucketItem[]): StatsdItem {\n const payload = serializeMetricBuckets(metricBucketItems);\n const metricHeaders: StatsdItem[0] = {\n type: 'statsd',\n length: payload.length,\n };\n return [metricHeaders, payload];\n}\n","import type { MeasurementUnit, MetricBucketItem, Primitive } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\nimport { NAME_AND_TAG_KEY_NORMALIZATION_REGEX, TAG_VALUE_NORMALIZATION_REGEX } from './constants';\nimport type { MetricType } from './types';\n\n/**\n * Generate bucket key from metric properties.\n */\nexport function getBucketKey(\n metricType: MetricType,\n name: string,\n unit: MeasurementUnit,\n tags: Record,\n): string {\n const stringifiedTags = Object.entries(dropUndefinedKeys(tags)).sort((a, b) => a[0].localeCompare(b[0]));\n return `${metricType}${name}${unit}${stringifiedTags}`;\n}\n\n/* eslint-disable no-bitwise */\n/**\n * Simple hash function for strings.\n */\nexport function simpleHash(s: string): number {\n let rv = 0;\n for (let i = 0; i < s.length; i++) {\n const c = s.charCodeAt(i);\n rv = (rv << 5) - rv + c;\n rv &= rv;\n }\n return rv >>> 0;\n}\n/* eslint-enable no-bitwise */\n\n/**\n * Serialize metrics buckets into a string based on statsd format.\n *\n * Example of format:\n * metric.name@second:1:1.2|d|#a:value,b:anothervalue|T12345677\n * Segments:\n * name: metric.name\n * unit: second\n * value: [1, 1.2]\n * type of metric: d (distribution)\n * tags: { a: value, b: anothervalue }\n * timestamp: 12345677\n */\nexport function serializeMetricBuckets(metricBucketItems: MetricBucketItem[]): string {\n let out = '';\n for (const item of metricBucketItems) {\n const tagEntries = Object.entries(item.tags);\n const maybeTags = tagEntries.length > 0 ? `|#${tagEntries.map(([key, value]) => `${key}:${value}`).join(',')}` : '';\n out += `${item.name}@${item.unit}:${item.metric}|${item.metricType}${maybeTags}|T${item.timestamp}\\n`;\n }\n return out;\n}\n\n/**\n * Sanitizes tags.\n */\nexport function sanitizeTags(unsanitizedTags: Record): Record {\n const tags: Record = {};\n for (const key in unsanitizedTags) {\n if (Object.prototype.hasOwnProperty.call(unsanitizedTags, key)) {\n const sanitizedKey = key.replace(NAME_AND_TAG_KEY_NORMALIZATION_REGEX, '_');\n tags[sanitizedKey] = String(unsanitizedTags[key]).replace(TAG_VALUE_NORMALIZATION_REGEX, '');\n }\n }\n return tags;\n}\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n ClientOptions,\n DataCategory,\n DsnComponents,\n DynamicSamplingContext,\n Envelope,\n ErrorEvent,\n Event,\n EventDropReason,\n EventHint,\n EventProcessor,\n FeedbackEvent,\n Integration,\n IntegrationClass,\n MetricBucketItem,\n MetricsAggregator,\n Outcome,\n ParameterizedString,\n SdkMetadata,\n Session,\n SessionAggregates,\n Severity,\n SeverityLevel,\n StartSpanOptions,\n Transaction,\n TransactionEvent,\n Transport,\n TransportMakeRequestResponse,\n} from '@sentry/types';\nimport {\n SentryError,\n SyncPromise,\n addItemToEnvelope,\n checkOrSetAlreadyCaught,\n createAttachmentEnvelopeItem,\n isParameterizedString,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n rejectedSyncPromise,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport { getClient } from './exports';\nimport { getIsolationScope } from './hub';\nimport type { IntegrationIndex } from './integration';\nimport { afterSetupIntegrations } from './integration';\nimport { setupIntegration, setupIntegrations } from './integration';\nimport { createMetricEnvelope } from './metrics/envelope';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext';\nimport { prepareEvent } from './utils/prepareEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * A reference to a metrics aggregator\n *\n * @experimental Note this is alpha API. It may experience breaking changes in the future.\n */\n public metricsAggregator?: MetricsAggregator;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n protected readonly _transport?: Transport;\n\n /** Array of set up integrations. */\n protected _integrations: IntegrationIndex;\n\n /** Indicates whether this client's integrations have been set up. */\n protected _integrationsInitialized: boolean;\n\n /** Number of calls being processed */\n protected _numProcessing: number;\n\n protected _eventProcessors: EventProcessor[];\n\n /** Holds flushable */\n private _outcomes: { [key: string]: number };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private _hooks: Record;\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n protected constructor(options: O) {\n this._options = options;\n this._integrations = {};\n this._integrationsInitialized = false;\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n scope?: Scope,\n ): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope: Scope | undefined = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(\n this._captureEvent(event, hint, capturedSpanScope || scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n public getSdkMetadata(): SdkMetadata | undefined {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport | undefined {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n const transport = this._transport;\n if (transport) {\n if (this.metricsAggregator) {\n this.metricsAggregator.flush();\n }\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n if (this.metricsAggregator) {\n this.metricsAggregator.close();\n }\n return result;\n });\n }\n\n /** Get all installed event processors. */\n public getEventProcessors(): EventProcessor[] {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n public addEventProcessor(eventProcessor: EventProcessor): void {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * This is an internal function to setup all integrations that should run on the client.\n * @deprecated Use `client.init()` instead.\n */\n public setupIntegrations(forceInitialize?: boolean): void {\n if ((forceInitialize && !this._integrationsInitialized) || (this._isEnabled() && !this._integrationsInitialized)) {\n this._setupIntegrations();\n }\n }\n\n /** @inheritdoc */\n public init(): void {\n if (this._isEnabled()) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegrationById(integrationId: string): Integration | undefined {\n return this.getIntegrationByName(integrationId);\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n public getIntegrationByName(integrationName: string): T | undefined {\n return this._integrations[integrationName] as T | undefined;\n }\n\n /**\n * Returns the client's instance of the given integration class, it any.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public addIntegration(integration: Integration): void {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event, hint: EventHint = {}): void {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n const promise = this._sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session | SessionAggregates): void {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n public recordDroppedEvent(reason: EventDropReason, category: DataCategory, _event?: Event): void {\n // Note: we use `event` in replay, where we overwrite this hook.\n\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /**\n * @inheritDoc\n */\n public captureAggregateMetrics(metricBucketItems: Array): void {\n DEBUG_BUILD && logger.log(`Flushing aggregated metrics, number of metrics: ${metricBucketItems.length}`);\n const metricsEnvelope = createMetricEnvelope(\n metricBucketItems,\n this._dsn,\n this._options._metadata,\n this._options.tunnel,\n );\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(metricsEnvelope);\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n public on(hook: 'startTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'finishTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeEnvelope', callback: (envelope: Envelope) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeSendEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'preprocessEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'afterSendEvent',\n callback: (event: Event, sendResponse: TransportMakeRequestResponse | void) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeAddBreadcrumb', callback: (breadcrumb: Breadcrumb, hint?: BreadcrumbHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'createDsc', callback: (dsc: DynamicSamplingContext) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'otelSpanEnd', callback: (otelSpan: unknown, mutableOptions: { drop: boolean }) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'beforeSendFeedback',\n callback: (feedback: FeedbackEvent, options?: { includeReplay: boolean }) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'startPageLoadSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'startNavigationSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: string, callback: unknown): void {\n if (!this._hooks[hook]) {\n this._hooks[hook] = [];\n }\n\n // @ts-expect-error We assue the types are correct\n this._hooks[hook].push(callback);\n }\n\n /** @inheritdoc */\n public emit(hook: 'startTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'finishTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeEnvelope', envelope: Envelope): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'preprocessEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'afterSendEvent', event: Event, sendResponse: TransportMakeRequestResponse | void): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeAddBreadcrumb', breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'createDsc', dsc: DynamicSamplingContext): void;\n\n /** @inheritdoc */\n public emit(hook: 'otelSpanEnd', otelSpan: unknown, mutableOptions: { drop: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendFeedback', feedback: FeedbackEvent, options?: { includeReplay: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'startPageLoadSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: 'startNavigationSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: string, ...rest: unknown[]): void {\n if (this._hooks[hook]) {\n this._hooks[hook].forEach(callback => callback(...rest));\n }\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n protected _setupIntegrations(): void {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n\n // TODO v8: We don't need this flag anymore\n this._integrationsInitialized = true;\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(\n event: Event,\n hint: EventHint,\n scope?: Scope,\n isolationScope = getIsolationScope(),\n ): PromiseLike {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n return prepareEvent(options, event, hint, scope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(scope ? scope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: {\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this, scope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint: EventHint = {}, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason as SentryError;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory: DataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope: Scope | undefined = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, scope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n protected _sendEnvelope(envelope: Envelope): PromiseLike | void {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n DEBUG_BUILD && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n protected _clearOutcomes(): Outcome[] {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public abstract eventFromException(_exception: any, _hint?: EventHint): PromiseLike;\n\n /**\n * @inheritDoc\n */\n public abstract eventFromMessage(\n _message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n _level?: Severity | SeverityLevel,\n _hint?: EventHint,\n ): PromiseLike;\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult: PromiseLike | Event | null,\n beforeSendLabel: string,\n): PromiseLike | Event | null {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n): PromiseLike | Event | null {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/**\n * Add an event processor to the current client.\n * This event processor will run for all events processed by this client.\n */\nexport function addEventProcessor(callback: EventProcessor): void {\n const client = getClient();\n\n if (!client || !client.addEventProcessor) {\n return;\n }\n\n client.addEventProcessor(callback);\n}\n","import React, { useMemo } from 'react';\nimport { usePropsWithComponentTheme } from '../hooks/useThemeProps/usePropsWithComponentTheme';\nimport type { ComponentTheme } from '../theme';\nimport type { FactoryComponentProps } from './types';\nimport { makeStyledComponent } from '../utils/styled';\n\nexport default function Factory

(\n Component: React.ComponentType

,\n componentTheme?: ComponentTheme\n) {\n return React.forwardRef(\n ({ children, _state, ...props }: P & FactoryComponentProps, ref: any) => {\n const StyledComponent = useMemo(() => makeStyledComponent(Component), []);\n const calculatedProps = usePropsWithComponentTheme(\n componentTheme ?? {},\n props,\n _state\n );\n return (\n \n {children}\n \n );\n }\n );\n}\n","import { usePropsResolutionWithComponentTheme } from './usePropsResolution';\nimport type { ComponentTheme } from '../../theme';\nimport type { IStateProps } from './propsFlattener';\n\nexport function usePropsWithComponentTheme(\n localTheme: ComponentTheme,\n propsReceived: any,\n _state?: IStateProps\n) {\n return usePropsResolutionWithComponentTheme(\n localTheme,\n propsReceived,\n _state\n );\n}\n","import React, { memo, forwardRef } from 'react';\nimport { Animated, Platform } from 'react-native';\nimport { usePropsResolution } from '../../../hooks';\nimport { canUseDom } from '../../../utils';\nimport Box from '../../primitives/Box';\nimport type { ISkeletonProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { useToken } from '../../../hooks/useToken';\n\nconst Skeleton = (props: ISkeletonProps, ref: any) => {\n const isDomUsable = canUseDom();\n const {\n children,\n startColor,\n endColor,\n ...resolvedProps\n } = usePropsResolution('Skeleton', props);\n // Setting blink Animation\n const blinkAnim = React.useRef(new Animated.Value(0)).current;\n const tokenisedStartColor = useToken('colors', startColor);\n\n // Generating blink animation in a sequence\n React.useEffect(() => {\n //Check if window is loaded\n if (isDomUsable) {\n const blink = Animated.sequence([\n Animated.timing(blinkAnim, {\n toValue: 1,\n duration:\n resolvedProps.fadeDuration * 10000 * (1 / resolvedProps.speed),\n useNativeDriver: Platform.OS !== 'web',\n }),\n Animated.timing(blinkAnim, {\n toValue: 0,\n duration:\n resolvedProps.fadeDuration * 10000 * (1 / resolvedProps.speed),\n useNativeDriver: Platform.OS !== 'web',\n }),\n ]);\n Animated.loop(blink).start();\n }\n }, [blinkAnim, isDomUsable, resolvedProps]);\n\n const skeletonStyle: any = {\n skeleton: {\n height: '100%',\n width: '100%',\n backgroundColor: tokenisedStartColor,\n opacity: blinkAnim, // Bind opacity to animated value\n },\n };\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return resolvedProps.isLoaded ? (\n children\n ) : (\n \n \n \n );\n};\n\nexport default memo(forwardRef(Skeleton));\n","import { Platform } from 'react-native';\n\nexport function canUseDom() {\n if (typeof window !== 'undefined' || Platform.OS !== 'web') {\n return true;\n }\n return false;\n}\n","import React, { memo, forwardRef } from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { Stack } from '../../primitives/Stack';\nimport Skeleton from './Skeleton';\nimport type { ISkeletonTextProps } from './types';\n\nconst SkeletonText = (\n //@ts-ignore\n props: ISkeletonTextProps,\n ref: any\n) => {\n // const { children, ...props } = allProps;\n const {\n children,\n startColor,\n endColor,\n lines,\n isLoaded,\n _line,\n ...resolvedProps\n } = usePropsResolution('SkeletonText', props);\n\n const computedChildren = [];\n //generating an array of skeleton components (same length as noOfLines)\n for (let i = 0; i < lines; i++) {\n //check for last line (to change the width of last line)\n if (i === lines - 1 && lines !== 1) {\n computedChildren.push(\n //Using Skeleton component with required props\n \n );\n } else\n computedChildren.push(\n \n );\n }\n return isLoaded ? (\n children\n ) : (\n \n {computedChildren}\n \n );\n};\n\nexport default memo(forwardRef(SkeletonText));\n","import React, { memo, forwardRef } from 'react';\nimport Spinner from '../Spinner';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { default as Box, IBoxProps } from '../Box';\nimport HStack from '../Stack/HStack';\nimport { Pressable } from '../Pressable';\nimport type { IButtonProps } from './types';\nimport { composeEventHandlers } from '../../../utils';\nimport {\n useHover,\n useFocus,\n useIsPressed,\n} from '../../primitives/Pressable/Pressable';\nimport { useFocusRing } from '@react-native-aria/focus';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Button = (\n {\n //@ts-ignore\n children,\n startIcon,\n rightIcon,\n leftIcon,\n endIcon,\n spinner,\n isDisabled,\n isLoading,\n isHovered: isHoveredProp,\n isPressed: isPressedProp,\n isFocused: isFocusedProp,\n isFocusVisible: isFocusVisibleProp,\n spinnerPlacement = 'start',\n ...props\n }: IButtonProps & IBoxProps,\n ref: any\n) => {\n const { hoverProps, isHovered } = useHover();\n const { pressableProps, isPressed } = useIsPressed();\n const { focusProps, isFocused } = useFocus();\n const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing();\n\n const {\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n onFocus,\n onBlur,\n _text,\n _stack,\n _spinner,\n isLoadingText,\n _icon,\n ...resolvedProps\n } = usePropsResolution('Button', props, {\n isDisabled,\n isHovered: isHoveredProp || isHovered,\n isFocused: isFocusedProp || isFocused,\n isPressed: isPressedProp || isPressed,\n isLoading,\n isFocusVisible: isFocusVisibleProp || isFocusVisible,\n });\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n if (leftIcon) {\n startIcon = leftIcon;\n }\n if (rightIcon) {\n endIcon = rightIcon;\n }\n if (endIcon && React.isValidElement(endIcon)) {\n endIcon = React.Children.map(\n endIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-end-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n if (startIcon && React.isValidElement(startIcon)) {\n startIcon = React.Children.map(\n startIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-start-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n\n const spinnerElement = spinner ? (\n spinner\n ) : (\n \n );\n\n const boxChildren = (child: any) => {\n return child ? {child} : null;\n };\n\n return (\n \n \n {startIcon && !isLoading ? startIcon : null}\n {isLoading && spinnerPlacement === 'start' ? spinnerElement : null}\n {isLoading\n ? isLoadingText\n ? boxChildren(isLoadingText)\n : null\n : boxChildren(children)}\n\n {endIcon && !isLoading ? endIcon : null}\n {isLoading && spinnerPlacement === 'end' ? spinnerElement : null}\n \n \n );\n};\n\nexport default memo(forwardRef(Button));\n","import React, { memo, forwardRef } from 'react';\nimport type { IButtonGroupProps } from './types';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { Stack } from '../Stack';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport default memo(\n forwardRef(\n (\n { children, divider, variant, ...props }: IButtonGroupProps,\n ref?: any\n ) => {\n const {\n space,\n direction,\n\n size,\n colorScheme,\n isDisabled,\n isAttached,\n ...newProps\n } = usePropsResolution('ButtonGroup', props);\n\n const { borderRadius } = usePropsResolution('Button', props);\n let computedChildren;\n\n if (Array.isArray(children)) {\n computedChildren = React.Children.toArray(children).map(\n (child: any, index: number) => {\n if (typeof child === 'string' || typeof child === 'number')\n return child;\n return React.cloneElement(child, {\n key: `button-group-child-${index}`,\n variant,\n size,\n colorScheme,\n isDisabled,\n\n // when buttons are attached, remove rounded corners of all buttons except extreme buttons\n ...(isAttached ? { borderRadius: 0 } : {}),\n ...(isAttached && index === 0\n ? direction === 'column'\n ? { borderTopRadius: borderRadius }\n : { borderLeftRadius: borderRadius }\n : {}),\n ...(isAttached && index === children?.length - 1\n ? direction === 'column'\n ? { borderBottomRadius: borderRadius }\n : { borderRightRadius: borderRadius }\n : {}),\n\n //when buttons are attached, remove double border from them, just keep borderRight in case for direction row and borderBottom in case of direction column for every component\n ...(isAttached && index !== 0\n ? direction === 'column'\n ? { borderTopWidth: 0 }\n : { borderLeftWidth: 0 }\n : {}),\n ...child.props,\n });\n }\n );\n } else {\n computedChildren = React.Children.toArray(children).map(\n (child: any, index: number) => {\n return React.cloneElement(child, {\n key: `button-group-child-${index}`,\n variant,\n size,\n colorScheme,\n isDisabled,\n ...child.props,\n });\n }\n );\n }\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n {computedChildren}\n \n );\n }\n )\n);\n","import get from 'lodash.get';\nimport omit from 'lodash.omit';\nimport { useWindowDimensions, Platform } from 'react-native';\nimport { useNativeBase } from './../useNativeBase';\nimport { omitUndefined, extractInObject } from './../../theme/tools/';\nimport { filterShadowProps } from './../../utils/filterShadowProps';\nimport { calculateProps } from './utils';\n\nconst filterAndCalculateProps = (\n theme: any,\n colorModeProps: any,\n componentTheme: any,\n propsReceived: any,\n windowWidth: any\n) => {\n // Extracting out children and style, as they do not contribute in props calculation\n // This is done as these props are passed as it is later in the development\n // Required as some of these will trigger cyclic computation which may lead to error\n let [ignoredProps, props] = extractInObject(propsReceived, [\n 'children',\n 'style',\n 'onPress',\n 'icon',\n 'onOpen',\n 'onClose',\n ]);\n let newProps = calculateProps(\n theme,\n colorModeProps,\n componentTheme,\n props,\n windowWidth\n );\n let mergedProps = filterShadowProps(newProps, ignoredProps, Platform.OS);\n return omitUndefined(mergedProps);\n};\n\nexport function useThemeProps(component: string, propsReceived: any) {\n const { theme, ...colorModeProps } = useNativeBase();\n // console.log('THEME = ', theme);\n\n const componentTheme = get(theme, `components.${component}`);\n // console.log('COMPONENT THEME = ', componentTheme);\n const windowWidth = useWindowDimensions()?.width;\n\n // To pass the component theme props and component props seperately\n return filterAndCalculateProps(\n omit(theme, ['components']),\n colorModeProps,\n componentTheme,\n propsReceived,\n windowWidth\n );\n}\n","import { extractInObject } from './../theme/tools/';\nimport isEmpty from 'lodash.isempty';\n\nexport const filterShadowProps = (\n props: any,\n ignoredProps: any,\n OS: string\n) => {\n if (OS !== 'web') {\n return { ...ignoredProps, ...props };\n }\n let style = ignoredProps.style ?? {};\n let [shadowProps, remainingProps] = extractInObject(props, [\n 'shadowColor',\n 'shadowOffset',\n 'shadowOpacity',\n 'shadowRadius',\n ]);\n if (!isEmpty(shadowProps)) {\n style = { ...style, ...shadowProps };\n }\n return { ...remainingProps, ...ignoredProps, style };\n};\n","import React from 'react';\nimport { Box, HStack, VStack } from '../../primitives';\nimport type { ISimpleGridProps } from './types';\n// const isDebug = process.env.NODE_ENV !== 'production';\nimport { useThemeProps } from '../../../hooks/useThemeProps';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst DEBUG_STYLES = false\n ? {\n rows: {\n borderWidth: '1px',\n },\n cols: {\n borderWidth: '1px',\n },\n }\n : {\n rows: {},\n cols: {},\n };\n\nconst SimpleGrid = (props: ISimpleGridProps, ref?: any): JSX.Element => {\n const {\n columns,\n space,\n spacingX,\n spacingY,\n minChildWidth,\n children,\n ...remainingProps\n } = useThemeProps('SimpleGrid', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return <>;\n }\n let cellSpacing = space ?? 0;\n let cellSpacingX = spacingX ?? cellSpacing;\n let cellSpacingY = spacingY ?? cellSpacing;\n\n const childrenArray = React.Children.toArray(children);\n\n if (columns) {\n let rowSlices = [];\n for (let i = 0; i < childrenArray.length; i = i + columns) {\n rowSlices.push(childrenArray.slice(i, i + columns));\n }\n\n return (\n \n {rowSlices.map((row, rowIndex) => {\n return (\n \n {row.map((col: any) => {\n return (\n \n {col}\n \n );\n })}\n \n );\n })}\n \n );\n }\n // Needs more work for empty spacing i.e. auto-fit. Current workaround is to use wrap and let the columns be created dynamically\n // https://css-tricks.com/auto-sizing-columns-css-grid-auto-fill-vs-auto-fit/\n else if (minChildWidth) {\n return (\n \n {childrenArray.map((col: any) => {\n return (\n \n {col}\n \n );\n })}\n \n );\n }\n\n return <>;\n};\nexport default React.memo(React.forwardRef(SimpleGrid));\n","import { Linking, Platform } from 'react-native';\nimport type { IUseLinkProp } from './types';\nimport type { AccessibilityRole } from 'react-native';\n\nconst linkToHREF = (URL: string) => {\n Linking.openURL(URL).catch((err) => console.error('An error occurred', err));\n};\n\nconst addOnPressFunctionality = (href: string | any, callback: any) => {\n href ? linkToHREF(href) : '';\n callback ? callback() : () => {};\n};\n\nexport function useLink(props: IUseLinkProp) {\n const { href, isExternal, onPress, _ref } = props;\n\n let platformLinkProps = {};\n\n if (Platform.OS === 'web') {\n platformLinkProps = {\n href,\n onClick: onPress,\n };\n // Adding target to a tag created by RN-Web\n if (isExternal && _ref.current) {\n _ref.current.target = '_blank';\n }\n } else {\n platformLinkProps = {\n onPress: () => {\n addOnPressFunctionality(href, onPress);\n },\n };\n }\n\n return {\n linkProps: {\n ...platformLinkProps,\n accessibilityRole: 'link' as AccessibilityRole,\n accessible: true,\n },\n };\n}\n","import React, { useMemo } from 'react';\nimport { Platform } from 'react-native';\nimport { HybridContext } from './Context';\nimport { useModeManager } from './../color-mode/hooks';\nimport type { IColorModeProviderProps } from './../color-mode';\nimport { keyboardDismissHandlerManager } from '../../hooks';\n\nconst HybridProvider = ({\n children,\n options: {\n initialColorMode = 'light',\n accessibleColors: isTextColorAccessible = false,\n useSystemColorMode,\n },\n colorModeManager,\n}: IColorModeProviderProps) => {\n // Color-mode content\n const { colorMode, setColorMode } = useModeManager(\n initialColorMode,\n useSystemColorMode,\n colorModeManager\n );\n\n const toggleColorMode = React.useCallback(() => {\n setColorMode(colorMode === 'light' ? 'dark' : 'light');\n }, [colorMode, setColorMode]);\n\n // Accessible color hook\n const [accessibleColors, setAccessibleColors] = React.useState(\n isTextColorAccessible\n );\n\n const contextValue = useMemo(() => {\n return {\n colorMode: {\n colorMode,\n toggleColorMode,\n setColorMode,\n accessibleColors,\n setAccessibleColors,\n },\n };\n }, [\n colorMode,\n toggleColorMode,\n setColorMode,\n accessibleColors,\n setAccessibleColors,\n ]);\n\n React.useEffect(() => {\n let escapeKeyListener: any = null;\n\n if (Platform.OS === 'web') {\n escapeKeyListener = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n if (keyboardDismissHandlerManager.length() > 0) {\n const lastHandler: any = keyboardDismissHandlerManager.pop();\n lastHandler();\n }\n }\n };\n document.addEventListener('keydown', escapeKeyListener);\n }\n\n return () => {\n if (Platform.OS === 'web') {\n document.removeEventListener('keydown', escapeKeyListener);\n }\n };\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport default HybridProvider;\n","import React from 'react';\nimport {\n SafeAreaProvider,\n Metrics,\n initialWindowMetrics as defaultInitialWindowMetrics,\n} from 'react-native-safe-area-context';\nimport { SSRProvider } from '@react-native-aria/utils';\nimport { theme as defaultTheme, ITheme } from './../theme';\nimport type { IColorModeProviderProps } from './color-mode';\nimport HybridProvider from './hybrid-overlay/HybridProvider';\nimport { OverlayProvider } from '@react-native-aria/overlays';\nimport { ToastProvider, ToastRef } from '../components/composites/Toast';\nimport {\n defaultConfig,\n INativebaseConfig,\n NativeBaseConfigProvider,\n} from './NativeBaseContext';\nimport { useToast } from '../components/composites/Toast';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport {\n getClosestBreakpoint,\n platformSpecificSpaceUnits,\n} from '../theme/tools/utils';\nimport { ResponsiveQueryProvider } from '../utils/useResponsiveQuery';\n\n// For SSR to work, we need to pass initial insets as 0 values on web.\n\n// https://github.com/th3rdwave/react-native-safe-area-context/issues/132\nconst defaultInitialWindowMetricsBasedOnPlatform: Metrics | null = Platform.select(\n {\n web: {\n frame: { x: 0, y: 0, width: 0, height: 0 },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n },\n default: defaultInitialWindowMetrics,\n }\n);\n\nexport interface NativeBaseProviderProps {\n theme?: ITheme;\n colorModeManager?: IColorModeProviderProps['colorModeManager'];\n children?: React.ReactNode;\n initialWindowMetrics?: any;\n config?: INativebaseConfig;\n isSSR?: boolean;\n disableContrastText?: boolean;\n // Refer https://github.com/th3rdwave/react-native-safe-area-context#testing\n}\n\nconst NativeBaseProvider = (props: NativeBaseProviderProps) => {\n const {\n colorModeManager,\n config = defaultConfig,\n children,\n theme: propsTheme = defaultTheme,\n initialWindowMetrics,\n isSSR,\n disableContrastText,\n } = props;\n const theme = config.theme ?? propsTheme;\n\n const newTheme = React.useMemo(() => {\n if (config.enableRem) {\n return platformSpecificSpaceUnits(theme);\n }\n return theme;\n }, [config.enableRem, theme]);\n\n const windowWidth = useWindowDimensions()?.width;\n\n const currentBreakpoint = React.useMemo(\n () => getClosestBreakpoint(newTheme.breakpoints, windowWidth),\n [windowWidth, newTheme.breakpoints]\n );\n\n return (\n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n );\n};\n\nconst InitializeToastRef = () => {\n const toast = useToast();\n ToastRef.current = toast;\n return null;\n};\n\nexport { NativeBaseProvider };\n"],"sourceRoot":""}